From: Julian Ospald Date: Fri Oct 5 13:33:05 UTC 2012 make build system gentoo-compatible provide options for SDL and GLFW video drivers --- CMakeLists.txt +++ CMakeLists.txt @@ -19,12 +19,19 @@ ################################################################################ -INCLUDE(cmake/crosscompile.cmake) - PROJECT(s25client) ################################################################################ +# options +OPTION(BUILD_GLFW_DRIVER "Build the GLFW video driver" 0) +OPTION(BUILD_SDL_DRIVER "Build the sdl video driver" 1) +IF (UNIX) + IF (NOT BUILD_SDL_DRIVER AND NOT BUILD_GLFW_DRIVER) + MESSAGE(FATAL_ERROR "No video driver selected! Either use SDL or GLFW.") + ENDIF (NOT BUILD_SDL_DRIVER AND NOT BUILD_GLFW_DRIVER) +ENDIF (UNIX) + SET(PREFIX ${PREFIX} CACHE STRING "Path prefix") SET(BINDIR ${BINDIR} CACHE STRING "Directory for the binaries") SET(DATADIR ${DATADIR} CACHE STRING "Data directory") @@ -106,38 +113,6 @@ build_paths.h) CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/build_version.h.cmake" build_version.h) -CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/build/preinstall.sh.cmake" - preinstall.sh @ONLY) -CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/build/postinstall.sh.cmake" - postinstall.sh @ONLY) - -################################################################################ - -ADD_SUBDIRECTORY(version) - -ADD_CUSTOM_TARGET(updateversion ALL - COMMAND "${CMAKE_BINARY_DIR}/version/src/version" "${CMAKE_SOURCE_DIR}" - DEPENDS version - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" -) - -ADD_CUSTOM_TARGET(mrproper - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/build/cleanup.sh" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" -) - -ADD_CUSTOM_TARGET(create_nightly - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/release/create_release.sh" "nightly" "${CMAKE_SOURCE_DIR}" - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" -) - -ADD_CUSTOM_TARGET(create_stable - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/release/create_release.sh" "stable" "${CMAKE_SOURCE_DIR}" - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" -) - -# preinstall script -INSTALL(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake/preinstall.cmake") ################################################################################ @@ -148,7 +123,6 @@ ADD_SUBDIRECTORY(libutil) ADD_SUBDIRECTORY(liblobby) ADD_SUBDIRECTORY(s-c) -ADD_SUBDIRECTORY(s25update) ADD_SUBDIRECTORY(src) ################################################################################ @@ -157,7 +131,6 @@ INSTALL(CODE "INCLUDE(driver/cmake_install.cmake)") INSTALL(CODE "INCLUDE(libsiedler2/cmake_install.cmake)") INSTALL(CODE "INCLUDE(s-c/cmake_install.cmake)") -INSTALL(CODE "INCLUDE(s25update/cmake_install.cmake)") INSTALL(CODE "INCLUDE(src/cmake_install.cmake)") # and then dont let him install anything --- driver/video/CMakeLists.txt +++ driver/video/CMakeLists.txt @@ -3,7 +3,11 @@ ################################################################################# ADD_SUBDIRECTORY( WinAPI ) -ADD_SUBDIRECTORY( GLFW ) -ADD_SUBDIRECTORY( SDL ) +IF(BUILD_GLFW_DRIVER) + ADD_SUBDIRECTORY( GLFW ) +ENDIF(BUILD_GLFW_DRIVER) +IF(BUILD_SDL_DRIVER) + ADD_SUBDIRECTORY( SDL ) +ENDIF(BUILD_SDL_DRIVER) ################################################################################# --- driver/video/SDL/src/CMakeLists.txt +++ driver/video/SDL/src/CMakeLists.txt @@ -30,9 +30,9 @@ ADD_CUSTOM_COMMAND(TARGET videoSDL POST_BUILD COMMAND ln -fvs SDL/src/${SL_PREFIX}videoSDL${CMAKE_SHARED_LIBRARY_SUFFIX} ../../videoSDL${CMAKE_SHARED_LIBRARY_SUFFIX}) INSTALL(TARGETS videoSDL - RUNTIME DESTINATION ${LIBDIR}/driver/video - LIBRARY DESTINATION ${LIBDIR}/driver/video - ARCHIVE DESTINATION ${LIBDIR}/driver/video + RUNTIME DESTINATION ${LIBDIR} + LIBRARY DESTINATION ${LIBDIR} + ARCHIVE DESTINATION ${LIBDIR} ) ELSE (SDL_FOUND) MESSAGE(WARNING ": SDL library not found: Not building SDL videodriver") --- driver/video/GLFW/src/CMakeLists.txt +++ driver/video/GLFW/src/CMakeLists.txt @@ -2,7 +2,7 @@ ### $Id$ ################################################################################# -IF ("${COMPILEFOR}/${COMPILEARCH}" STREQUAL "linux/i386" ) +IF ("${COMPILEFOR}" STREQUAL "linux" ) FIND_LIBRARY(GLFW_LIBRARY glfw) IF (GLFW_LIBRARY) @@ -21,6 +21,6 @@ ELSE (GLFW_LIBRARY) MESSAGE(WARNING ": GLFW library not found: Not building GLFW videodriver") ENDIF (GLFW_LIBRARY) -ENDIF ("${COMPILEFOR}/${COMPILEARCH}" STREQUAL "linux/i386" ) +ENDIF ("${COMPILEFOR}" STREQUAL "linux" ) ################################################################################# --- driver/audio/SDL/src/CMakeLists.txt +++ driver/audio/SDL/src/CMakeLists.txt @@ -34,9 +34,9 @@ ADD_CUSTOM_COMMAND(TARGET audioSDL POST_BUILD COMMAND ln -fvs SDL/src/${SL_PREFIX}audioSDL${CMAKE_SHARED_LIBRARY_SUFFIX} ../../audioSDL${CMAKE_SHARED_LIBRARY_SUFFIX}) INSTALL(TARGETS audioSDL - RUNTIME DESTINATION ${LIBDIR}/driver/audio - LIBRARY DESTINATION ${LIBDIR}/driver/audio - ARCHIVE DESTINATION ${LIBDIR}/driver/audio + RUNTIME DESTINATION ${LIBDIR} + LIBRARY DESTINATION ${LIBDIR} + ARCHIVE DESTINATION ${LIBDIR} ) ELSE (SDLMIXER_FOUND) MESSAGE(WARNING ": SDL_mixer library not found: Not building SDL audiodriver") --- build_paths.h.cmake +++ build_paths.h.cmake @@ -41,6 +41,7 @@ // set game directory (normal $(datadir)/s25rttr/S2) //#define GAMEDIR DATADIR"/S2" +#cmakedefine GAMEDIR "${GAMEDIR}" // set driver directory (normal $(libdir)/driver) //#define DRIVERDIR LIBDIR"/driver"