move install commands to develop cmakelists

This commit is contained in:
BlackMATov
2023-01-10 09:56:26 +07:00
parent 46ca9d27af
commit a23dd4fc7c
5 changed files with 59 additions and 62 deletions

View File

@@ -23,4 +23,4 @@ Diagnostics:
- readability-redundant-access-specifiers
CompileFlags:
CompilationDatabase: ./develop/.cdb
CompilationDatabase: develop/.cdb

6
.gitignore vendored
View File

@@ -1,3 +1,3 @@
build/*
install/*
develop/.cdb/*
/develop/.cdb/*
/develop/build/*
/develop/install/*

View File

@@ -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()

View File

@@ -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
}

View File

@@ -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}")