added some new cmake directives to optional turn off subprojects from the build process. The new cmake options include:

BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS
BUILD_MEGAGLEST_MODEL_VIEWER
BUILD_MEGAGLEST_MAP_EDITOR
BUILD_MEGAGLEST_CONFIGURATOR
BUILD_MEGAGLEST

By default these are all enabled (On). Turn turn off a module run cmake with the option turned off:
-DBUILD_MEGAGLEST_CONFIGURATOR=OFF
This commit is contained in:
Mark Vejvoda
2011-10-17 16:59:22 +00:00
parent 9d1b6d592c
commit dac61b9f5d
7 changed files with 905 additions and 874 deletions

View File

@@ -40,6 +40,12 @@ FUNCTION(Subversion_IS_WC FOLDER RESULT_VAR)
ENDFUNCTION() ENDFUNCTION()
OPTION(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS "Build model import/export tools" ON)
OPTION(BUILD_MEGAGLEST_MODEL_VIEWER "Build model viewer" ON)
OPTION(BUILD_MEGAGLEST_MAP_EDITOR "Build map editor" ON)
OPTION(BUILD_MEGAGLEST_CONFIGURATOR "Build configurator" ON)
OPTION(BUILD_MEGAGLEST "Build MegaGlest" ON)
## Compiler flags ## Compiler flags
IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW)
IF(CMAKE_COMPILER_IS_GNUCXX) IF(CMAKE_COMPILER_IS_GNUCXX)

View File

@@ -1,6 +1,10 @@
# common libraries # common libraries
SET(EXTERNAL_LIBS "") SET(EXTERNAL_LIBS "")
SET(TARGET_NAME "megaglest_configurator")
IF(BUILD_MEGAGLEST_CONFIGURATOR)
MESSAGE(STATUS "Will try to build MegaGlest Configurator")
FIND_PACKAGE(SDL REQUIRED) FIND_PACKAGE(SDL REQUIRED)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
@@ -106,8 +110,6 @@ FOREACH(DIR IN LISTS DIRS_WITH_SRC)
ENDIF(APPLE) ENDIF(APPLE)
ENDFOREACH(DIR) ENDFOREACH(DIR)
SET(TARGET_NAME "megaglest_configurator")
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux)
ELSE() ELSE()
@@ -126,6 +128,7 @@ ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
#MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]") #MESSAGE(STATUS "EXTERNAL_LIBS = [${EXTERNAL_LIBS}]")
ENDIF()
# Requires an install prefix for the items below to work # Requires an install prefix for the items below to work
IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "")

View File

@@ -1,6 +1,10 @@
# common libraries # common libraries
SET(EXTERNAL_LIBS "") SET(EXTERNAL_LIBS "")
SET(TARGET_NAME "megaglest_g3dviewer")
IF(BUILD_MEGAGLEST_MODEL_VIEWER)
MESSAGE(STATUS "Will try to build MegaGlest model viewer")
FIND_PACKAGE(SDL REQUIRED) FIND_PACKAGE(SDL REQUIRED)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
@@ -108,7 +112,6 @@ FOREACH(DIR IN LISTS DIRS_WITH_SRC)
ENDIF(APPLE) ENDIF(APPLE)
ENDFOREACH(DIR) ENDFOREACH(DIR)
SET(TARGET_NAME "megaglest_g3dviewer")
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux)
@@ -126,6 +129,7 @@ ELSE()
TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest)
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
ENDIF()
# Requires an install prefix for the items below to work # Requires an install prefix for the items below to work
IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "")

View File

@@ -2,6 +2,10 @@
# common libraries # common libraries
SET(EXTERNAL_LIBS "") SET(EXTERNAL_LIBS "")
SET(TARGET_NAME "megaglest")
IF(BUILD_MEGAGLEST)
MESSAGE(STATUS "Will try to build MegaGlest game")
IF(WIN32) IF(WIN32)
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH}
@@ -80,6 +84,13 @@ IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CURL_LIBRARIES}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CURL_LIBRARIES})
ENDIF() ENDIF()
FIND_PACKAGE(GLEW REQUIRED)
INCLUDE_DIRECTORIES(${GLEW_INCLUDE_PATH})
IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${GLEW_LIBRARY})
ENDIF()
######################################################################################### #########################################################################################
# megaglest game # megaglest game
@@ -105,6 +116,7 @@ SET(GLEST_LIB_INCLUDE_DIRS
${GLEST_LIB_INCLUDE_ROOT}util ${GLEST_LIB_INCLUDE_ROOT}util
${GLEST_LIB_INCLUDE_ROOT}graphics ${GLEST_LIB_INCLUDE_ROOT}graphics
${GLEST_LIB_INCLUDE_ROOT}graphics/gl ${GLEST_LIB_INCLUDE_ROOT}graphics/gl
${GLEST_LIB_INCLUDE_ROOT}graphics/md5
${GLEST_LIB_INCLUDE_ROOT}sound ${GLEST_LIB_INCLUDE_ROOT}sound
${GLEST_LIB_INCLUDE_ROOT}sound/openal ${GLEST_LIB_INCLUDE_ROOT}sound/openal
${GLEST_LIB_INCLUDE_ROOT}xml ${GLEST_LIB_INCLUDE_ROOT}xml
@@ -169,12 +181,6 @@ IF(WIN32)
ENDIF() ENDIF()
IF(WIN32)
SET(TARGET_NAME "megaglest")
ELSE()
SET(TARGET_NAME "megaglest")
ENDIF()
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux)
ELSE() ELSE()
@@ -192,6 +198,7 @@ IF(NOT WIN32)
TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest)
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
ENDIF()
# Requires an install prefix for the items below to work # Requires an install prefix for the items below to work
IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "")

View File

@@ -1,6 +1,10 @@
# common libraries # common libraries
SET(EXTERNAL_LIBS "") SET(EXTERNAL_LIBS "")
SET(TARGET_NAME "megaglest_editor")
IF(BUILD_MEGAGLEST_MAP_EDITOR)
MESSAGE(STATUS "Will try to build MegaGlest map editor")
FIND_PACKAGE(SDL REQUIRED) FIND_PACKAGE(SDL REQUIRED)
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
@@ -106,8 +110,6 @@ FOREACH(DIR IN LISTS DIRS_WITH_SRC)
ENDIF(APPLE) ENDIF(APPLE)
ENDFOREACH(DIR) ENDFOREACH(DIR)
SET(TARGET_NAME "megaglest_editor")
IF(UNIX AND NOT APPLE) IF(UNIX AND NOT APPLE)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/mk/linux)
ELSE() ELSE()
@@ -128,6 +130,7 @@ ELSE()
TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest)
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
ENDIF()
# Requires an install prefix for the items below to work # Requires an install prefix for the items below to work
IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "") IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "")

View File

@@ -8,6 +8,10 @@ ADD_SUBDIRECTORY(sources/streflop)
# common libraries # common libraries
SET(EXTERNAL_LIBS "") SET(EXTERNAL_LIBS "")
SET(TARGET_NAME "libmegaglest")
IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST_CONFIGURATOR OR BUILD_MEGAGLEST)
MESSAGE(STATUS "Will try to build MegaGlest shared library")
INCLUDE (CheckIncludeFiles) INCLUDE (CheckIncludeFiles)
@@ -188,6 +192,7 @@ SET(DIRS_WITH_SRC
glew glew
graphics graphics
graphics/gl graphics/gl
graphics/md5
lua lua
map map
platform/common platform/common
@@ -316,8 +321,6 @@ SET_SOURCE_FILES_PROPERTIES(${MG_SOURCE_FILES} PROPERTIES COMPILE_FLAGS
SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1) SET_SOURCE_FILES_PROPERTIES(${MG_INCLUDE_FILES} PROPERTIES HEADER_FILE_ONLY 1)
SET(TARGET_NAME "libmegaglest")
IF(NOT WIN32) IF(NOT WIN32)
ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) ADD_LIBRARY(${TARGET_NAME} STATIC ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]") MESSAGE(STATUS "Building shared game library as a STATIC library and saving to [${LIBRARY_OUTPUT_PATH}]")
@@ -342,3 +345,4 @@ ELSE()
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})
ENDIF() ENDIF()
ENDIF()

View File

@@ -1,5 +1,8 @@
# glexemel # glexemel
IF(BUILD_MEGAGLEST_MODEL_IMPORT_EXPORT_TOOLS)
MESSAGE(STATUS "Will try to build MegaGlest model import/export tools")
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/source/tools/glexemel) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/source/tools/glexemel)
add_executable(g2xml g2xml.c g3dv4.h) add_executable(g2xml g2xml.c g3dv4.h)
@@ -15,3 +18,4 @@ IF(LIBXML2_FOUND)
ELSE() ELSE()
MESSAGE(STATUS "WARNING... xml2g will NOT be built since we cannot find libXml2 on this machine") MESSAGE(STATUS "WARNING... xml2g will NOT be built since we cannot find libXml2 on this machine")
ENDIF() ENDIF()
ENDIF()