From a23dd4fc7ce503aed2a057c1ee348ad03935e94f Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Tue, 10 Jan 2023 09:56:26 +0700 Subject: [PATCH] move install commands to develop cmakelists --- .clangd | 2 +- .gitignore | 6 ++--- CMakeLists.txt | 58 ++---------------------------------------- CMakePresets.json | 4 +-- develop/CMakeLists.txt | 51 +++++++++++++++++++++++++++++++++++++ 5 files changed, 59 insertions(+), 62 deletions(-) diff --git a/.clangd b/.clangd index 1c32a0e..0238ed2 100644 --- a/.clangd +++ b/.clangd @@ -23,4 +23,4 @@ Diagnostics: - readability-redundant-access-specifiers CompileFlags: - CompilationDatabase: ./develop/.cdb + CompilationDatabase: develop/.cdb diff --git a/.gitignore b/.gitignore index 0dcaa67..78f9d8b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -build/* -install/* -develop/.cdb/* \ No newline at end of file +/develop/.cdb/* +/develop/build/* +/develop/install/* \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c59804d..6025594 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ project(meta.hpp HOMEPAGE_URL "https://github.com/blackmatov/meta.hpp") # -# LIBRARY +# library # add_library(${PROJECT_NAME} INTERFACE) @@ -23,63 +23,9 @@ find_package(Threads REQUIRED) target_link_libraries(${PROJECT_NAME} INTERFACE Threads::Threads) # -# DEVELOP +# develop # if(PROJECT_IS_TOP_LEVEL) add_subdirectory(develop) endif() - - -# -# INSTALL -# - -if(PROJECT_IS_TOP_LEVEL) - include(CMakePackageConfigHelpers) - include(GNUInstallDirs) - - set(META_HPP_INSTALL_CONFIG_DIR - "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") - - set(META_HPP_INSTALL_CONFIG_INPUT - "${CMAKE_CURRENT_SOURCE_DIR}/develop/cmake/Config.cmake.in") - - set(META_HPP_INSTALL_GENERATED_CONFIG_CMAKE - "${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}-config.cmake") - - set(META_HPP_INSTALL_GENERATED_CONFIG_VERSION_CMAKE - "${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}-config-version.cmake") - - configure_package_config_file( - "${META_HPP_INSTALL_CONFIG_INPUT}" - "${META_HPP_INSTALL_GENERATED_CONFIG_CMAKE}" - INSTALL_DESTINATION "${META_HPP_INSTALL_CONFIG_DIR}" - NO_SET_AND_CHECK_MACRO) - - write_basic_package_version_file( - "${META_HPP_INSTALL_GENERATED_CONFIG_VERSION_CMAKE}" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion - ARCH_INDEPENDENT) - - install( - TARGETS ${PROJECT_NAME} - EXPORT ${PROJECT_NAME}-targets - INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") - - install( - DIRECTORY headers/${PROJECT_NAME} - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") - - install( - EXPORT ${PROJECT_NAME}-targets - FILE ${PROJECT_NAME}-targets.cmake - NAMESPACE ${PROJECT_NAME}:: - DESTINATION "${META_HPP_INSTALL_CONFIG_DIR}") - - install( - FILES "${META_HPP_INSTALL_GENERATED_CONFIG_CMAKE}" - "${META_HPP_INSTALL_GENERATED_CONFIG_VERSION_CMAKE}" - DESTINATION "${META_HPP_INSTALL_CONFIG_DIR}") -endif() diff --git a/CMakePresets.json b/CMakePresets.json index 1e08e52..6d82d4c 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -12,8 +12,8 @@ "name": "ninja-base", "hidden": true, "generator": "Ninja Multi-Config", - "binaryDir": "${sourceDir}/build/${presetName}", - "installDir": "${sourceDir}/install/${presetName}", + "binaryDir": "${sourceDir}/develop/build/${presetName}", + "installDir": "${sourceDir}/develop/install/${presetName}", "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": true } diff --git a/develop/CMakeLists.txt b/develop/CMakeLists.txt index fa17b33..b71fbc3 100644 --- a/develop/CMakeLists.txt +++ b/develop/CMakeLists.txt @@ -14,3 +14,54 @@ add_subdirectory(manuals) add_subdirectory(singles) add_subdirectory(vendors) add_subdirectory(untests) + +# +# install +# + +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) + +set(META_HPP_INSTALL_CONFIG_DIR + "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") + +set(META_HPP_INSTALL_CONFIG_INPUT + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in") + +set(META_HPP_INSTALL_GENERATED_CONFIG_CMAKE + "${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}-config.cmake") + +set(META_HPP_INSTALL_GENERATED_CONFIG_VERSION_CMAKE + "${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}-config-version.cmake") + +configure_package_config_file( + "${META_HPP_INSTALL_CONFIG_INPUT}" + "${META_HPP_INSTALL_GENERATED_CONFIG_CMAKE}" + INSTALL_DESTINATION "${META_HPP_INSTALL_CONFIG_DIR}" + NO_SET_AND_CHECK_MACRO) + +write_basic_package_version_file( + "${META_HPP_INSTALL_GENERATED_CONFIG_VERSION_CMAKE}" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion + ARCH_INDEPENDENT) + +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-targets + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + +install( + DIRECTORY ../headers/${PROJECT_NAME} + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + +install( + EXPORT ${PROJECT_NAME}-targets + FILE ${PROJECT_NAME}-targets.cmake + NAMESPACE ${PROJECT_NAME}:: + DESTINATION "${META_HPP_INSTALL_CONFIG_DIR}") + +install( + FILES "${META_HPP_INSTALL_GENERATED_CONFIG_CMAKE}" + "${META_HPP_INSTALL_GENERATED_CONFIG_VERSION_CMAKE}" + DESTINATION "${META_HPP_INSTALL_CONFIG_DIR}")