forked from speed-dreams/speed-dreams-code
Re #721 Fixed forgotten renaming of Find3rdPartyDependencies.cmake into FindCustom3rdParty.cmake
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@4929 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 0061115955e58fc1186c7281318c3607ab1532c8 Former-commit-id: 4496688647db669946a8223c07681dbe6dfe1f3f
This commit is contained in:
parent
361db1099a
commit
da77137b1a
1 changed files with 69 additions and 34 deletions
|
@ -1,6 +1,30 @@
|
|||
############################################################################
|
||||
#
|
||||
# file : FindCustom3rdParty.cmake
|
||||
# copyright : (C) 2009 by Brian Gavin, 2012 Jean-Philippe Meuret
|
||||
# web : www.speed-dreams.org
|
||||
# version : $Id$
|
||||
#
|
||||
############################################################################
|
||||
|
||||
############################################################################
|
||||
# #
|
||||
# This program is free software; you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU General Public License as published by #
|
||||
# the Free Software Foundation; either version 2 of the License, or #
|
||||
# (at your option) any later version. #
|
||||
# #
|
||||
############################################################################
|
||||
|
||||
# @file Custom 3rdParty location handling for some Windows builds
|
||||
# (standard CMake Find<package> macros can't find it,
|
||||
# so we needed another solution).
|
||||
# @author Brian Gavin
|
||||
# @version $Id$
|
||||
|
||||
################################################################################################
|
||||
# Find a generic dependency, handling debug suffix
|
||||
# all the parameters are required ; in case of lists or empty parameter, use "" when calling
|
||||
# All the parameters are required ; in case of lists or empty parameter, use "" when calling
|
||||
|
||||
MACRO(_FIND_3RDPARTY_DEPENDENCY DEP_NAME INCLUDE_FILE INCLUDE_SUBDIRS LIBRARY_NAMES SEARCH_PATH_LIST DEBUG_SUFFIX)
|
||||
|
||||
|
@ -18,9 +42,9 @@ MACRO(_FIND_3RDPARTY_DEPENDENCY DEP_NAME INCLUDE_FILE INCLUDE_SUBDIRS LIBRARY_NA
|
|||
IF(${_NB_DIRS} GREATER 0)
|
||||
FOREACH(MY_SUBDIR ${_INCLUDE_SUBDIRS} )
|
||||
#MESSAGE(STATUS "MY_PATH='${MY_PATH}', MY_SUBDIR='${MY_SUBDIR}'")
|
||||
IF(NOT "${MY_SUBDIR}" STREQUAL "")
|
||||
IF(NOT "${MY_SUBDIR}" STREQUAL ".")
|
||||
SET(MY_SUBDIR "/${MY_SUBDIR}")
|
||||
ENDIF(NOT "${MY_SUBDIR}" STREQUAL "")
|
||||
ENDIF(NOT "${MY_SUBDIR}" STREQUAL ".")
|
||||
SET(MY_PATH_INCLUDE ${MY_PATH_INCLUDE} ${MY_PATH}/include${MY_SUBDIR})
|
||||
ENDFOREACH(MY_SUBDIR ${_INCLUDE_SUBDIRS} )
|
||||
ELSE(${_NB_DIRS} GREATER 0)
|
||||
|
@ -62,50 +86,59 @@ ENDMACRO(_FIND_3RDPARTY_DEPENDENCY DEP_NAME INCLUDE_FILE INCLUDE_SUBDIRS LIBRARY
|
|||
|
||||
MACRO(_FIND_3RDPARTY_DEPENDENCIES ROOT_DIR)
|
||||
|
||||
_FIND_3RDPARTY_DEPENDENCY(SDL sdl.h "SDL;SDL2" sdl "${ROOT_DIR}" "")
|
||||
# SDL.
|
||||
_FIND_3RDPARTY_DEPENDENCY(SDLMAIN sdl_main.h "SDL;SDL2" sdlmain "${ROOT_DIR}" "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(SDL sdl.h "SDL;SDL2" sdl "${ROOT_DIR}" "")
|
||||
IF(SDL_FOUND) # Dirty hack to make FindPackage(SDL) work later.
|
||||
SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY} CACHE FILEPATH "")
|
||||
ENDIF(SDL_FOUND)
|
||||
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB plib/sg.h "" sg ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SSG plib/ssg.h "" ssg ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SG plib/sg.h "" sg ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SL plib/sl.h "" sl ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SSGAUX plib/ssgaux.h "" ssgaux ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_UL plib/ul.h "" ul ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_JS plib/js.h "" js ${ROOT_DIR} "")
|
||||
# PLib.
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB plib/sg.h "" "sg;plibsg" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SSG plib/ssg.h "" "ssg;plibssg" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SG plib/sg.h "" "sg;plibsg" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SL plib/sl.h "" "sl;plibsl" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_SSGAUX plib/ssgaux.h "" "ssgaux;plibssgaux" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_UL plib/ul.h "" "ul;plibul" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(PLIB_JS plib/js.h "" "js;plibjs" ${ROOT_DIR} "")
|
||||
|
||||
# Note: The Open GL includes are automatically added by MSVC 2005.
|
||||
# Open GL : Note that the Open GL includes are automatically added by MSVC 2005.
|
||||
# We simply add here the include path for the Open GL extensions headers,
|
||||
# and we use OPENGL_INCLUDE_DIR variable for this,
|
||||
# as Find_Package(OpenGL) doesn't seem to set it.
|
||||
Find_Package(OpenGL)
|
||||
FIND_PATH(OPENGL_INCLUDE_DIR GL/glext.h ${ROOT_DIR}/include NO_DEFAULT_PATH)
|
||||
|
||||
# Open AL.
|
||||
_FIND_3RDPARTY_DEPENDENCY(OPENAL AL/al.h "" openal32 ${ROOT_DIR} "")
|
||||
|
||||
# ENet.
|
||||
_FIND_3RDPARTY_DEPENDENCY(ENET enet/enet.h "" enet ${ROOT_DIR} "")
|
||||
|
||||
# Expat : Replaces bundled libs/txml (that will soon be removed).
|
||||
IF(OPTION_3RDPARTY_EXPAT)
|
||||
_FIND_3RDPARTY_DEPENDENCY(EXPAT expat.h "" expat ${ROOT_DIR} "")
|
||||
ENDIF(OPTION_3RDPARTY_EXPAT)
|
||||
|
||||
# FreeSOLID : Replaces bundled modules/simu/.../SOLID2.0 (that will soon be removed).
|
||||
IF(OPTION_3RDPARTY_SOLID)
|
||||
|
||||
_FIND_3RDPARTY_DEPENDENCY(SOLID SOLID/solid.h "" "solid;broad" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(SOLID_SOLID SOLID/solid.h "" "solid" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(SOLID_BROAD SOLID/broad.h "" "broad" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(SOLID SOLID/solid.h ".;FreeSOLID" "solid;broad" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(SOLID_SOLID SOLID/solid.h ".;FreeSOLID" "solid" ${ROOT_DIR} "")
|
||||
_FIND_3RDPARTY_DEPENDENCY(SOLID_BROAD SOLID/broad.h ".;FreeSOLID" "broad" ${ROOT_DIR} "")
|
||||
|
||||
ENDIF(OPTION_3RDPARTY_SOLID)
|
||||
|
||||
_FIND_3RDPARTY_DEPENDENCY(JPEG jpeglib.h "" jpeg_s ${ROOT_DIR} "")
|
||||
# JPEG.
|
||||
_FIND_3RDPARTY_DEPENDENCY(JPEG jpeglib.h "" "jpeg_s;jpeg" ${ROOT_DIR} "")
|
||||
|
||||
# ZLib.
|
||||
_FIND_3RDPARTY_DEPENDENCY(ZLIB zlib.h "" "z;zlib;zlib1" ${ROOT_DIR} "D")
|
||||
|
||||
IF(ZLIB_FOUND)
|
||||
|
||||
_FIND_3RDPARTY_DEPENDENCY(PNG png.h "" "libpng;libpng13;libpng14;libpng15;libpng16" ${ROOT_DIR} "D")
|
||||
|
||||
# PNG.
|
||||
_FIND_3RDPARTY_DEPENDENCY(PNG png.h "" "libpng;png13;png14;png15;png16" ${ROOT_DIR} "D")
|
||||
|
||||
IF(PNG_FOUND)
|
||||
# Force subsequent FindPNG stuff not to search for other variables ... kind of a hack
|
||||
|
@ -118,27 +151,24 @@ MACRO(_FIND_3RDPARTY_DEPENDENCIES ROOT_DIR)
|
|||
ENDMACRO(_FIND_3RDPARTY_DEPENDENCIES ROOT_DIR)
|
||||
|
||||
################################################################################################
|
||||
# Handling of optional 3rd party package (usefull only when building under Windows with MSVC)
|
||||
# Handling of optional 3rd party package (usefull only when building under Windows)
|
||||
|
||||
MACRO(SD_FIND_3RDPARTY)
|
||||
MACRO(SD_FIND_CUSTOM_3RDPARTY)
|
||||
|
||||
OPTION(SDEXT_USE_CUSTOM_3DPARTY "Set to ON to use 3rdParty prebuilt API located in <PROJECT_SOURCE_DIR>/../3rdparty" ON)
|
||||
MARK_AS_ADVANCED(SDEXT_USE_CUSTOM_3DPARTY)
|
||||
MESSAGE(STATUS "Using custom 3rd party libs location ...")
|
||||
|
||||
IF(SDEXT_USE_CUSTOM_3DPARTY)
|
||||
GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
|
||||
SET(SDEXT_CUSTOM_3DPARTY_DIR "${PARENT_DIR}/3rdparty" CACHE PATH
|
||||
"Location of 3rdParty dependencies")
|
||||
IF(EXISTS ${SDEXT_CUSTOM_3DPARTY_DIR})
|
||||
_FIND_3RDPARTY_DEPENDENCIES(${SDEXT_CUSTOM_3DPARTY_DIR})
|
||||
ELSE(EXISTS ${SDEXT_CUSTOM_3DPARTY_DIR})
|
||||
MESSAGE(STATUS "... but it doesn't exist : ${SDEXT_CUSTOM_3DPARTY_DIR}")
|
||||
ENDIF(EXISTS ${SDEXT_CUSTOM_3DPARTY_DIR})
|
||||
|
||||
GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
|
||||
SET(SDEXT_CUSTOM_3DPARTY_DIR "${PARENT_DIR}/3rdparty" CACHE PATH
|
||||
"Location of 3rdParty dependencies")
|
||||
IF(EXISTS ${SDEXT_CUSTOM_3DPARTY_DIR})
|
||||
_FIND_3RDPARTY_DEPENDENCIES(${SDEXT_CUSTOM_3DPARTY_DIR})
|
||||
ENDIF(EXISTS ${SDEXT_CUSTOM_3DPARTY_DIR})
|
||||
MARK_AS_ADVANCED(SDEXT_CUSTOM_3DPARTY_DIR)
|
||||
|
||||
MARK_AS_ADVANCED(SDEXT_CUSTOM_3DPARTY_DIR)
|
||||
|
||||
ENDIF(SDEXT_USE_CUSTOM_3DPARTY)
|
||||
|
||||
ENDMACRO(SD_FIND_3RDPARTY)
|
||||
ENDMACRO(SD_FIND_CUSTOM_3RDPARTY)
|
||||
|
||||
################################################################################################
|
||||
# Under Windows, install needed 3rd party DLLs close to Speed Dreams executable
|
||||
|
@ -225,16 +255,21 @@ MACRO(SD_INSTALL_3RDPARTY)
|
|||
|
||||
# Make sure Windows compilers run-time libs are also installed.
|
||||
IF(MSVC)
|
||||
|
||||
# We do it ourselves, but use InstallRequiredSystemLibraries to figure out what they are
|
||||
SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||
INCLUDE(InstallRequiredSystemLibraries)
|
||||
IF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
|
||||
SD_INSTALL_FILES(BIN FILES ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS})
|
||||
ENDIF(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
|
||||
|
||||
ELSEIF(MINGW)
|
||||
|
||||
# Works with MinGW 4.4 and 4.7.
|
||||
GET_FILENAME_COMPONENT(_MINGW_BINDIR "${CMAKE_CXX_COMPILER}" PATH)
|
||||
SD_INSTALL_FILES(BIN FILES "${_MINGW_BINDIR}/libstdc++-6.dll" "${_MINGW_BINDIR}/libgcc_s_dw2-1.dll")
|
||||
|
||||
ENDIF(MSVC)
|
||||
|
||||
ENDMACRO(SD_INSTALL_3RDPARTY)
|
||||
|
Loading…
Reference in a new issue