Re #711 Fixes Windows build after added build support for SDL2

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@4785 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 2f4deec7e2c1f16aaf46111138fcc180fa4e0adf
Former-commit-id: 955236e955669c28e01c3d134a4996d660821bf7
This commit is contained in:
pouillot 2012-07-01 15:38:09 +00:00
parent 364c45b5aa
commit 2741c376b4
5 changed files with 85 additions and 52 deletions

View file

@ -1,78 +1,106 @@
################################################################################################ ################################################################################################
# this Macro find a generic dependency, handling debug suffix # Find a generic dependency, handling debug suffix
# all the parameters are required ; in case of lists, use "" when calling # all the parameters are required ; in case of lists or empty parameter, use "" when calling
################################################################################################ ################################################################################################
MACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES SEARCHPATHLIST DEBUGSUFFIX) MACRO(FIND_DEPENDENCY DEP_NAME INCLUDE_FILE INCLUDE_SUBDIRS LIBRARY_NAMES SEARCH_PATH_LIST DEBUG_SUFFIX)
#MESSAGE(STATUS "Searching for 3rd party dependency DEPNAME='${DEPNAME}' INCLUDEFILE='${INCLUDEFILE}' LIBRARY_NAMES='${LIBRARY_NAMES}' SEARCHPATHLIST='${SEARCHPATHLIST}' DEBUGSUFFIX='${DEBUGSUFFIX}' ...") #MESSAGE(STATUS "Searching for 3rd party dependency DEP_NAME='${DEP_NAME}' INCLUDE_FILE='${INCLUDE_FILE}' INCLUDE_SUBDIRS='${INCLUDE_SUBDIRS}' LIBRARY_NAMES='${LIBRARY_NAMES}' SEARCH_PATH_LIST='${SEARCH_PATH_LIST}' DEBUG_SUFFIX='${DEBUG_SUFFIX}' ...")
# Convert possibly a simple string to a real list.
SET(_INCLUDE_SUBDIRS)
LIST(APPEND _INCLUDE_SUBDIRS ${INCLUDE_SUBDIRS})
LIST(LENGTH _INCLUDE_SUBDIRS _NB_DIRS)
#MESSAGE(STATUS "_INCLUDE_SUBDIRS=${_INCLUDE_SUBDIRS}, _NB_DIRS=${_NB_DIRS}")
# Find include dirs
SET(MY_PATH_INCLUDE ) SET(MY_PATH_INCLUDE )
SET(MY_PATH_LIB ) FOREACH(MY_PATH ${SEARCH_PATH_LIST} )
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 "")
SET(MY_SUBDIR "/${MY_SUBDIR}")
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)
SET(MY_PATH_INCLUDE ${MY_PATH_INCLUDE} ${MY_PATH}/include)
ENDIF(${_NB_DIRS} GREATER 0)
ENDFOREACH(MY_PATH ${SEARCH_PATH_LIST} )
FOREACH(MYPATH ${SEARCHPATHLIST} ) #MESSAGE(STATUS "MY_PATH_INCLUDE='${MY_PATH_INCLUDE}'")
SET(MY_PATH_INCLUDE ${MY_PATH_INCLUDE} ${MYPATH}/include) FIND_PATH("${DEP_NAME}_INCLUDE_DIR" ${INCLUDE_FILE}
SET(MY_PATH_LIB ${MY_PATH_LIB} ${MYPATH}/lib)
ENDFOREACH(MYPATH ${SEARCHPATHLIST} )
FIND_PATH("${DEPNAME}_INCLUDE_DIR" ${INCLUDEFILE}
${MY_PATH_INCLUDE} ${MY_PATH_INCLUDE}
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
MARK_AS_ADVANCED("${DEPNAME}_INCLUDE_DIR") MARK_AS_ADVANCED("${DEP_NAME}_INCLUDE_DIR")
#MESSAGE(" ${DEPNAME}_INCLUDE_DIR = '${${DEPNAME}_INCLUDE_DIR}'") #MESSAGE(" ${DEP_NAME}_INCLUDE_DIR = '${${DEP_NAME}_INCLUDE_DIR}'")
FIND_LIBRARY("${DEPNAME}_LIBRARY" # Find library files
SET(MY_PATH_LIB )
FOREACH(MY_PATH ${SEARCH_PATH_LIST} )
SET(MY_PATH_LIB ${MY_PATH_LIB} ${MY_PATH}/lib)
ENDFOREACH(MY_PATH ${SEARCH_PATH_LIST} )
FIND_LIBRARY("${DEP_NAME}_LIBRARY"
NAMES ${LIBRARY_NAMES} NAMES ${LIBRARY_NAMES}
PATHS ${MY_PATH_LIB} PATHS ${MY_PATH_LIB}
NO_DEFAULT_PATH NO_DEFAULT_PATH
) )
MARK_AS_ADVANCED("${DEPNAME}_LIBRARY") MARK_AS_ADVANCED("${DEP_NAME}_LIBRARY")
#MESSAGE(" ${DEPNAME}_LIBRARY = '${${DEPNAME}_LIBRARY}'") #MESSAGE(" ${DEP_NAME}_LIBRARY = '${${DEP_NAME}_LIBRARY}'")
SET(${DEPNAME}_FOUND "NO" ) # Whatever happened, done.
IF(${DEPNAME}_INCLUDE_DIR AND ${DEPNAME}_LIBRARY) SET(${DEP_NAME}_FOUND "NO" )
SET( ${DEPNAME}_FOUND "YES" ) IF(${DEP_NAME}_INCLUDE_DIR AND ${DEP_NAME}_LIBRARY)
ENDIF(${DEPNAME}_INCLUDE_DIR AND ${DEPNAME}_LIBRARY) SET( ${DEP_NAME}_FOUND "YES" )
ENDIF(${DEP_NAME}_INCLUDE_DIR AND ${DEP_NAME}_LIBRARY)
ENDMACRO(FIND_DEPENDENCY DEPNAME INCLUDEFILE LIBRARY_NAMES SEARCHPATHLIST DEBUGSUFFIX) ENDMACRO(FIND_DEPENDENCY DEP_NAME INCLUDE_FILE INCLUDE_SUBDIRS LIBRARY_NAMES SEARCH_PATH_LIST DEBUG_SUFFIX)
################################################################################################ ################################################################################################
# this Macro is tailored to Mike dependencies # this Macro is tailored to Mike dependencies
################################################################################################ ################################################################################################
MACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN) MACRO(SEARCH_3RDPARTY ROOT_DIR)
FIND_DEPENDENCY(JPEG jpeglib.h jpeg_s ${OSG_3RDPARTY_BIN} "")
FIND_DEPENDENCY(OPENAL al/al.h openal32 ${OSG_3RDPARTY_BIN} "") FIND_DEPENDENCY(JPEG jpeglib.h "" jpeg_s ${ROOT_DIR} "")
FIND_DEPENDENCY(ALUT al/alut.h alut ${OSG_3RDPARTY_BIN} "")
FIND_DEPENDENCY(ENET enet/enet.h enet ${OSG_3RDPARTY_BIN} "")
FIND_DEPENDENCY(SDL sdl/sdl.h sdl ${OSG_3RDPARTY_BIN} "")
IF(SDL_FOUND)
SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY} CACHE FILEPATH "")
ENDIF(SDL_FOUND)
FIND_DEPENDENCY(SDLMAIN sdl/sdl_main.h sdlmain ${OSG_3RDPARTY_BIN} "") FIND_DEPENDENCY(OPENAL AL/al.h "" openal32 ${ROOT_DIR} "")
FIND_DEPENDENCY(PLIB plib/sg.h sg ${OSG_3RDPARTY_BIN} "") FIND_DEPENDENCY(ENET enet/enet.h "" enet ${ROOT_DIR} "")
FIND_DEPENDENCY(PLIB_SSG plib/ssg.h ssg ${OSG_3RDPARTY_BIN} "")
FIND_DEPENDENCY(PLIB_SG plib/sg.h sg ${OSG_3RDPARTY_BIN} "") FIND_DEPENDENCY(SDL sdl.h "SDL;SDL2" sdl "${ROOT_DIR}" "")
FIND_DEPENDENCY(PLIB_SL plib/sl.h sl ${OSG_3RDPARTY_BIN} "") FIND_DEPENDENCY(SDLMAIN sdl_main.h "SDL;SDL2" sdlmain "${ROOT_DIR}" "")
FIND_DEPENDENCY(PLIB_SSGAUX plib/ssgaux.h ssgaux ${OSG_3RDPARTY_BIN} "") IF(SDL_FOUND) # Dirty hack to make FindPackage(SDL) work later.
FIND_DEPENDENCY(PLIB_UL plib/ul.h ul ${OSG_3RDPARTY_BIN} "") SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY} CACHE FILEPATH "")
FIND_DEPENDENCY(PLIB_JS plib/js.h js ${OSG_3RDPARTY_BIN} "") ENDIF(SDL_FOUND)
#FIND_DEPENDENCY(GIFLIB gif_lib.h "ungif;libungif" ${OSG_3RDPARTY_BIN} "D")
FIND_DEPENDENCY(ZLIB zlib.h "z;zlib;zlib1" ${OSG_3RDPARTY_BIN} "D") FIND_DEPENDENCY(PLIB plib/sg.h "" sg ${ROOT_DIR} "")
IF(ZLIB_FOUND) FIND_DEPENDENCY(PLIB_SSG plib/ssg.h "" ssg ${ROOT_DIR} "")
FIND_DEPENDENCY(PNG png.h "libpng;libpng13" ${OSG_3RDPARTY_BIN} "D") FIND_DEPENDENCY(PLIB_SG plib/sg.h "" sg ${ROOT_DIR} "")
IF(PNG_FOUND) FIND_DEPENDENCY(PLIB_SL plib/sl.h "" sl ${ROOT_DIR} "")
#force subsequent FindPNG stuff not to search for other variables ... kind of a hack FIND_DEPENDENCY(PLIB_SSGAUX plib/ssgaux.h "" ssgaux ${ROOT_DIR} "")
SET(PNG_PNG_INCLUDE_DIR ${PNG_INCLUDE_DIR} CACHE FILEPATH "") FIND_DEPENDENCY(PLIB_UL plib/ul.h "" ul ${ROOT_DIR} "")
MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR) FIND_DEPENDENCY(PLIB_JS plib/js.h "" js ${ROOT_DIR} "")
ENDIF(PNG_FOUND)
ENDIF(ZLIB_FOUND) FIND_DEPENDENCY(ZLIB zlib.h "" "z;zlib;zlib1" ${ROOT_DIR} "D")
ENDMACRO(SEARCH_3RDPARTY OSG_3RDPARTY_BIN)
IF(ZLIB_FOUND)
FIND_DEPENDENCY(PNG png.h "" "libpng;libpng13;libpng14;libpng15;libpng16" ${ROOT_DIR} "D")
IF(PNG_FOUND)
#force subsequent FindPNG stuff not to search for other variables ... kind of a hack
SET(PNG_PNG_INCLUDE_DIR ${PNG_INCLUDE_DIR} CACHE FILEPATH "")
MARK_AS_ADVANCED(PNG_PNG_INCLUDE_DIR)
ENDIF(PNG_FOUND)
ENDIF(ZLIB_FOUND)
ENDMACRO(SEARCH_3RDPARTY ROOT_DIR)
################################################################################################ ################################################################################################
# this is code for handling optional 3DPARTY usage (mainly under Windows) # this is code for handling optional 3DPARTY usage (mainly under Windows)
@ -82,6 +110,7 @@ OPTION(SDEXT_USE_CUSTOM_3DPARTY "Set to ON to use 3rdParty prebuilt API located
MARK_AS_ADVANCED(SDEXT_USE_CUSTOM_3DPARTY) MARK_AS_ADVANCED(SDEXT_USE_CUSTOM_3DPARTY)
IF(SDEXT_USE_CUSTOM_3DPARTY) IF(SDEXT_USE_CUSTOM_3DPARTY)
GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH) GET_FILENAME_COMPONENT(PARENT_DIR ${PROJECT_SOURCE_DIR} PATH)
SET(SDEXT_CUSTOM_3DPARTY_DIR "${PARENT_DIR}/3rdparty" CACHE PATH SET(SDEXT_CUSTOM_3DPARTY_DIR "${PARENT_DIR}/3rdparty" CACHE PATH
"Location of 3rdParty dependencies") "Location of 3rdParty dependencies")

View file

@ -20,6 +20,7 @@ ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(math portability robottools tgf tgfclient tgfdata ADD_SDLIB_INCLUDEDIR(math portability robottools tgf tgfclient tgfdata
networking) networking)
ADD_PLIB_INCLUDEDIR()
ADD_SDL_INCLUDEDIR() ADD_SDL_INCLUDEDIR()
IF(WIN32) IF(WIN32)

View file

@ -4,7 +4,8 @@ INCLUDE(../../../cmake/macros.cmake)
ADD_INTERFACE_INCLUDEDIR() ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(portability tgf math) ADD_SDLIB_INCLUDEDIR(portability tgf math)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR} ) ADD_SDL_INCLUDEDIR()
ADD_PLIB_INCLUDEDIR()
SET(ROBOTTOOLS_SOURCES rtteammanager.cpp rttelem.cpp rttimeanalysis.cpp rttrack.cpp rtutil.cpp SET(ROBOTTOOLS_SOURCES rtteammanager.cpp rttelem.cpp rttimeanalysis.cpp rttrack.cpp rtutil.cpp
robottools.h teammanager.h timeanalysis.h) robottools.h teammanager.h timeanalysis.h)

View file

@ -9,6 +9,7 @@ SET(_SOURCES main.cpp previewmenu.cpp)
ADD_INTERFACE_INCLUDEDIR() ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(robottools tgf tgfclient math portability) ADD_SDLIB_INCLUDEDIR(robottools tgf tgfclient math portability)
ADD_SDL_INCLUDEDIR() ADD_SDL_INCLUDEDIR()
ADD_PLIB_INCLUDEDIR()
#disable developer warning #disable developer warning
IF(COMMAND CMAKE_POLICY) IF(COMMAND CMAKE_POLICY)

View file

@ -11,6 +11,7 @@ SET(_SOURCES ac3d.cpp easymesh.cpp elevation.cpp main.cpp
ADD_INTERFACE_INCLUDEDIR() ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(robottools tgf tgfclient math portability) ADD_SDLIB_INCLUDEDIR(robottools tgf tgfclient math portability)
ADD_SDL_INCLUDEDIR() ADD_SDL_INCLUDEDIR()
ADD_PLIB_INCLUDEDIR()
#disable developer warning #disable developer warning
IF (COMMAND CMAKE_POLICY) IF (COMMAND CMAKE_POLICY)