From 58d87421560995e522a0b9a1204be7f8d2baa284 Mon Sep 17 00:00:00 2001 From: Hleb Valoshka <375gnu@gmail.com> Date: Thu, 7 Feb 2019 17:31:52 +0300 Subject: [PATCH] Install files form extras-standard subdirs --- CMakeLists.txt | 1 + cmake/install_to_extras_subdir.cmake | 15 +++++++++++++++ extras-standard/cassini/CMakeLists.txt | 2 +- extras-standard/galileo/CMakeLists.txt | 2 +- extras-standard/hubble/CMakeLists.txt | 2 +- extras-standard/iss/CMakeLists.txt | 2 +- extras-standard/mir/CMakeLists.txt | 2 +- 7 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 cmake/install_to_extras_subdir.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f34eae5..2c4e7b8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,6 +65,7 @@ list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(GNUInstallDirs) include(CheckIncludeFiles) include(rpath) +include(install_to_extras_subdir) if (NOT MSVC) include(cotire) else() diff --git a/cmake/install_to_extras_subdir.cmake b/cmake/install_to_extras_subdir.cmake new file mode 100644 index 00000000..2c65d5e2 --- /dev/null +++ b/cmake/install_to_extras_subdir.cmake @@ -0,0 +1,15 @@ +macro(install_to_extras_subdir) + if(${ARGC} LESS 3) + message(FATAL_ERROR "install_to_extras_subdir requires at least 3 arguments") + endif() + + set(__datadir ${ARGV0}) + set(__subsubdir ${ARGV1}) + set(__sources ${ARGV}) + list(REMOVE_AT __sources 0 1) + + foreach(file ${__sources}) + get_filename_component(dir ${file} DIRECTORY) + install(FILES ${file} DESTINATION "${__datadir}/extras-standard/${__subsubdir}/${dir}" ) + endforeach() +endmacro() diff --git a/extras-standard/cassini/CMakeLists.txt b/extras-standard/cassini/CMakeLists.txt index e10be0a7..d89809d9 100644 --- a/extras-standard/cassini/CMakeLists.txt +++ b/extras-standard/cassini/CMakeLists.txt @@ -8,4 +8,4 @@ set(CASSINI_SOURCES models/huygens.3ds ) -install(FILES ${CASSINI_SOURCES} DESTINATION "${DATADIR}/extras-standard/cassini") +install_to_extras_subdir("${DATADIR}" cassini ${CASSINI_SOURCES}) diff --git a/extras-standard/galileo/CMakeLists.txt b/extras-standard/galileo/CMakeLists.txt index b712c2dd..094965f4 100644 --- a/extras-standard/galileo/CMakeLists.txt +++ b/extras-standard/galileo/CMakeLists.txt @@ -5,4 +5,4 @@ set(GALILEO_SOURCES models/galileo.3ds ) -install(FILES ${GALILEO_SOURCES} DESTINATION "${DATADIR}/extras-standard/galileo") +install_to_extras_subdir("${DATADIR}" galileo ${GALILEO_SOURCES}) diff --git a/extras-standard/hubble/CMakeLists.txt b/extras-standard/hubble/CMakeLists.txt index 59e2d631..601cb1be 100644 --- a/extras-standard/hubble/CMakeLists.txt +++ b/extras-standard/hubble/CMakeLists.txt @@ -3,4 +3,4 @@ set(HUBBLE_SOURCES models/hubble.cmod ) -install(FILES ${HUBBLE_SOURCES} DESTINATION "${DATADIR}/extras-standard/hubble") +install_to_extras_subdir("${DATADIR}" hubble ${HUBBLE_SOURCES}) diff --git a/extras-standard/iss/CMakeLists.txt b/extras-standard/iss/CMakeLists.txt index 7a0110c7..93283043 100644 --- a/extras-standard/iss/CMakeLists.txt +++ b/extras-standard/iss/CMakeLists.txt @@ -39,4 +39,4 @@ set(ISS_SOURCES models/iss.cmod ) -install(FILES ${ISS_SOURCES} DESTINATION "${DATADIR}/extras-standard/iss") +install_to_extras_subdir("${DATADIR}" iss ${ISS_SOURCES}) diff --git a/extras-standard/mir/CMakeLists.txt b/extras-standard/mir/CMakeLists.txt index ee9a2659..e57aa563 100644 --- a/extras-standard/mir/CMakeLists.txt +++ b/extras-standard/mir/CMakeLists.txt @@ -3,4 +3,4 @@ set(MIR_SOURCES mir.ssc ) -install(FILES ${EXTRA_MIR_SOURCES} DESTINATION "${DATADIR}/extras-standard/mir") +install_to_extras_subdir("${DATADIR}" mir ${MIR_SOURCES})