1
1
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2
2
3
3
if (CMAKE_CXX_STANDARD STREQUAL 26 )
4
- set (CMAKE_CXX_SCAN_FOR_MODULES 1 )
5
- set (CMAKE_CXX_MODULE_STD 1 )
6
4
if (CMAKE_CXX_MODULE_STD )
5
+ set (CMAKE_CXX_SCAN_FOR_MODULES 1 )
7
6
set (CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
8
7
"d0edc3af-4c50-42ea-a356-e2862fe7a444"
9
8
)
10
9
endif ()
11
10
set (CMAKE_CXX_STANDARD_REQUIRED OFF )
11
+ add_definitions (-DHAS_STDLIB_MODULES )
12
12
endif ()
13
13
14
14
cmake_minimum_required (VERSION 3.28...4.0 )
@@ -23,16 +23,27 @@ project(
23
23
# gersemi: off
24
24
25
25
# Modules opt in only on compilers that support g++-15 and clang-20
26
- if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20 )
26
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20 )
27
27
set (CMAKE_CXX_SCAN_FOR_MODULES 1 )
28
- elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15 )
28
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15 )
29
29
set (CMAKE_CXX_SCAN_FOR_MODULES 1 )
30
- elseif ()
30
+ else ()
31
31
set (CMAKE_CXX_SCAN_FOR_MODULES 0 )
32
32
endif ()
33
33
34
+ if (CMAKE_CXX_SCAN_FOR_MODULES )
35
+ set (CMAKE_CXX_STANDARD_REQUIRED OFF )
36
+ endif ()
37
+
34
38
set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
35
39
40
+ include (CMakePrintHelpers )
41
+ cmake_print_variables (
42
+ CMAKE_CXX_SCAN_FOR_MODULES
43
+ CMAKE_CXX_MODULE_STD
44
+ CMAKE_CXX_COMPILER_IMPORT_STD
45
+ )
46
+
36
47
# [CMAKE.SKIP_TESTS]
37
48
option (
38
49
BEMAN_SCOPE_BUILD_TESTS
@@ -53,14 +64,8 @@ option(
53
64
${PROJECT_IS_TOP_LEVEL}
54
65
)
55
66
56
- message (
57
- "Compiler is: ${CMAKE_CXX_COMPILER_ID} version: ${CMAKE_CXX_COMPILER_VERSION} "
58
- )
59
- message (
60
- "cmake is: ${CMAKE_VERSION} modules scan : ${CMAKE_CXX_SCAN_FOR_MODULES} "
61
- )
62
-
63
- # gersemi: off
67
+ message (STATUS "Compiler is: ${CMAKE_CXX_COMPILER_ID} version: ${CMAKE_CXX_COMPILER_VERSION} " )
68
+ message (STATUS "CMake is: ${CMAKE_VERSION} modules scan: ${CMAKE_CXX_SCAN_FOR_MODULES} " )
64
69
65
70
if (CMAKE_CXX_SCAN_FOR_MODULES )
66
71
add_library (beman.scope )
@@ -103,6 +108,7 @@ install(
103
108
EXPORT beman.scope-targets
104
109
105
110
FILE_SET CXX_MODULES
111
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
106
112
FILE_SET HEADERS
107
113
)
108
114
0 commit comments