@@ -37,6 +37,7 @@ set(CPACK_GENERATOR TGZ)
3737
3838# includes
3939include (GNUInstallDirs)
40+ include (CMakePackageConfigHelpers)
4041include (CPack)
4142
4243add_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
7178install(
@@ -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+
77110if(BEMAN_INPLACE_VECTOR_BUILD_TESTS)
78111 enable_testing()
79112 add_subdirectory(tests/beman/inplace_vector)
0 commit comments