summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CXXModules/Inspect.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/RunCMake/CXXModules/Inspect.cmake')
-rw-r--r--Tests/RunCMake/CXXModules/Inspect.cmake17
1 files changed, 17 insertions, 0 deletions
diff --git a/Tests/RunCMake/CXXModules/Inspect.cmake b/Tests/RunCMake/CXXModules/Inspect.cmake
index 612b01b..e648e8c 100644
--- a/Tests/RunCMake/CXXModules/Inspect.cmake
+++ b/Tests/RunCMake/CXXModules/Inspect.cmake
@@ -15,11 +15,28 @@ if (CMAKE_CXX_FLAGS MATCHES "-std=")
set(forced_cxx_standard 1)
endif ()
+macro (cxx_check_import_std version)
+ set(have_cxx${version}_import_std 0)
+ if ("${version}" IN_LIST CMAKE_CXX_COMPILER_IMPORT_STD)
+ set(have_cxx${version}_import_std 1)
+ endif ()
+
+ if (TARGET "__CMAKE:CXX${version}" AND NOT have_cxx${version}_import_std)
+ message(FATAL_ERROR
+ "The toolchain's C++${version} target exists, but the user variable does "
+ "not indicate it.")
+ endif ()
+endmacro ()
+
+cxx_check_import_std(23)
+cxx_check_import_std(26)
+
# Forward information about the C++ compile features.
string(APPEND info "\
set(CMAKE_CXX_COMPILE_FEATURES \"${CMAKE_CXX_COMPILE_FEATURES}\")
set(CMAKE_MAKE_PROGRAM \"${CMAKE_MAKE_PROGRAM}\")
set(forced_cxx_standard \"${forced_cxx_standard}\")
+set(have_cxx23_import_std \"${have_cxx23_import_std}\")
set(CMAKE_CXX_COMPILER_VERSION \"${CMAKE_CXX_COMPILER_VERSION}\")
set(CMAKE_CXX_OUTPUT_EXTENSION \"${CMAKE_CXX_OUTPUT_EXTENSION}\")
set(CXXModules_default_build_type \"${CMAKE_BUILD_TYPE}\")