Files @ r25958:603d75b53498
Branch filter:

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

Patric Stout
Doc: update multiplayer documentation with latest changes (#9552)

Although several places were fixed during the PR making the change,
not all made it in this document.

While at it, removed all kinds of Markdown warnings by an excessive
usage of spacebar in this document.
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()