diff options
author | Brad King <brad.king@kitware.com> | 2021-04-28 18:37:51 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-05-03 14:22:23 (GMT) |
commit | bd16a985fcc26a2138e20ed11c248cd716eb5497 (patch) | |
tree | dc80e9edd83ec8a0f70f6568e4f5990958d84956 /Tests/RunCMake/ToolchainFile | |
parent | 49c6d0f26199c252b493ed5f816dbcb2e9701112 (diff) | |
download | CMake-bd16a985fcc26a2138e20ed11c248cd716eb5497.zip CMake-bd16a985fcc26a2138e20ed11c248cd716eb5497.tar.gz CMake-bd16a985fcc26a2138e20ed11c248cd716eb5497.tar.bz2 |
CompilerId/Features: Tolerate variables named for languages
If a `CMakeLists.txt` or `CMAKE_TOOLCHAIN_FILE` sets a variable named
`C`, `CXX`, or `CUDA`, we were previously comparing each enabled
language name to the value of that variable, rather than the name
itself. Double-quote the string to take advantage of policy `CMP0054`,
but also add "x" prefixes to support projects that do not set the
policy.
Fixes: #22125
Diffstat (limited to 'Tests/RunCMake/ToolchainFile')
-rw-r--r-- | Tests/RunCMake/ToolchainFile/LangVars-toolchain.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/ToolchainFile/LangVars.cmake | 7 | ||||
-rw-r--r-- | Tests/RunCMake/ToolchainFile/RunCMakeTest.cmake | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/Tests/RunCMake/ToolchainFile/LangVars-toolchain.cmake b/Tests/RunCMake/ToolchainFile/LangVars-toolchain.cmake new file mode 100644 index 0000000..be07dc3 --- /dev/null +++ b/Tests/RunCMake/ToolchainFile/LangVars-toolchain.cmake @@ -0,0 +1,2 @@ +set(C 1) +set(CXX 1) diff --git a/Tests/RunCMake/ToolchainFile/LangVars.cmake b/Tests/RunCMake/ToolchainFile/LangVars.cmake new file mode 100644 index 0000000..169e639 --- /dev/null +++ b/Tests/RunCMake/ToolchainFile/LangVars.cmake @@ -0,0 +1,7 @@ +foreach(test_language C CXX) + enable_language(${test_language}) + if(DEFINED CMAKE_${test_language}_STANDARD_DEFAULT + AND NOT CMAKE_${test_language}_COMPILE_FEATURES) + message(FATAL_ERROR "Compile features not found for ${test_language}") + endif() +endforeach() diff --git a/Tests/RunCMake/ToolchainFile/RunCMakeTest.cmake b/Tests/RunCMake/ToolchainFile/RunCMakeTest.cmake index 659523c..304c105 100644 --- a/Tests/RunCMake/ToolchainFile/RunCMakeTest.cmake +++ b/Tests/RunCMake/ToolchainFile/RunCMakeTest.cmake @@ -9,6 +9,7 @@ run_cmake_toolchain(CallEnableLanguage) run_cmake_toolchain(CallProject) run_cmake_toolchain(CheckLanguage) run_cmake_toolchain(FlagsInit) +run_cmake_toolchain(LangVars) run_cmake_toolchain(LinkFlagsInit) function(run_IncludeDirectories) |