2
2
#
3
3
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4
4
5
- cmake_minimum_required (VERSION 3.27)
5
+ cmake_minimum_required (VERSION 3.27...3.31 )
6
6
7
7
project (beman_optional26 VERSION 0.0.0 LANGUAGES CXX)
8
8
9
9
# Includes
10
- include (CTest )
10
+ include (CPACK )
11
11
include (FetchContent)
12
12
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} )
14
16
15
17
option (
16
18
OPTIONAL26_ENABLE_TESTING
@@ -20,6 +22,8 @@ option(
20
22
21
23
# Build the tests if enabled via the option OPTIONAL26_ENABLE_TESTING
22
24
if (OPTIONAL26_ENABLE_TESTING)
25
+ enable_testing ()
26
+
23
27
# Fetch GoogleTest
24
28
FetchContent_Declare(
25
29
googletest
@@ -35,6 +39,7 @@ set(CMAKE_VERIFY_INTERFACE_HEADER_SETS ON)
35
39
36
40
# Create the library target and named header set for beman_optional26
37
41
add_library (beman_optional26 INTERFACE )
42
+ add_library (Beman::Optional26::beman_optional26 ALIAS beman_optional26)
38
43
target_sources (
39
44
beman_optional26
40
45
PUBLIC FILE_SET beman_optional26_headers TYPE HEADERS BASE_DIRS include
@@ -61,23 +66,43 @@ add_subdirectory(examples)
61
66
62
67
include (CMakePackageConfigHelpers)
63
68
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
+
66
76
configure_package_config_file(
67
77
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}
73
80
)
74
81
75
82
install (
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}
79
87
)
80
88
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
+
81
106
# Coverage
82
107
configure_file ("cmake/gcovr.cfg.in" gcovr.cfg @ONLY)
83
108
0 commit comments