@@ -41,34 +41,51 @@ configure_file(
4141
4242include (FetchContent)
4343include (GNUInstallDirs)
44+ include (CMakePackageConfigHelpers)
4445
45- add_library(beman.inplace_vector INTERFACE)
46+ add_library(${PROJECT_NAME} INTERFACE)
4647# [CMAKE.LIBRARY_ALIAS]
47- add_library(beman ::inplace_vector ALIAS beman.inplace_vector )
48+ add_library(beman ::inplace_vector ALIAS ${PROJECT_NAME} )
4849
49- target_include_directories (
50- beman.inplace_vector
50+ target_sources (
51+ ${PROJECT_NAME}
5152 INTERFACE
52- $< BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR}/include>
53- $< BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR}/include>
54- $< INSTALL_INTERFACE :${CMAKE_INSTALL_INCLUDEDIR}>
53+ FILE_SET HEADERS
54+ BASE_DIRS
55+ ${CMAKE_CURRENT_SOURCE_DIR}/include
56+ ${CMAKE_CURRENT_BINARY_DIR}/include
57+ FILES
58+ ${CMAKE_CURRENT_SOURCE_DIR}/include/beman/inplace_vector/inplace_vector.hpp
59+ ${CMAKE_CURRENT_BINARY_DIR}/include/beman/inplace_vector/config.hpp
60+ )
61+
62+ # Install the INTERFACE library target and create an export set
63+ install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets FILE_SET HEADERS)
64+
65+ configure_package_config_file(
66+ "${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake.in"
67+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
68+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
69+ )
70+
71+ write_basic_package_version_file(
72+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
73+ VERSION ${PROJECT_VERSION}
74+ COMPATIBILITY SameMajorVersion
5575)
5676
57- # Install the InplaceVector library to the appropriate destination
5877install(
59- TARGETS beman.inplace_vector
60- EXPORT beman.inplace_vector-targets
61- FILE_SET HEADERS
78+ FILES
79+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
80+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
81+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
6282)
6383
64- # Install the header files to the appropriate destination
6584install(
66- DIRECTORY
67- ${CMAKE_CURRENT_SOURCE_DIR}/include/
68- ${CMAKE_CURRENT_BINARY_DIR}/include/
69- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
70- FILES_MATCHING
71- PATTERN "*.hpp"
85+ EXPORT ${PROJECT_NAME}-targets
86+ FILE ${PROJECT_NAME}-targets.cmake
87+ NAMESPACE beman ::
88+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
7289)
7390
7491if(BEMAN_INPLACE_VECTOR_BUILD_TESTS)
0 commit comments