11# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
22
33if (CMAKE_CXX_STANDARD STREQUAL 26)
4- set (CMAKE_CXX_SCAN_FOR_MODULES 1)
5- set (CMAKE_CXX_MODULE_STD 1)
64 if (CMAKE_CXX_MODULE_STD)
5+ set (CMAKE_CXX_SCAN_FOR_MODULES 1)
76 set (CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
87 "d0edc3af-4c50-42ea-a356-e2862fe7a444"
98 )
109 endif ()
1110 set (CMAKE_CXX_STANDARD_REQUIRED OFF )
11+ add_definitions (-DHAS_STDLIB_MODULES)
1212endif ()
1313
1414cmake_minimum_required (VERSION 3.28...4.0)
@@ -20,7 +20,28 @@ project(
2020 VERSION 0.0.1
2121)
2222
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+
2338set (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+ )
2445
2546# [CMAKE.SKIP_TESTS]
2647option (
@@ -87,6 +108,7 @@ install(
87108 EXPORT beman.scope-targets
88109
89110 FILE_SET CXX_MODULES
111+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
90112 FILE_SET HEADERS
91113)
92114
0 commit comments