From 97592c409378c2d353a1cdd6b50f80b7e81b67c2 Mon Sep 17 00:00:00 2001 From: glx22 Date: Thu, 11 Jun 2020 21:57:14 +0200 Subject: [PATCH] Add: [CMake] Allow renaming of openttd binary --- CMakeLists.txt | 7 ++++++- cmake/InstallAndPackage.cmake | 4 ++-- cmake/Options.cmake | 6 +++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 06cd71c3a2..364236c86c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,10 @@ cmake_minimum_required(VERSION 3.5) -project(OpenTTD) +if (NOT BINARY_NAME) + set(BINARY_NAME openttd) +endif (NOT BINARY_NAME) + +project(${BINARY_NAME}) if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the bin directory") @@ -131,6 +135,7 @@ include(CompileFlags) compile_flags() add_executable(openttd WIN32 ${GENERATED_SOURCE_FILES}) +set_target_properties(openttd PROPERTIES OUTPUT_NAME "${BINARY_NAME}") # All other files are added via target_sources() include(AddCustomXXXTimestamp) diff --git a/cmake/InstallAndPackage.cmake b/cmake/InstallAndPackage.cmake index 6292ecf5a6..c8cd6b44ac 100644 --- a/cmake/InstallAndPackage.cmake +++ b/cmake/InstallAndPackage.cmake @@ -3,7 +3,7 @@ include(GNUInstallDirs) # If requested, use FHS layout; otherwise fall back to a flat layout. if (OPTION_INSTALL_FHS) set(BINARY_DESTINATION_DIR "${CMAKE_INSTALL_BINDIR}") - set(DATA_DESTINATION_DIR "${CMAKE_INSTALL_DATADIR}/openttd") + set(DATA_DESTINATION_DIR "${CMAKE_INSTALL_DATADIR}/${BINARY_NAME}") set(DOCS_DESTINATION_DIR "${CMAKE_INSTALL_DOCDIR}") set(MAN_DESTINATION_DIR "${CMAKE_INSTALL_MANDIR}") else (OPTION_INSTALL_FHS) @@ -41,7 +41,7 @@ install(FILES # file with little context to what it is. if (OPTION_INSTALL_FHS) set(MAN_SOURCE_FILE ${CMAKE_SOURCE_DIR}/docs/openttd.6) - set(MAN_BINARY_FILE ${CMAKE_BINARY_DIR}/docs/openttd.6) + set(MAN_BINARY_FILE ${CMAKE_BINARY_DIR}/docs/${BINARY_NAME}.6) install(CODE " execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${MAN_SOURCE_FILE} ${MAN_BINARY_FILE}) diff --git a/cmake/Options.cmake b/cmake/Options.cmake index 4210c5b490..4f2404b2d4 100644 --- a/cmake/Options.cmake +++ b/cmake/Options.cmake @@ -14,9 +14,9 @@ function(set_directory_options) set(DEFAULT_SHARED_DIR "(not set)") set(DEFAULT_GLOBAL_DIR "(not set)") elseif (UNIX) - set(DEFAULT_PERSONAL_DIR ".openttd") + set(DEFAULT_PERSONAL_DIR ".${BINARY_NAME}") set(DEFAULT_SHARED_DIR "(not set)") - set(DEFAULT_GLOBAL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/openttd") + 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 () @@ -51,7 +51,7 @@ function(set_options) 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 Filesstem Hierarchy Standard folders" ${DEFAULT_OPTION_INSTALL_FHS}) + 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) option(OPTION_USE_THREADS "Use threads" ON) option(OPTION_USE_NSIS "Use NSIS to create windows installer; enable only for stable releases" OFF)