summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-04-02 20:36:15 (GMT)
committerBrad King <brad.king@kitware.com>2024-04-05 11:38:58 (GMT)
commit31acc90abe7c5e97784a7c219ff50ac814d0a1fd (patch)
tree5865784752c4499acd3e7ed209fa6acd95bef16f
parentc37e2790145d0b304f2072bee3d5206ecb12eafc (diff)
downloadCMake-31acc90abe7c5e97784a7c219ff50ac814d0a1fd.zip
CMake-31acc90abe7c5e97784a7c219ff50ac814d0a1fd.tar.gz
CMake-31acc90abe7c5e97784a7c219ff50ac814d0a1fd.tar.bz2
ci: Record expected C and CXX language standard support
Explicitly enable standard levels in the `CompileFeatures` test that are expected to work in each job regardless of whether compiler inspection detects support.
-rw-r--r--.gitlab/ci/configure_debian12_aarch64_ninja.cmake3
-rw-r--r--.gitlab/ci/configure_debian12_makefiles_clang.cmake3
-rw-r--r--.gitlab/ci/configure_debian12_ninja_common.cmake3
-rw-r--r--.gitlab/ci/configure_fedora39_makefiles.cmake3
-rw-r--r--.gitlab/ci/configure_macos_arm64_ninja.cmake4
-rw-r--r--.gitlab/ci/configure_macos_x86_64_ninja.cmake3
-rw-r--r--.gitlab/ci/configure_windows_clang_common.cmake9
-rw-r--r--.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake3
-rw-r--r--Tests/CMakeLists.txt8
-rw-r--r--Tests/CompileFeatures/CMakeLists.txt3
10 files changed, 41 insertions, 1 deletions
diff --git a/.gitlab/ci/configure_debian12_aarch64_ninja.cmake b/.gitlab/ci/configure_debian12_aarch64_ninja.cmake
index cdfd461..0e2c991 100644
--- a/.gitlab/ci/configure_debian12_aarch64_ninja.cmake
+++ b/.gitlab/ci/configure_debian12_aarch64_ninja.cmake
@@ -1,3 +1,6 @@
+set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
+set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+
set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "")
set(CMake_TEST_CTestUpdate_CVS "ON" CACHE BOOL "")
set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_debian12_makefiles_clang.cmake b/.gitlab/ci/configure_debian12_makefiles_clang.cmake
index 69f1e7c..7cba6f3 100644
--- a/.gitlab/ci/configure_debian12_makefiles_clang.cmake
+++ b/.gitlab/ci/configure_debian12_makefiles_clang.cmake
@@ -1,3 +1,6 @@
+set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
+set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+
if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
set(CMake_TEST_TICLANG_TOOLCHAINS "$ENV{CI_PROJECT_DIR}/.gitlab/ticlang" CACHE PATH "")
endif()
diff --git a/.gitlab/ci/configure_debian12_ninja_common.cmake b/.gitlab/ci/configure_debian12_ninja_common.cmake
index 8cebd01..af260ee 100644
--- a/.gitlab/ci/configure_debian12_ninja_common.cmake
+++ b/.gitlab/ci/configure_debian12_ninja_common.cmake
@@ -1,3 +1,6 @@
+set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
+set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+
set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "")
set(CMake_TEST_CTestUpdate_CVS "ON" CACHE BOOL "")
set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_fedora39_makefiles.cmake b/.gitlab/ci/configure_fedora39_makefiles.cmake
index 9cee918..39fe642 100644
--- a/.gitlab/ci/configure_fedora39_makefiles.cmake
+++ b/.gitlab/ci/configure_fedora39_makefiles.cmake
@@ -1,3 +1,6 @@
+set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
+set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+
set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "")
set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "")
set(CMake_TEST_CTestUpdate_HG "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_macos_arm64_ninja.cmake b/.gitlab/ci/configure_macos_arm64_ninja.cmake
index a0a309e..672f5d4 100644
--- a/.gitlab/ci/configure_macos_arm64_ninja.cmake
+++ b/.gitlab/ci/configure_macos_arm64_ninja.cmake
@@ -1,3 +1,6 @@
+set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
+set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+
set(CMake_TEST_FindOpenAL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
@@ -5,5 +8,6 @@ set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
set(CMake_TEST_GUI "ON" CACHE BOOL "")
set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "")
set(CMake_TEST_TLS_VERSION "1.3" CACHE STRING "")
+
include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/ci/configure_macos_x86_64_ninja.cmake b/.gitlab/ci/configure_macos_x86_64_ninja.cmake
index f0bf1c0..8fdaba8 100644
--- a/.gitlab/ci/configure_macos_x86_64_ninja.cmake
+++ b/.gitlab/ci/configure_macos_x86_64_ninja.cmake
@@ -1,3 +1,6 @@
+set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
+set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+
set(CMake_TEST_FindOpenAL "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_windows_clang_common.cmake b/.gitlab/ci/configure_windows_clang_common.cmake
index 3d93aae..8bef0d9 100644
--- a/.gitlab/ci/configure_windows_clang_common.cmake
+++ b/.gitlab/ci/configure_windows_clang_common.cmake
@@ -1,3 +1,12 @@
+if("$ENV{CMAKE_CI_BUILD_NAME}" MATCHES "(^|_)gnu(_|$)")
+ set(CMake_TEST_C_STANDARDS "90;99;11;17;23" CACHE STRING "")
+ set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+else()
+ # FIXME: Implement C23 and C++23 support for clang-cl.
+ set(CMake_TEST_C_STANDARDS "90;99;11;17" CACHE STRING "")
+ set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20" CACHE STRING "")
+endif()
+
set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake
index 7321e10..e449d80 100644
--- a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake
+++ b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake
@@ -1,3 +1,6 @@
+set(CMake_TEST_C_STANDARDS "90;99;11;17" CACHE STRING "")
+set(CMake_TEST_CXX_STANDARDS "98;11;14;17;20;23" CACHE STRING "")
+
if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
set(CMake_TEST_CPACK_INNOSETUP "ON" CACHE STRING "")
set(CMake_TEST_ISPC "ON" CACHE STRING "")
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 96beecc..bcf9254 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -392,7 +392,15 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(TryCompile TryCompile)
ADD_TEST_MACRO(SystemInformation SystemInformation)
ADD_TEST_MACRO(MathTest MathTest)
+
+ string(REPLACE ";" "$<SEMICOLON>" TEST_STDS_C "${CMake_TEST_C_STANDARDS}")
+ string(REPLACE ";" "$<SEMICOLON>" TEST_STDS_CXX "${CMake_TEST_CXX_STANDARDS}")
+ set(CompileFeatures_BUILD_OPTIONS
+ -DCMake_TEST_C_STANDARDS=${TEST_STDS_C}
+ -DCMake_TEST_CXX_STANDARDS=${TEST_STDS_CXX}
+ )
ADD_TEST_MACRO(CompileFeatures CompileFeatures)
+
ADD_TEST_MACRO(CMakeCommands.target_compile_features)
if(CMake_TEST_RESOURCES)
diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt
index 844c33e..a33fad3 100644
--- a/Tests/CompileFeatures/CMakeLists.txt
+++ b/Tests/CompileFeatures/CMakeLists.txt
@@ -12,7 +12,8 @@ set(std_CXX 98 11 14 17 20 23)
foreach(lang C CXX)
foreach(std IN LISTS std_${lang})
string(TOLOWER "${lang}_std_${std}" feature)
- if(CMAKE_${lang}${std}_STANDARD_COMPILE_OPTION)
+ if("${std}" IN_LIST CMake_TEST_${lang}_STANDARDS
+ OR CMAKE_${lang}${std}_STANDARD_COMPILE_OPTION)
add_library(test_${feature} OBJECT ${feature}.${ext_${lang}})
target_compile_features(test_${feature} PRIVATE ${feature})
endif()