summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CXXModules/ImplicitCXX20.cmake
blob: 64d69f3a695e995ee7261c7548f44d9d79430168 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Enable scanning by default for targets that explicitly use C++ 20.
cmake_policy(SET CMP0155 NEW)

# Block making C++ `import std` targets.
add_library(__CMAKE::CXX23 IMPORTED INTERFACE)

# Force CMAKE_CXX_STANDARD_DEFAULT to be C++ 20.
set(ENV{CXXFLAGS} "$ENV{CXXFLAGS} ${CMAKE_CXX20_STANDARD_COMPILE_OPTION}")
enable_language(CXX)

# Hide any real scanning rule that may be available.
unset(CMAKE_CXX_SCANDEP_SOURCE)

# Create a target that does not explicitly use C++ 20 to verify it works
# without any scanning rule available.
add_executable(cmp0155-new sources/module-use.cxx)