diff options
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/CXXModules/NoScanningVariable.cmake | 21 | ||||
-rw-r--r-- | Tests/RunCMake/CXXModules/RunCMakeTest.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/CXXModules/main-no-use.cxx | 4 |
3 files changed, 26 insertions, 0 deletions
diff --git a/Tests/RunCMake/CXXModules/NoScanningVariable.cmake b/Tests/RunCMake/CXXModules/NoScanningVariable.cmake new file mode 100644 index 0000000..4bb6a70 --- /dev/null +++ b/Tests/RunCMake/CXXModules/NoScanningVariable.cmake @@ -0,0 +1,21 @@ +# Enable scanning by default for targets that explicitly use C++ 20. +cmake_policy(SET CMP0155 NEW) + +enable_language(CXX) + +# Hide any real scanning rule that may be available. +unset(CMAKE_CXX_SCANDEP_SOURCE) + +# Explicitly enable C++20 for all targets. +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# Explicitly suppress scanning so that support is not required. +set(CMAKE_CXX_SCAN_FOR_MODULES OFF) + +add_executable(noscanning-variable main-no-use.cxx) + +# Verify that CMAKE_CXX_SCAN_FOR_MODULES is propagated into the check. +# FIXME: Unset CMAKE_CXX_SCANDEP_SOURCE inside try_compile so this +# test can verify behavior on newer compilers too. +try_compile(result SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main-no-use.cxx) diff --git a/Tests/RunCMake/CXXModules/RunCMakeTest.cmake b/Tests/RunCMake/CXXModules/RunCMakeTest.cmake index 05d2655..e13b2d4 100644 --- a/Tests/RunCMake/CXXModules/RunCMakeTest.cmake +++ b/Tests/RunCMake/CXXModules/RunCMakeTest.cmake @@ -20,6 +20,7 @@ if ("cxx_std_20" IN_LIST CMAKE_CXX_COMPILE_FEATURES) run_cmake(NoScanningSourceFileProperty) run_cmake(NoScanningTargetProperty) + run_cmake(NoScanningVariable) run_cmake(CMP0155-OLD) run_cmake(CMP0155-NEW) endif () diff --git a/Tests/RunCMake/CXXModules/main-no-use.cxx b/Tests/RunCMake/CXXModules/main-no-use.cxx new file mode 100644 index 0000000..f8b643a --- /dev/null +++ b/Tests/RunCMake/CXXModules/main-no-use.cxx @@ -0,0 +1,4 @@ +int main() +{ + return 0; +} |