Skip to content

Commit 2242945

Browse files
committed
Install cmake config package
1 parent 862d56a commit 2242945

File tree

2 files changed

+43
-3
lines changed

2 files changed

+43
-3
lines changed

CMakeLists.txt

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ set(CPACK_GENERATOR TGZ)
3737

3838
# includes
3939
include(GNUInstallDirs)
40+
include(CMakePackageConfigHelpers)
4041
include(CPack)
4142

4243
add_library(beman.inplace_vector INTERFACE)
@@ -63,9 +64,15 @@ target_compile_features(
6364
"$<$<NOT:$<COMPILE_FEATURES:cxx_std_23>>:cxx_std_20>"
6465
)
6566

66-
set(TARGET_PACKAGE_NAME ${PROJECT_NAME}-config)
67-
set(TARGETS_EXPORT_NAME ${PROJECT_NAME}-targets)
68-
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
67+
# export cmake config package
68+
69+
set(TARGET_NAME inplace_vector)
70+
set(TARGET_NAMESPACE beman)
71+
set(TARGET_ALIAS ${TARGET_NAMESPACE}::${TARGET_LIBRARY})
72+
set(TARGET_PREFIX ${TARGET_NAMESPACE}.${TARGET_NAME})
73+
set(TARGET_PACKAGE_NAME ${TARGET_NAME}-config)
74+
set(TARGETS_EXPORT_NAME ${TARGET_NAME}-targets)
75+
set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${TARGET_NAME})
6976

7077
# Install the InplaceVector library to the appropriate destination
7178
install(
@@ -74,6 +81,32 @@ install(
7481
FILE_SET inplace_vector_public_headers
7582
)
7683

84+
write_basic_package_version_file(
85+
${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PACKAGE_NAME}-version.cmake
86+
VERSION ${PROJECT_VERSION}
87+
COMPATIBILITY AnyNewerVersion
88+
)
89+
90+
configure_package_config_file(
91+
cmake/config.cmake.in
92+
${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PACKAGE_NAME}.cmake
93+
INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
94+
)
95+
96+
install(
97+
FILES
98+
${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PACKAGE_NAME}.cmake
99+
${CMAKE_CURRENT_BINARY_DIR}/${TARGET_PACKAGE_NAME}-version.cmake
100+
DESTINATION ${INSTALL_CONFIGDIR}
101+
)
102+
103+
install(
104+
EXPORT ${TARGETS_EXPORT_NAME}
105+
FILE ${TARGETS_EXPORT_NAME}.cmake
106+
DESTINATION "${INSTALL_CONFIGDIR}"
107+
NAMESPACE ${TARGET_NAMESPACE}::
108+
)
109+
77110
if(BEMAN_INPLACE_VECTOR_BUILD_TESTS)
78111
enable_testing()
79112
add_subdirectory(tests/beman/inplace_vector)

cmake/config.cmake.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# cmake/Config.cmake.in -*-makefile-*-
2+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
3+
4+
@PACKAGE_INIT@
5+
6+
include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
7+
check_required_components("@TARGET_NAME@")

0 commit comments

Comments
 (0)