22#
33# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
44
5- cmake_minimum_required (VERSION 3.27)
5+ cmake_minimum_required (VERSION 3.27...3.31 )
66
77project (beman_optional26 VERSION 0.0.0 LANGUAGES CXX)
88
99# Includes
10- include (CTest )
10+ include (CPACK )
1111include (FetchContent)
1212
13- set (TARGETS_EXPORT_NAME ${CMAKE_PROJECT_NAME} Targets)
13+ set (TARGET_PACKAGE_NAME ${PROJECT_NAME} )
14+ set (TARGETS_EXPORT_NAME ${TARGET_PACKAGE_NAME} -targets)
15+ set (INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR} /cmake/${TARGET_PACKAGE_NAME} )
1416
1517option (
1618 OPTIONAL26_ENABLE_TESTING
@@ -20,6 +22,8 @@ option(
2022
2123# Build the tests if enabled via the option OPTIONAL26_ENABLE_TESTING
2224if (OPTIONAL26_ENABLE_TESTING)
25+ enable_testing ()
26+
2327 # Fetch GoogleTest
2428 FetchContent_Declare(
2529 googletest
@@ -35,6 +39,7 @@ set(CMAKE_VERIFY_INTERFACE_HEADER_SETS ON)
3539
3640# Create the library target and named header set for beman_optional26
3741add_library (beman_optional26 INTERFACE )
42+ add_library (Beman::Optional26::beman_optional26 ALIAS beman_optional26)
3843target_sources (
3944 beman_optional26
4045 PUBLIC FILE_SET beman_optional26_headers TYPE HEADERS BASE_DIRS include
@@ -61,23 +66,43 @@ add_subdirectory(examples)
6166
6267include (CMakePackageConfigHelpers)
6368
64- # This will be used to replace @PACKAGE_cmakeModulesDir@
65- set (cmakeModulesDir cmake/beman)
69+ # install
70+ write_basic_package_version_file(
71+ ${CMAKE_CURRENT_BINARY_DIR} /${TARGET_PACKAGE_NAME} -config-version .cmake
72+ VERSION ${PROJECT_VERSION}
73+ COMPATIBILITY AnyNewerVersion
74+ )
75+
6676configure_package_config_file(
6777 cmake/Config.cmake.in
68- BemanOptional26Config.cmake
69- INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/beman/optional26/
70- PATH_VARS cmakeModulesDir
71- NO_SET_AND_CHECK_MACRO
72- NO_CHECK_REQUIRED_COMPONENTS_MACRO
78+ ${CMAKE_CURRENT_BINARY_DIR} /${TARGET_PACKAGE_NAME} -config.cmake
79+ INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
7380)
7481
7582install (
76- FILES ${CMAKE_CURRENT_BINARY_DIR} /BemanOptional26Config.cmake
77- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/beman/optional26/
78- COMPONENT beman_optional26_development
83+ FILES
84+ ${CMAKE_CURRENT_BINARY_DIR} /${TARGET_PACKAGE_NAME} -config.cmake
85+ ${CMAKE_CURRENT_BINARY_DIR} /${TARGET_PACKAGE_NAME} -config-version .cmake
86+ DESTINATION ${INSTALL_CONFIGDIR}
7987)
8088
89+ # # This will be used to replace @PACKAGE_cmakeModulesDir@
90+ # set(cmakeModulesDir cmake)
91+ # configure_package_config_file(
92+ # cmake/Config.cmake.in
93+ # beman_optional26-config.cmake
94+ # INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/beman_optional26/
95+ # PATH_VARS cmakeModulesDir
96+ # NO_SET_AND_CHECK_MACRO
97+ # NO_CHECK_REQUIRED_COMPONENTS_MACRO
98+ # )
99+ #
100+ # install(
101+ # FILES ${CMAKE_CURRENT_BINARY_DIR}/beman_optional26-config.cmake
102+ # DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/beman_optional26/
103+ # COMPONENT beman_optional26_development
104+ # )
105+
81106# Coverage
82107configure_file ("cmake/gcovr.cfg.in" gcovr.cfg @ONLY)
83108
0 commit comments