diff options
Diffstat (limited to 'cmake/Options.cmake')
-rw-r--r-- | cmake/Options.cmake | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/cmake/Options.cmake b/cmake/Options.cmake new file mode 100644 index 000000000..b292567f0 --- /dev/null +++ b/cmake/Options.cmake @@ -0,0 +1,84 @@ +# Set the options for the directories (personal, shared, global). +# +# set_directory_options() +# +function(set_directory_options) + if (APPLE) + set(DEFAULT_PERSONAL_DIR "Documents/OpenTTD") + set(DEFAULT_SHARED_DIR "/Library/Application Support/OpenTTD") + set(DEFAULT_GLOBAL_DIR "(not set)") + elseif (WIN32) + set(DEFAULT_PERSONAL_DIR "OpenTTD") + set(DEFAULT_SHARED_DIR "(not set)") + set(DEFAULT_GLOBAL_DIR "(not set)") + elseif (UNIX) + set(DEFAULT_PERSONAL_DIR ".openttd") + set(DEFAULT_SHARED_DIR "(not set)") + set(DEFAULT_GLOBAL_DIR "${CMAKE_INSTALL_PREFIX}/share/games/openttd") + else () + message(FATAL_ERROR "Unknown OS found; please consider creating a Pull Request to add support for this OS.") + endif () + + if (NOT PERSONAL_DIR) + set(PERSONAL_DIR "${DEFAULT_PERSONAL_DIR}" CACHE STRING "Personal directory") + message(STATUS "Detecting Personal Data directory - ${PERSONAL_DIR}") + endif (NOT PERSONAL_DIR) + + if (NOT SHARED_DIR) + set(SHARED_DIR "${DEFAULT_SHARED_DIR}" CACHE STRING "Shared directory") + message(STATUS "Detecting Shared Data directory - ${SHARED_DIR}") + endif (NOT SHARED_DIR) + + if (NOT GLOBAL_DIR) + set(GLOBAL_DIR "${DEFAULT_GLOBAL_DIR}" CACHE STRING "Global directory") + message(STATUS "Detecting Global Data directory - ${GLOBAL_DIR}") + endif (NOT GLOBAL_DIR) +endfunction() + +# Set some generic options that influence what is being build. +# +# set_options() +# +function(set_options) + if (UNIX AND NOT APPLE) + set(DEFAULT_OPTION_INSTALL_FHS YES) + else (UNIX AND NOT APPLE) + set(DEFAULT_OPTION_INSTALL_FHS NO) + endif (UNIX AND NOT APPLE) + + option(OPTION_DEDICATED "Build dedicated server only (no GUI)" NO) + option(OPTION_INSTALL_FHS "Install with Filesstem Hierarchy Standard folders" ${DEFAULT_OPTION_INSTALL_FHS}) + option(OPTION_USE_ASSERTS "Use assertions; leave enabled for nightlies, betas, and RCs" YES) + option(OPTION_USE_THREADS "Use threads" YES) +endfunction() + +# Show the values of the generic options. +# +# show_options() +# +function(show_options) + message(STATUS "Option Dedicated - ${OPTION_DEDICATED}") + message(STATUS "Option Install FHS - ${OPTION_INSTALL_FHS}") + message(STATUS "Option Use assert - ${OPTION_USE_ASSERTS}") + message(STATUS "Option Use threads - ${OPTION_USE_THREADS}") +endfunction() + +# Add the definitions for the options that are selected. +# +# add_definitions_based_on_options() +# +function(add_definitions_based_on_options) + if (OPTION_DEDICATED) + add_definitions(-DDEDICATED) + endif (OPTION_DEDICATED) + + if (NOT OPTION_USE_THREADS) + add_definitions(-DNO_THREADS) + endif (NOT OPTION_USE_THREADS) + + if (OPTION_USE_ASSERTS) + add_definitions(-DWITH_ASSERT) + else (OPTION_USE_ASSERTS) + add_definitions(-DNDEBUG) + endif (OPTION_USE_ASSERTS) +endfunction() |