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)
@@ -20,7 +20,28 @@ project(
20
20
VERSION 0.0.1
21
21
)
22
22
23
+ # module will only compile with gcc15 or clang20 and above
24
+ if (
25
+ CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
26
+ AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20
27
+ )
28
+ set (CMAKE_CXX_SCAN_FOR_MODULES 1)
29
+ elseif (
30
+ CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
31
+ AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15
32
+ )
33
+ set (CMAKE_CXX_SCAN_FOR_MODULES 1)
34
+ else (NOT CMAKE_CXX_MODULE_STD)
35
+ set (CMAKE_CXX_SCAN_FOR_MODULES 0)
36
+ endif ()
37
+
23
38
set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
39
+ message (STATUS "CMAKE_CXX_SCAN_FOR_MODULES: ${CMAKE_CXX_SCAN_FOR_MODULES} " )
40
+ message (STATUS "CMAKE_CXX_MODULE_STD: ${CMAKE_CXX_MODULE_STD} " )
41
+ message (
42
+ STATUS
43
+ "CMAKE_CXX_COMPILER_IMPORT_STD: ${CMAKE_CXX_COMPILER_IMPORT_STD} "
44
+ )
24
45
25
46
# [CMAKE.SKIP_TESTS]
26
47
option (
@@ -87,6 +108,7 @@ install(
87
108
EXPORT beman.scope-targets
88
109
89
110
FILE_SET CXX_MODULES
111
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
90
112
FILE_SET HEADERS
91
113
)
92
114
0 commit comments