From 506598a80a5285fd5f3b164afbcb69bd9e98c6cc Mon Sep 17 00:00:00 2001 From: Dan Church Date: Thu, 18 Jun 2020 11:34:19 -0500 Subject: [PATCH] Fix: [CMake] Fix install paths using GNUInstallDirs --- CMakeLists.txt | 7 +++++++ cmake/InstallAndPackage.cmake | 12 +++++++----- cmake/Options.cmake | 4 +++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 605f4b0a25..825ba3dcd4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,13 @@ endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") +# Use GNUInstallDirs to allow customisation +# but set our own default data dir +if (NOT CMAKE_INSTALL_DATADIR) + set(CMAKE_INSTALL_DATADIR "share/games") +endif (NOT CMAKE_INSTALL_DATADIR) +include(GNUInstallDirs) + include(Options) set_options() set_directory_options() diff --git a/cmake/InstallAndPackage.cmake b/cmake/InstallAndPackage.cmake index a84707bc22..71b80e6843 100644 --- a/cmake/InstallAndPackage.cmake +++ b/cmake/InstallAndPackage.cmake @@ -1,9 +1,11 @@ +include(GNUInstallDirs) + # If requested, use FHS layout; otherwise fall back to a flat layout. if (OPTION_INSTALL_FHS) - set(BINARY_DESTINATION_DIR "bin") - set(DATA_DESTINATION_DIR "share/games/openttd") - set(DOCS_DESTINATION_DIR "share/doc/openttd") - set(MAN_DESTINATION_DIR "share/man/openttd") + set(BINARY_DESTINATION_DIR "${CMAKE_INSTALL_BINDIR}") + set(DATA_DESTINATION_DIR "${CMAKE_INSTALL_DATADIR}/openttd") + set(DOCS_DESTINATION_DIR "${CMAKE_INSTALL_DOCDIR}") + set(MAN_DESTINATION_DIR "${CMAKE_INSTALL_MANDIR}") else (OPTION_INSTALL_FHS) set(BINARY_DESTINATION_DIR ".") set(DATA_DESTINATION_DIR ".") @@ -40,7 +42,7 @@ install(FILES if (OPTION_INSTALL_FHS) install(FILES ${CMAKE_SOURCE_DIR}/docs/openttd.6 - DESTINATION ${MAN_DESTINATION_DIR} + DESTINATION ${MAN_DESTINATION_DIR}/man6 COMPONENT manual) endif (OPTION_INSTALL_FHS) diff --git a/cmake/Options.cmake b/cmake/Options.cmake index 0e8063fac0..478f1b2b24 100644 --- a/cmake/Options.cmake +++ b/cmake/Options.cmake @@ -1,3 +1,5 @@ +include(GNUInstallDirs) + # Set the options for the directories (personal, shared, global). # # set_directory_options() @@ -14,7 +16,7 @@ function(set_directory_options) elseif (UNIX) set(DEFAULT_PERSONAL_DIR ".openttd") set(DEFAULT_SHARED_DIR "(not set)") - set(DEFAULT_GLOBAL_DIR "${CMAKE_INSTALL_PREFIX}/share/games/openttd") + set(DEFAULT_GLOBAL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/openttd") else () message(FATAL_ERROR "Unknown OS found; please consider creating a Pull Request to add support for this OS.") endif ()