CMake changes for Ticket 711 (SDL2 option)

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@5937 30fe4595-0a0c-4342-8851-515496e4dcbd
This commit is contained in:
beaglejoe 2015-04-01 19:29:12 +00:00
parent 0d870cc38c
commit 1f5a228231
20 changed files with 559 additions and 81 deletions

View File

@ -1,4 +1,4 @@
INCLUDE(../cmake/macros.cmake)
SD_INSTALL_FILES(DATA cmake FILES splitargn.cmake robot.def.in.cmake FindENET.cmake FindPLIB.cmake FindSOLID.cmake
FindOGG.cmake FindVORBISFILE.cmake FindVORBIS.cmake FindSQLITE3.cmake)
FindOGG.cmake FindVORBISFILE.cmake FindVORBIS.cmake FindSQLITE3.cmake FindSDL2.cmake)

321
cmake/FindSDL2.cmake Normal file
View File

@ -0,0 +1,321 @@
# Locate SDL2 library
# This module defines
# SDL2_LIBRARY, the name of the library to link against
# SDL2_FOUND, if false, do not try to link to SDL2
# SDL2_INCLUDE_DIR, where to find SDL.h#
#
# Note that the header path has changed from SDL2/SDL.h to just SDL.h
# This needed to change because "proper" SDL convention
# is #include "SDL.h", not <SDL2/SDL.h>. This is done for portability
# reasons because not all systems place things in SDL2/ (see FreeBSD).
SET(SDL2_SEARCH_PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
FIND_PATH(SDL2_INCLUDE_DIR SDL.h
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES include/SDL2 include
PATHS ${SDL2_SEARCH_PATHS}
)
FIND_LIBRARY(SDL2_LIBRARY_TEMP
NAMES SDL2
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES lib64 lib
PATHS ${SDL2_SEARCH_PATHS}
)
IF(NOT SDL2_BUILDING_LIBRARY)
IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
# Non-OS X framework versions expect you to also dynamically link to
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
# seem to provide SDL2main for compatibility even though they don't
# necessarily need it.
FIND_LIBRARY(SDL2MAIN_LIBRARY
NAMES SDL2main
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES lib64 lib
PATHS ${SDL2_SEARCH_PATHS}
)
ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
ENDIF(NOT SDL2_BUILDING_LIBRARY)
# SDL2 may require threads on your system.
# The Apple build may not need an explicit flag because one of the
# frameworks may already provide it.
# But for non-OSX systems, I will use the CMake Threads package.
IF(NOT APPLE)
FIND_PACKAGE(Threads)
ENDIF(NOT APPLE)
# MinGW needs an additional library, mwindows
# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows
# (Actually on second look, I think it only needs one of the m* libraries.)
IF(MINGW)
SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
ENDIF(MINGW)
IF(SDL2_LIBRARY_TEMP)
# For SDL2main
IF(NOT SDL2_BUILDING_LIBRARY)
IF(SDL2MAIN_LIBRARY)
SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP})
ENDIF(SDL2MAIN_LIBRARY)
ENDIF(NOT SDL2_BUILDING_LIBRARY)
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
# CMake doesn't display the -framework Cocoa string in the UI even
# though it actually is there if I modify a pre-used variable.
# I think it has something to do with the CACHE STRING.
# So I use a temporary variable until the end so I can set the
# "real" variable in one-shot.
IF(APPLE)
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa")
ENDIF(APPLE)
# For threads, as mentioned Apple doesn't need this.
# In fact, there seems to be a problem if I used the Threads package
# and try using this line, so I'm just skipping it entirely for OS X.
IF(NOT APPLE)
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT})
ENDIF(NOT APPLE)
# For MinGW library
IF(MINGW)
SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP})
ENDIF(MINGW)
# Set the final string here so the GUI reflects the final state.
SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found")
# Set the temp variable to INTERNAL so it is not seen in the CMake GUI
SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "")
ENDIF(SDL2_LIBRARY_TEMP)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR)
# Locate SDL2 library
# This module defines
# SDL2_LIBRARY, the name of the library to link against
# SDL2_FOUND, if false, do not try to link to SDL2
# SDL2_INCLUDE_DIR, where to find SDL.h#
#
# Note that the header path has changed from SDL2/SDL.h to just SDL.h
# This needed to change because "proper" SDL convention
# is #include "SDL.h", not <SDL2/SDL.h>. This is done for portability
# reasons because not all systems place things in SDL2/ (see FreeBSD).
SET(SDL2_SEARCH_PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
FIND_PATH(SDL2_INCLUDE_DIR SDL.h
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES include/SDL2 include
PATHS ${SDL2_SEARCH_PATHS}
)
FIND_LIBRARY(SDL2_LIBRARY_TEMP
NAMES SDL2
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES lib64 lib
PATHS ${SDL2_SEARCH_PATHS}
)
IF(NOT SDL2_BUILDING_LIBRARY)
IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
# Non-OS X framework versions expect you to also dynamically link to
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
# seem to provide SDL2main for compatibility even though they don't
# necessarily need it.
FIND_LIBRARY(SDL2MAIN_LIBRARY
NAMES SDL2main
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES lib64 lib
PATHS ${SDL2_SEARCH_PATHS}
)
ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
ENDIF(NOT SDL2_BUILDING_LIBRARY)
# SDL2 may require threads on your system.
# The Apple build may not need an explicit flag because one of the
# frameworks may already provide it.
# But for non-OSX systems, I will use the CMake Threads package.
IF(NOT APPLE)
FIND_PACKAGE(Threads)
ENDIF(NOT APPLE)
# MinGW needs an additional library, mwindows
# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows
# (Actually on second look, I think it only needs one of the m* libraries.)
IF(MINGW)
SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
ENDIF(MINGW)
IF(SDL2_LIBRARY_TEMP)
# For SDL2main
IF(NOT SDL2_BUILDING_LIBRARY)
IF(SDL2MAIN_LIBRARY)
SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP})
ENDIF(SDL2MAIN_LIBRARY)
ENDIF(NOT SDL2_BUILDING_LIBRARY)
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
# CMake doesn't display the -framework Cocoa string in the UI even
# though it actually is there if I modify a pre-used variable.
# I think it has something to do with the CACHE STRING.
# So I use a temporary variable until the end so I can set the
# "real" variable in one-shot.
IF(APPLE)
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa")
ENDIF(APPLE)
# For threads, as mentioned Apple doesn't need this.
# In fact, there seems to be a problem if I used the Threads package
# and try using this line, so I'm just skipping it entirely for OS X.
IF(NOT APPLE)
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT})
ENDIF(NOT APPLE)
# For MinGW library
IF(MINGW)
SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP})
ENDIF(MINGW)
# Set the final string here so the GUI reflects the final state.
SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found")
# Set the temp variable to INTERNAL so it is not seen in the CMake GUI
SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "")
ENDIF(SDL2_LIBRARY_TEMP)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR)
# Locate SDL2 library
# This module defines
# SDL2_LIBRARY, the name of the library to link against
# SDL2_FOUND, if false, do not try to link to SDL2
# SDL2_INCLUDE_DIR, where to find SDL.h#
#
# Note that the header path has changed from SDL2/SDL.h to just SDL.h
# This needed to change because "proper" SDL convention
# is #include "SDL.h", not <SDL2/SDL.h>. This is done for portability
# reasons because not all systems place things in SDL2/ (see FreeBSD).
SET(SDL2_SEARCH_PATHS
~/Library/Frameworks
/Library/Frameworks
/usr/local
/usr
/sw # Fink
/opt/local # DarwinPorts
/opt/csw # Blastwave
/opt
)
FIND_PATH(SDL2_INCLUDE_DIR SDL.h
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES include/SDL2 include
PATHS ${SDL2_SEARCH_PATHS}
)
FIND_LIBRARY(SDL2_LIBRARY_TEMP
NAMES SDL2
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES lib64 lib
PATHS ${SDL2_SEARCH_PATHS}
)
IF(NOT SDL2_BUILDING_LIBRARY)
IF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
# Non-OS X framework versions expect you to also dynamically link to
# SDL2main. This is mainly for Windows and OS X. Other (Unix) platforms
# seem to provide SDL2main for compatibility even though they don't
# necessarily need it.
FIND_LIBRARY(SDL2MAIN_LIBRARY
NAMES SDL2main
HINTS
$ENV{SDL2DIR}
PATH_SUFFIXES lib64 lib
PATHS ${SDL2_SEARCH_PATHS}
)
ENDIF(NOT ${SDL2_INCLUDE_DIR} MATCHES ".framework")
ENDIF(NOT SDL2_BUILDING_LIBRARY)
# SDL2 may require threads on your system.
# The Apple build may not need an explicit flag because one of the
# frameworks may already provide it.
# But for non-OSX systems, I will use the CMake Threads package.
IF(NOT APPLE)
FIND_PACKAGE(Threads)
ENDIF(NOT APPLE)
# MinGW needs an additional library, mwindows
# It's total link flags should look like -lmingw32 -lSDL2main -lSDL2 -lmwindows
# (Actually on second look, I think it only needs one of the m* libraries.)
IF(MINGW)
SET(MINGW32_LIBRARY mingw32 CACHE STRING "mwindows for MinGW")
ENDIF(MINGW)
IF(SDL2_LIBRARY_TEMP)
# For SDL2main
IF(NOT SDL2_BUILDING_LIBRARY)
IF(SDL2MAIN_LIBRARY)
SET(SDL2_LIBRARY_TEMP ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY_TEMP})
ENDIF(SDL2MAIN_LIBRARY)
ENDIF(NOT SDL2_BUILDING_LIBRARY)
# For OS X, SDL2 uses Cocoa as a backend so it must link to Cocoa.
# CMake doesn't display the -framework Cocoa string in the UI even
# though it actually is there if I modify a pre-used variable.
# I think it has something to do with the CACHE STRING.
# So I use a temporary variable until the end so I can set the
# "real" variable in one-shot.
IF(APPLE)
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} "-framework Cocoa")
ENDIF(APPLE)
# For threads, as mentioned Apple doesn't need this.
# In fact, there seems to be a problem if I used the Threads package
# and try using this line, so I'm just skipping it entirely for OS X.
IF(NOT APPLE)
SET(SDL2_LIBRARY_TEMP ${SDL2_LIBRARY_TEMP} ${CMAKE_THREAD_LIBS_INIT})
ENDIF(NOT APPLE)
# For MinGW library
IF(MINGW)
SET(SDL2_LIBRARY_TEMP ${MINGW32_LIBRARY} ${SDL2_LIBRARY_TEMP})
ENDIF(MINGW)
# Set the final string here so the GUI reflects the final state.
SET(SDL2_LIBRARY ${SDL2_LIBRARY_TEMP} CACHE STRING "Where the SDL2 Library can be found")
# Set the temp variable to INTERNAL so it is not seen in the CMake GUI
SET(SDL2_LIBRARY_TEMP "${SDL2_LIBRARY_TEMP}" CACHE INTERNAL "")
ENDIF(SDL2_LIBRARY_TEMP)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL2 REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR)

View File

@ -245,6 +245,20 @@ MACRO(CHECK_LIBRARIES)
MESSAGE(STATUS "Looking for library SDL - NOT found")
ENDIF(SDL_FOUND)
# SDL2
IF(OPTION_SDL2)
IF(NOT SDL2_FOUND)
Find_Package(SDL2)
ENDIF()
IF(SDL2_FOUND)
SET(HAVE_LIBSDL2 1)
MESSAGE(STATUS "Looking for library SDL2 - found")
ELSE(SDL2_FOUND)
MESSAGE(STATUS "Looking for library SDL2 - NOT found")
ENDIF(SDL2_FOUND)
ENDIF(OPTION_SDL2)
# OSG
IF(OPTION_OSGGRAPH)

View File

@ -88,11 +88,17 @@ ENDMACRO(_FIND_3RDPARTY_DEPENDENCY DEP_NAME INCLUDE_FILE INCLUDE_SUBDIRS LIBRARY
MACRO(_FIND_3RDPARTY_DEPENDENCIES 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)
IF(OPTION_SDL2)
_FIND_3RDPARTY_DEPENDENCY(SDL2MAIN sdl_main.h "SDL2" "sdl2main" "${ROOT_DIR}" "")
_FIND_3RDPARTY_DEPENDENCY(SDL2 sdl.h "SDL2" "sdl2" "${ROOT_DIR}" "")
#IF(SDL_FOUND) # Dirty hack to make FindPackage(SDL) work later.
# SET(SDL_LIBRARY_TEMP ${SDL_LIBRARY} CACHE FILEPATH "")
#ENDIF(SDL_FOUND)
ELSE()
_FIND_3RDPARTY_DEPENDENCY(SDLMAIN sdl_main.h "SDL" "sdlmain" "${ROOT_DIR}" "")
_FIND_3RDPARTY_DEPENDENCY(SDL sdl.h "SDL" "sdl" "${ROOT_DIR}" "")
ENDIF()
# PLib.
_FIND_3RDPARTY_DEPENDENCY(PLIB plib/sg.h "" "sg;plibsg" ${ROOT_DIR} "")
@ -307,8 +313,13 @@ MACRO(SD_INSTALL_CUSTOM_3RDPARTY TARGET_NAME)
LIST(APPEND _THIRDPARTY_DLL_PATHNAMES "${_DLL_PATHNAME}")
_FIND_3RDPARTY_DLL("${SDL_LIBRARY}" "SDL" ";lib" _DLL_PATHNAME)
LIST(APPEND _THIRDPARTY_DLL_PATHNAMES "${_DLL_PATHNAME}")
IF(OPTION_SDL2)
_FIND_3RDPARTY_DLL("${SDL2_LIBRARY}" "SDL2" ";lib" _DLL_PATHNAME)
LIST(APPEND _THIRDPARTY_DLL_PATHNAMES "${_DLL_PATHNAME}")
ELSE()
_FIND_3RDPARTY_DLL("${SDL_LIBRARY}" "SDL" ";lib" _DLL_PATHNAME)
LIST(APPEND _THIRDPARTY_DLL_PATHNAMES "${_DLL_PATHNAME}")
ENDIF()
IF(OPTION_3RDPARTY_EXPAT)

View File

@ -95,7 +95,9 @@ MACRO(ADD_SD_COMPILE_OPTIONS)
SET(OPTION_UNLOAD_SSGGRAPH true CACHE BOOL "If false, never unload ssggraph module (useful on some Linuxes to avoid XOrg crashes)")
ENDIF(UNIX)
SET(OPTION_OSGGRAPH false CACHE BOOL "Build OpenScenGraph-based WIP osggraph graphics module")
SET(OPTION_OSGGRAPH false CACHE BOOL "Build OpenScenGraph-based WIP osggraph graphics module")
SET(OPTION_SDL2 false CACHE BOOL "Build with SDL2 instead lib SDL 1.2")
SET(OPTION_AUTOVERSION true CACHE BOOL "Enable automatic computation of the version from SVN source tree")

View File

@ -154,6 +154,33 @@ MACRO(ADD_SDL_LIBRARY TARGET)
ENDMACRO(ADD_SDL_LIBRARY TARGET)
MACRO(ADD_SDL2_INCLUDEDIR)
FIND_PACKAGE(SDL2)
IF(SDL2_FOUND)
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})
ELSE(SDL2_FOUND)
MESSAGE(FATAL_ERROR "Cannot find SDL2 header files")
ENDIF(SDL2_FOUND)
ENDMACRO(ADD_SDL2_INCLUDEDIR)
MACRO(ADD_SDL2_LIBRARY TARGET)
FIND_PACKAGE(SDL2)
IF(SDL2_FOUND)
IF(SDL2MAIN_LIBRARY)
TARGET_LINK_LIBRARIES(${TARGET} ${SDL2MAIN_LIBRARY})
ENDIF(SDL2MAIN_LIBRARY)
TARGET_LINK_LIBRARIES(${TARGET} ${SDL2_LIBRARY})
ELSE(SDL2_FOUND)
MESSAGE(FATAL_ERROR "Cannot find SDL2 library")
ENDIF(SDL2_FOUND)
ENDMACRO(ADD_SDL2_LIBRARY TARGET)
MACRO(ADD_OPENGL_INCLUDEDIR)
FIND_PACKAGE(OpenGL)

View File

@ -5,7 +5,11 @@ SET(ROBOT_INTERFACE WELCOME)
SET(ROBOT_SOURCES ${ROBOT_NAME}.cpp)
ADD_SDLIB_INCLUDEDIR(portability tgfclient networking)
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ROBOT_MODULE(NAME ${ROBOT_NAME} VERSION ${VERSION} SOVERSION 0.0.0
INTERFACE ${ROBOT_INTERFACE}

View File

@ -4,7 +4,13 @@ INCLUDE(../../../cmake/macros.cmake)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(portability tgf math tgfclient)
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_PLIB_INCLUDEDIR()
SET(ROBOTTOOLS_SOURCES rtteammanager.cpp rttelem.cpp rttimeanalysis.cpp rttrack.cpp rtutil.cpp rthumandriver.cpp)

View File

@ -2,8 +2,11 @@ INCLUDE(../../../cmake/macros.cmake)
#PROJECT(tgf)
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_EXPAT_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(txml portability)
@ -45,7 +48,11 @@ ENDIF(CMAKE_SKIP_RPATH OR CMAKE_SKIP_BUILD_RPATH)
ADD_SDLIB_LIBRARY(tgf portability txml) # txml ignored if OPTION_3RDPARTY_EXPAT
ADD_DL_LIBRARY(tgf)
ADD_SDL_LIBRARY(tgf)
IF(OPTION_SDL2)
ADD_SDL2_LIBRARY(tgf)
ELSE(OPTION_SDL2)
ADD_SDL_LIBRARY(tgf)
ENDIF(OPTION_SDL2)
ADD_EXPAT_LIBRARY(tgf) # Ignored if not OPTION_3RDPARTY_EXPAT
IF(WIN32)

View File

@ -4,7 +4,11 @@ INCLUDE(../../../cmake/macros.cmake)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(tgf math portability)
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_JPEG_INCLUDEDIR()
ADD_PLIB_INCLUDEDIR()
ADD_OPENAL_INCLUDEDIR()
@ -75,7 +79,12 @@ IF(OGG_FOUND)
ENDIF(OGG_FOUND)
ADD_PLIB_LIBRARY(tgfclient ul sg js)
ADD_SDL_LIBRARY(tgfclient)
IF(OPTION_SDL2)
ADD_SDL2_LIBRARY(tgfclient)
ELSE(OPTION_SDL2)
ADD_SDL_LIBRARY(tgfclient)
ENDIF(OPTION_SDL2)
IF(WIN32)
#joystick library

View File

@ -12,7 +12,12 @@ ENDIF(MSVC)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(tgf tgfclient tgfdata math portability)
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_PLIB_INCLUDEDIR()
# Disable developer warning

View File

@ -38,7 +38,12 @@ ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(portability math tgf tgfclient robottools)
ADD_PLIB_INCLUDEDIR()
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
@ -65,7 +70,13 @@ SD_ADD_LIBRARY(ssggraph MODULE ${SSGGRAPH_SOURCES} ${SSGGRAPH_HEADERS} ${SSGGRAP
#SET_TARGET_PROPERTIES(ssggraph PROPERTIES VERSION ${VERSION} SOVERSION 0.0.0)
ADD_PLIB_LIBRARY(ssggraph ul sg sl ssg ssgaux)
ADD_SDL_LIBRARY(ssggraph)
IF(OPTION_SDL2)
ADD_SDL2_LIBRARY(ssggraph)
ELSE(OPTION_SDL2)
ADD_SDL_LIBRARY(ssggraph)
ENDIF(OPTION_SDL2)
ADD_OPENGL_LIBRARY(ssggraph)
ADD_SDLIB_LIBRARY(ssggraph portability tgf tgfclient robottools)

View File

@ -18,14 +18,25 @@ SD_ADD_LIBRARY(networking SHARED ${SD_NETWORK_SOURCES} ${SD_NETWORK_HEADERS})
#SET_TARGET_PROPERTIES(networking PROPERTIES VERSION ${VERSION} SOVERSION 0.0.0)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_SDLIB_INCLUDEDIR(networking portability tgf math)
ADD_PLIB_INCLUDEDIR()
ADD_ENET_INCLUDEDIR()
ADD_PLIB_LIBRARY(networking ul sg)
ADD_ENET_LIBRARY(networking)
ADD_SDL_LIBRARY(networking)
IF(OPTION_SDL2)
ADD_SDL2_LIBRARY(networking)
ELSE(OPTION_SDL2)
ADD_SDL_LIBRARY(networking)
ENDIF(OPTION_SDL2)
IF(WIN32)
TARGET_LINK_LIBRARIES(networking Winmm ws2_32)

View File

@ -21,7 +21,12 @@ ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(math portability robottools tgf tgfclient tgfdata)
ADD_PLIB_INCLUDEDIR()
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
# Disable developer warning
IF (COMMAND CMAKE_POLICY)

View File

@ -21,7 +21,12 @@ ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(math portability robottools tgf tgfdata networking)
ADD_PLIB_INCLUDEDIR()
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
IF(OPTION_3RDPARTY_SQLITE3)
ADD_SQLITE3_INCLUDEDIR()

View File

@ -19,7 +19,13 @@ SET(_OTHER_SOURCES )
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(portability math tgf tgfclient robottools)
ADD_PLIB_INCLUDEDIR()
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_OPENAL_INCLUDEDIR()
IF(COMMAND CMAKE_POLICY)
@ -46,7 +52,12 @@ SD_ADD_LIBRARY(snddefault MODULE ${_SOURCES} ${_HEADERS} ${_OTHER_SOURCES})
#SET_TARGET_PROPERTIES(snddefault PROPERTIES VERSION ${VERSION} SOVERSION 0.0.0)
ADD_PLIB_LIBRARY(snddefault ul sg sl ssg ssgaux)
ADD_SDL_LIBRARY(snddefault)
IF(OPTION_SDL2)
ADD_SDL2_LIBRARY(snddefault)
ELSE(OPTION_SDL2)
ADD_SDL_LIBRARY(snddefault)
ENDIF(OPTION_SDL2)
ADD_SDLIB_LIBRARY(snddefault portability tgf tgfclient robottools)

View File

@ -54,7 +54,13 @@ INCLUDE_DIRECTORIES(. ${MS} ${CS} ${RS})
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(math portability tgf tgfclient tgfdata networking)
ADD_PLIB_INCLUDEDIR()
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_ENET_INCLUDEDIR()
IF(WIN32)

View File

@ -7,7 +7,13 @@ SET(_HEADERS textonly.h)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(math portability tgf tgfclient tgfdata networking)
ADD_PLIB_INCLUDEDIR()
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_ENET_INCLUDEDIR()
IF(WIN32)

View File

@ -1,52 +1,57 @@
INCLUDE(../../../cmake/macros.cmake)
PROJECT(menuview)
SET(_TARGET_NAME ${SD_TOOLS_EXECPREFIX}menuview)
SET(_SOURCES main.cpp previewmenu.cpp)
SET(_HEADERS previewmenu.h)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(robottools tgf tgfclient math portability)
ADD_SDL_INCLUDEDIR()
ADD_PLIB_INCLUDEDIR()
#disable developer warning
IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY)
IF(MSVC)
# Ignore some run-time libs to avoid link time warnings and sometimes even crashes.
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG
"${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcmt.lib")
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE
"${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libcmt.lib")
ENDIF(MSVC)
# Note: Headers needed for having them available in IDEs.
SD_ADD_EXECUTABLE(${_TARGET_NAME} ${_SOURCES} ${_HEADERS})
ADD_SDLIB_LIBRARY(${_TARGET_NAME} portability robottools tgf tgfclient)
IF(OPENGL_FOUND)
TARGET_LINK_LIBRARIES(${_TARGET_NAME} ${OPENGL_LIBRARY})
ENDIF(OPENGL_FOUND)
ADD_PNG_LIBRARY(${_TARGET_NAME})
ADD_SDL_LIBRARY(${_TARGET_NAME})
ADD_PLIB_LIBRARY(${_TARGET_NAME} sg ssg ul)
ADD_DL_LIBRARY(${_TARGET_NAME})
# Needed when using the "MinGW Makefiles" CMake generator (but not with the "MSYS Makefiles" one !?)
IF(MINGW)
TARGET_LINK_LIBRARIES(${_TARGET_NAME} ${MINGW32_LIBRARY})
ENDIF(MINGW)
IF(UNIX)
SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6)
ENDIF(UNIX)
SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME})
INCLUDE(../../../cmake/macros.cmake)
PROJECT(menuview)
SET(_TARGET_NAME ${SD_TOOLS_EXECPREFIX}menuview)
SET(_SOURCES main.cpp previewmenu.cpp)
SET(_HEADERS previewmenu.h)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(robottools tgf tgfclient math portability)
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_PLIB_INCLUDEDIR()
#disable developer warning
IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY)
IF(MSVC)
# Ignore some run-time libs to avoid link time warnings and sometimes even crashes.
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG
"${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcmt.lib")
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE
"${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libcmt.lib")
ENDIF(MSVC)
# Note: Headers needed for having them available in IDEs.
SD_ADD_EXECUTABLE(${_TARGET_NAME} ${_SOURCES} ${_HEADERS})
ADD_SDLIB_LIBRARY(${_TARGET_NAME} portability robottools tgf tgfclient)
IF(OPENGL_FOUND)
TARGET_LINK_LIBRARIES(${_TARGET_NAME} ${OPENGL_LIBRARY})
ENDIF(OPENGL_FOUND)
ADD_PNG_LIBRARY(${_TARGET_NAME})
ADD_SDL_LIBRARY(${_TARGET_NAME})
ADD_PLIB_LIBRARY(${_TARGET_NAME} sg ssg ul)
ADD_DL_LIBRARY(${_TARGET_NAME})
# Needed when using the "MinGW Makefiles" CMake generator (but not with the "MSYS Makefiles" one !?)
IF(MINGW)
TARGET_LINK_LIBRARIES(${_TARGET_NAME} ${MINGW32_LIBRARY})
ENDIF(MINGW)
IF(UNIX)
SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6)
ENDIF(UNIX)
SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME})

View File

@ -11,7 +11,13 @@ SET(_OTHER_SOURCES trackgen.xml)
ADD_INTERFACE_INCLUDEDIR()
ADD_SDLIB_INCLUDEDIR(robottools tgf tgfclient math portability)
ADD_SDL_INCLUDEDIR()
IF(OPTION_SDL2)
ADD_SDL2_INCLUDEDIR()
ELSE(OPTION_SDL2)
ADD_SDL_INCLUDEDIR()
ENDIF(OPTION_SDL2)
ADD_PLIB_INCLUDEDIR()
#disable developer warning
@ -37,7 +43,13 @@ IF(OPENGL_FOUND)
ENDIF(OPENGL_FOUND)
ADD_PNG_LIBRARY(${_TARGET_NAME})
ADD_SDL_LIBRARY(${_TARGET_NAME})
IF(OPTION_SDL2)
ADD_SDL2_LIBRARY(${_TARGET_NAME})
ELSE(OPTION_SDL2)
ADD_SDL_LIBRARY(${_TARGET_NAME})
ENDIF(OPTION_SDL2)
ADD_PLIB_LIBRARY(${_TARGET_NAME} sg ssg ul)
ADD_DL_LIBRARY(${_TARGET_NAME})