From 6a50ae42ce2f632a9f319a2cf2762ccd0d65442f Mon Sep 17 00:00:00 2001 From: Myk Taylor Date: Sat, 29 Jul 2023 00:34:56 -0700 Subject: [PATCH] more deduplication of installed files --- CMakeLists.txt | 14 +++++++------- depends/CMakeLists.txt | 2 -- library/CMakeLists.txt | 28 +++++++++++++++++----------- plugins/CMakeLists.txt | 20 +++++++++++--------- plugins/stonesense | 2 +- 5 files changed, 36 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5da7e4aa3..2451b768a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -218,7 +218,7 @@ set(DFHACK_USERDOC_DESTINATION ${DFHACK_DATA_DESTINATION}) option(BUILD_LIBRARY "Build the DFHack library." ON) option(BUILD_PLUGINS "Build the DFHack plugins." ON) option(INSTALL_SCRIPTS "Install DFHack scripts." ON) -option(INSTALL_DATA_FILES "Install DFHack common data files." ON) +option(INSTALL_DATA_FILES "Install DFHack platform independent files." ON) set(CMAKE_POSITION_INDEPENDENT_CODE TRUE) if(UNIX) @@ -407,20 +407,20 @@ if(NOT GIT_FOUND) endif() # build the lib itself +add_subdirectory(library) if(BUILD_LIBRARY) - add_subdirectory(library) - install(FILES LICENSE.rst DESTINATION ${DFHACK_USERDOC_DESTINATION}) - install(FILES docs/changelog-placeholder.txt DESTINATION ${DFHACK_USERDOC_DESTINATION} RENAME changelog.txt) + file(WRITE ${CMAKE_BINARY_DIR}/dfhack_setarch.txt ${DFHACK_SETARCH}) + install(FILES ${CMAKE_BINARY_DIR}/dfhack_setarch.txt DESTINATION ${DFHACK_DATA_DESTINATION}) endif() -file(WRITE "${CMAKE_BINARY_DIR}/dfhack_setarch.txt" ${DFHACK_SETARCH}) -install(FILES "${CMAKE_BINARY_DIR}/dfhack_setarch.txt" DESTINATION "${DFHACK_DATA_DESTINATION}") - # build the plugins add_subdirectory(plugins) if(INSTALL_DATA_FILES) add_subdirectory(data) + install(FILES LICENSE.rst DESTINATION ${DFHACK_USERDOC_DESTINATION}) + install(FILES docs/changelog-placeholder.txt DESTINATION ${DFHACK_USERDOC_DESTINATION} RENAME changelog.txt) + install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/depends/luacov/src/luacov/ DESTINATION ${DFHACK_DATA_DESTINATION}/lua/luacov) endif() if(INSTALL_SCRIPTS) diff --git a/depends/CMakeLists.txt b/depends/CMakeLists.txt index 0756519ef..d3cfbb415 100644 --- a/depends/CMakeLists.txt +++ b/depends/CMakeLists.txt @@ -39,8 +39,6 @@ option(CLSOCKET_DEP_ONLY "Build for use inside other CMake projects as dependenc add_subdirectory(clsocket) ide_folder(clsocket "Depends") -install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/luacov/src/luacov/ DESTINATION ${DFHACK_DATA_DESTINATION}/lua/luacov) - # set the default values of libexpat options - the descriptions are left empty # because later option() calls *do* override those set(EXPAT_BUILD_EXAMPLES OFF CACHE BOOL "") diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 5d2698bb0..8b1b7f65d 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -4,6 +4,8 @@ cmake_minimum_required(VERSION 3.21) # prevent CMake warnings about INTERFACE_LINK_LIBRARIES vs LINK_INTERFACE_LIBRARIES cmake_policy(SET CMP0022 NEW) +if(BUILD_LIBRARY) + # build options if(UNIX) option(CONSOLE_NO_CATCH "Make the console not catch 'CTRL+C' events for easier debugging." OFF) @@ -438,20 +440,24 @@ install(TARGETS dfhack LIBRARY DESTINATION ${DFHACK_LIBRARY_DESTINATION} RUNTIME DESTINATION ${DFHACK_LIBRARY_DESTINATION}) -# install the offset file -install(FILES xml/symbols.xml - DESTINATION ${DFHACK_DATA_DESTINATION}) - install(TARGETS dfhack-run dfhack-client binpatch LIBRARY DESTINATION ${DFHACK_LIBRARY_DESTINATION} RUNTIME DESTINATION ${DFHACK_LIBRARY_DESTINATION}) -install(DIRECTORY lua/ - DESTINATION ${DFHACK_LUA_DESTINATION} - FILES_MATCHING PATTERN "*.lua") +add_subdirectory(xml) -install(DIRECTORY ${dfhack_SOURCE_DIR}/patches - DESTINATION ${DFHACK_DATA_DESTINATION} - FILES_MATCHING PATTERN "*.dif") +endif(BUILD_LIBRARY) -add_subdirectory(xml) +# install the offset file +if(INSTALL_DATA_FILES) + install(FILES xml/symbols.xml + DESTINATION ${DFHACK_DATA_DESTINATION}) + + install(DIRECTORY lua/ + DESTINATION ${DFHACK_LUA_DESTINATION} + FILES_MATCHING PATTERN "*.lua") + + install(DIRECTORY ${dfhack_SOURCE_DIR}/patches + DESTINATION ${DFHACK_DATA_DESTINATION} + FILES_MATCHING PATTERN "*.dif") +endif() diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 345263f1b..e393756a7 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -24,15 +24,17 @@ if(BUILD_DEV_PLUGINS) #add_subdirectory(devel) endif() -install(DIRECTORY lua/ - DESTINATION ${DFHACK_LUA_DESTINATION}/plugins - FILES_MATCHING PATTERN "*.lua") -install(DIRECTORY raw/ - DESTINATION ${DFHACK_DATA_DESTINATION}/raw - FILES_MATCHING PATTERN "*.txt") -install(DIRECTORY raw/ - DESTINATION ${DFHACK_DATA_DESTINATION}/raw - FILES_MATCHING PATTERN "*.diff") +if(INSTALL_DATA_FILES) + install(DIRECTORY lua/ + DESTINATION ${DFHACK_LUA_DESTINATION}/plugins + FILES_MATCHING PATTERN "*.lua") + install(DIRECTORY raw/ + DESTINATION ${DFHACK_DATA_DESTINATION}/raw + FILES_MATCHING PATTERN "*.txt") + install(DIRECTORY raw/ + DESTINATION ${DFHACK_DATA_DESTINATION}/raw + FILES_MATCHING PATTERN "*.diff") +endif() # Protobuf file(GLOB PROJECT_PROTOS ${CMAKE_CURRENT_SOURCE_DIR}/proto/*.proto) diff --git a/plugins/stonesense b/plugins/stonesense index 808ac3b77..f9fce95fd 160000 --- a/plugins/stonesense +++ b/plugins/stonesense @@ -1 +1 @@ -Subproject commit 808ac3b775ecafca512d583daead9bd1fc567855 +Subproject commit f9fce95fd74bf1d5050e891dbd3e0bda2e8a7ce9