summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2024-04-10 13:12:24 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2024-04-12 15:46:39 (GMT)
commit15bbd1d9b890645f3786f1b24d0d7651cbc2e807 (patch)
tree20aca1382019ac51f81c2a499b12bcf1ead89998 /Tests
parentf80c60df02854b9443a0f73770d2ef7a1bcd72d5 (diff)
downloadCMake-15bbd1d9b890645f3786f1b24d0d7651cbc2e807.zip
CMake-15bbd1d9b890645f3786f1b24d0d7651cbc2e807.tar.gz
CMake-15bbd1d9b890645f3786f1b24d0d7651cbc2e807.tar.bz2
Experimental: add an experimental feature gate for `import std`
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-no-std-property-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-no-std-property/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-build-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-install-stderr.txt8
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std-transitive/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/CXXModules/examples/import-std/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set-stderr.txt6
-rw-r--r--Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set.cmake11
-rw-r--r--Tests/RunCMake/cmake_language/Experimental/CxxImportStd-unset.cmake8
-rw-r--r--Tests/RunCMake/cmake_language/RunCMakeTest.cmake2
19 files changed, 112 insertions, 0 deletions
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build/CMakeLists.txt
index 0a4c41d..89350ef 100644
--- a/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-build/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
cmake_minimum_required(VERSION 3.29)
project(cxx_modules_import_std_export_no_std CXX)
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install/CMakeLists.txt
index 69edbb5..62d9d91 100644
--- a/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/import-std-export-no-std-install/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
cmake_minimum_required(VERSION 3.29)
project(cxx_modules_import_std_export_no_std CXX)
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-no-std-property-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-no-std-property-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-no-std-property-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-no-std-property/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/import-std-no-std-property/CMakeLists.txt
index 4ec4e36..a605e95 100644
--- a/Tests/RunCMake/CXXModules/examples/import-std-no-std-property/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/import-std-no-std-property/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
cmake_minimum_required(VERSION 3.29)
project(cxx_modules_import_std_no_std_property CXX)
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build/CMakeLists.txt
index b7ab279..3112002 100644
--- a/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-build/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
cmake_minimum_required(VERSION 3.29)
project(cxx_modules_import_std_not_in_export CXX)
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install/CMakeLists.txt
index 8b9295d..788ea84 100644
--- a/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/import-std-not-in-export-install/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
cmake_minimum_required(VERSION 3.29)
project(cxx_modules_import_std_not_in_export CXX)
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-build-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-build-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-build-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-install-stderr.txt b/Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-install-stderr.txt
new file mode 100644
index 0000000..3589448
--- /dev/null
+++ b/Tests/RunCMake/CXXModules/examples/import-std-transitive-not-in-export-install-stderr.txt
@@ -0,0 +1,8 @@
+CMake Warning \(dev\) at .*/Modules/Compiler/CMakeCommonCompilerMacros.cmake:[0-9]* \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ .*/Modules/CMakeDetermineCompilerSupport.cmake:[0-9]* \(cmake_create_cxx_import_std\)
+ .*/Modules/CMakeTestCXXCompiler.cmake:[0-9]* \(CMAKE_DETERMINE_COMPILER_SUPPORT\)
+ CMakeLists.txt:[0-9]* \(project\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/CXXModules/examples/import-std-transitive/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/import-std-transitive/CMakeLists.txt
index 526298c..2894d67 100644
--- a/Tests/RunCMake/CXXModules/examples/import-std-transitive/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/import-std-transitive/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
cmake_minimum_required(VERSION 3.29)
if (EXPORT_NO_STD)
diff --git a/Tests/RunCMake/CXXModules/examples/import-std/CMakeLists.txt b/Tests/RunCMake/CXXModules/examples/import-std/CMakeLists.txt
index 4e894c7..bffcd66 100644
--- a/Tests/RunCMake/CXXModules/examples/import-std/CMakeLists.txt
+++ b/Tests/RunCMake/CXXModules/examples/import-std/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
cmake_minimum_required(VERSION 3.29)
project(cxx_modules_import_std CXX)
diff --git a/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set-stderr.txt b/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set-stderr.txt
new file mode 100644
index 0000000..bddd3ab
--- /dev/null
+++ b/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set-stderr.txt
@@ -0,0 +1,6 @@
+CMake Warning \(dev\) at Experimental/CxxImportStd-set.cmake:4 \(cmake_language\):
+ CMake's support for `import std;` in C\+\+23 and newer is experimental. It
+ is meant only for experimentation and feedback to CMake developers.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)
+This warning is for project developers. Use -Wno-dev to suppress it.
diff --git a/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set.cmake b/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set.cmake
new file mode 100644
index 0000000..a002297
--- /dev/null
+++ b/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-set.cmake
@@ -0,0 +1,11 @@
+set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD
+ "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
+
+cmake_language(GET_EXPERIMENTAL_FEATURE_ENABLED
+ "CxxImportStd"
+ feature_present)
+
+if (NOT feature_present STREQUAL "TRUE")
+ message(FATAL_ERROR
+ "Expected the `CxxImportStd` feature to be enabled.")
+endif ()
diff --git a/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-unset.cmake b/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-unset.cmake
new file mode 100644
index 0000000..be758c2
--- /dev/null
+++ b/Tests/RunCMake/cmake_language/Experimental/CxxImportStd-unset.cmake
@@ -0,0 +1,8 @@
+cmake_language(GET_EXPERIMENTAL_FEATURE_ENABLED
+ "CxxImportStd"
+ feature_present)
+
+if (NOT feature_present STREQUAL "FALSE")
+ message(FATAL_ERROR
+ "Expected the `CxxImportStd` feature to be disabled.")
+endif ()
diff --git a/Tests/RunCMake/cmake_language/RunCMakeTest.cmake b/Tests/RunCMake/cmake_language/RunCMakeTest.cmake
index 7c47b06..fe3da79 100644
--- a/Tests/RunCMake/cmake_language/RunCMakeTest.cmake
+++ b/Tests/RunCMake/cmake_language/RunCMakeTest.cmake
@@ -157,6 +157,8 @@ run_cmake_command(
-P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
)
+run_cmake(Experimental/CxxImportStd-set)
+run_cmake(Experimental/CxxImportStd-unset)
run_cmake(Experimental/ExportPackageDependencies-set)
run_cmake(Experimental/ExportPackageDependencies-unset)
run_cmake(Experimental/WindowsKernelModeDriver-set)