Files @ r25874:8e2606e1b5e5
Branch filter:

Location: cpp/openttd-patchpack/source/cmake/Options.cmake

Patric Stout
Change: remove the ability to control "max spectators" (#9466)

Soon we will make "join game" join the game as spectator first,
so limiting the amount of spectators makes no sense anymore in
that context. Not sure it ever did make sense.
include(GNUInstallDirs)

# 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 ".${BINARY_NAME}")
        set(DEFAULT_SHARED_DIR "(not set)")
        set(DEFAULT_GLOBAL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${BINARY_NAME}")
    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()

    if(NOT SHARED_DIR)
        set(SHARED_DIR "${DEFAULT_SHARED_DIR}" CACHE STRING "Shared directory")
        message(STATUS "Detecting Shared Data directory - ${SHARED_DIR}")
    endif()

    if(NOT GLOBAL_DIR)
        set(GLOBAL_DIR "${DEFAULT_GLOBAL_DIR}" CACHE STRING "Global directory")
        message(STATUS "Detecting Global Data directory - ${GLOBAL_DIR}")
    endif()

    set(HOST_BINARY_DIR "" CACHE PATH "Full path to native cmake build directory")
endfunction()

# Set some generic options that influence what is being build.
#
# set_options()
#
function(set_options)
    option(OPTION_PACKAGE_DEPENDENCIES "Copy dependencies into lib/ for easy packaging (Linux only)" OFF)

    if(UNIX AND NOT APPLE AND NOT OPTION_PACKAGE_DEPENDENCIES)
        set(DEFAULT_OPTION_INSTALL_FHS ON)
    else()
        set(DEFAULT_OPTION_INSTALL_FHS OFF)
    endif()

    option(OPTION_FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." OFF)

    option(OPTION_DEDICATED "Build dedicated server only (no GUI)" OFF)
    option(OPTION_INSTALL_FHS "Install with Filesystem Hierarchy Standard folders" ${DEFAULT_OPTION_INSTALL_FHS})
    option(OPTION_USE_ASSERTS "Use assertions; leave enabled for nightlies, betas, and RCs" ON)
    if(EMSCRIPTEN)
        # Although pthreads is supported, it is not in a way yet that is
        # useful for us.
        option(OPTION_USE_THREADS "Use threads" OFF)
    else()
        option(OPTION_USE_THREADS "Use threads" ON)
    endif()
    option(OPTION_USE_NSIS "Use NSIS to create windows installer; enable only for stable releases" OFF)
    option(OPTION_TOOLS_ONLY "Build only tools target" OFF)
    option(OPTION_DOCS_ONLY "Build only docs target" OFF)

    if (OPTION_DOCS_ONLY)
        set(OPTION_TOOLS_ONLY ON PARENT_SCOPE)
    endif()
endfunction()

# Show the values of the generic options.
#
# show_options()
#
function(show_options)
    message(STATUS "Option Package Dependencies - ${OPTION_PACKAGE_DEPENDENCIES}")
    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}")
    message(STATUS "Option Use NSIS - ${OPTION_USE_NSIS}")
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()

    if(NOT OPTION_USE_THREADS)
        add_definitions(-DNO_THREADS)
    endif()

    if(OPTION_USE_ASSERTS)
        add_definitions(-DWITH_ASSERT)
    else()
        add_definitions(-DNDEBUG)
    endif()
endfunction()