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)
@@ -23,16 +23,27 @@ project(
2323# gersemi: off
2424
2525# 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)
2727 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)
2929 set (CMAKE_CXX_SCAN_FOR_MODULES 1)
30- elseif ()
30+ else ()
3131 set (CMAKE_CXX_SCAN_FOR_MODULES 0)
3232endif ()
3333
34+ if (CMAKE_CXX_SCAN_FOR_MODULES)
35+ set (CMAKE_CXX_STANDARD_REQUIRED OFF )
36+ endif ()
37+
3438set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
3539
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+
3647# [CMAKE.SKIP_TESTS]
3748option (
3849 BEMAN_SCOPE_BUILD_TESTS
@@ -53,14 +64,8 @@ option(
5364 ${PROJECT_IS_TOP_LEVEL}
5465)
5566
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} " )
6469
6570if (CMAKE_CXX_SCAN_FOR_MODULES)
6671 add_library (beman.scope)
@@ -103,6 +108,7 @@ install(
103108 EXPORT beman.scope-targets
104109
105110 FILE_SET CXX_MODULES
111+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
106112 FILE_SET HEADERS
107113)
108114
0 commit comments