Skip to content

Commit 34e9c54

Browse files
committed
Make it more readable
The final cleanup
1 parent 19b2381 commit 34e9c54

File tree

3 files changed

+25
-19
lines changed

3 files changed

+25
-19
lines changed

CMakeLists.txt

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
22

33
if(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)
1212
endif()
1313

1414
cmake_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)
3232
endif()
3333

34+
if(CMAKE_CXX_SCAN_FOR_MODULES)
35+
set(CMAKE_CXX_STANDARD_REQUIRED OFF)
36+
endif()
37+
3438
set(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]
3748
option(
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

6570
if(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

tests/CMakeLists.txt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,12 @@ FetchContent_Declare(
1111
)
1212
FetchContent_MakeAvailable(Catch2)
1313

14-
# module tests will only compile with gcc15 or clang20 and above
14+
set(ALL_TESTNAMES scope_success scope_exit scope_fail unique_resource)
1515
if(CMAKE_CXX_SCAN_FOR_MODULES)
16-
set(ALL_TESTNAMES scope_success scope_exit scope_fail unique_resource module)
17-
else()
18-
set(ALL_TESTNAMES scope_success scope_exit scope_fail unique_resource)
16+
list(APPEND ALL_TESTNAMES module)
1917
endif()
2018

21-
message(STATUS "Tests to be built: ${ALL_TESTNAMES}")
19+
message(DEBUG "Tests to be built: ${ALL_TESTNAMES}")
2220

2321
include(Catch)
2422

tests/module.test.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
#include <catch2/catch_all.hpp>
55

66
// for g++-15 the order is important -- import after includes
7+
#ifdef HAS_STDLIB_MODULES
8+
import std;
9+
#endif
710
import beman.scope;
811

912
struct DummyResource {
@@ -33,5 +36,4 @@ TEST_CASE("module-test", "[scope_module_test]") {
3336
REQUIRE(success_ran == true);
3437
REQUIRE(fail_ran == false);
3538
REQUIRE(cleaned == true);
36-
3739
}

0 commit comments

Comments
 (0)