summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-10-11 14:30:11 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-10-11 14:31:05 (GMT)
commit581a03a1386dbfc74e596a25207fbf32fbc034ec (patch)
treec4ebc0c2f179a131dcafeeb6351033e92b5fa8f8 /Tests
parent8783a3ec78d08c1726e9c609ccfea89491410575 (diff)
parentfd81024e804b9b874cfe86e3781680db22f8c552 (diff)
downloadCMake-581a03a1386dbfc74e596a25207fbf32fbc034ec.zip
CMake-581a03a1386dbfc74e596a25207fbf32fbc034ec.tar.gz
CMake-581a03a1386dbfc74e596a25207fbf32fbc034ec.tar.bz2
Merge topic 'cxxmodules-try_compile' into release-3.28
fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !8865
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/CXXModules/NoScanningVariable.cmake21
-rw-r--r--Tests/RunCMake/CXXModules/RunCMakeTest.cmake1
-rw-r--r--Tests/RunCMake/CXXModules/main-no-use.cxx4
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;
+}