summaryrefslogtreecommitdiff
path: root/Modules/CMakeCompilerIdDetection.cmake
diff options
context:
space:
mode:
authorPhilippe Canal <pcanal@fnal.gov>2021-06-17 17:59:45 -0500
committerBrad King <brad.king@kitware.com>2021-06-18 09:41:08 -0400
commitc8eb35773806174480070c17785e6c8dd5dc1e4c (patch)
treecbf073981721470c19d0546ee1d326f9a9da62ac /Modules/CMakeCompilerIdDetection.cmake
parentd64d2d12c39f54f953fa946cf01fedf33ee2db70 (diff)
downloadcmake-c8eb35773806174480070c17785e6c8dd5dc1e4c.tar.gz
CompilerId: Tolerate variables named for languages
If a project or user sets a variable or cache entry named `C`, `CXX`, `CUDA`, `Fortran`, `CSharp`, or `ISPC`, 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. This extends a similar fix in commit bd16a985fc (CompilerId/Features: Tolerate variables named for languages, 2021-04-28) in more places. In particular, ensure that we consider the proper list of compiler ids. Issue: #22125
Diffstat (limited to 'Modules/CMakeCompilerIdDetection.cmake')
-rw-r--r--Modules/CMakeCompilerIdDetection.cmake12
1 files changed, 6 insertions, 6 deletions
diff --git a/Modules/CMakeCompilerIdDetection.cmake b/Modules/CMakeCompilerIdDetection.cmake
index 21977900c3..dd70d828f5 100644
--- a/Modules/CMakeCompilerIdDetection.cmake
+++ b/Modules/CMakeCompilerIdDetection.cmake
@@ -13,8 +13,8 @@ endfunction()
function(compiler_id_detection outvar lang)
- if (NOT lang STREQUAL Fortran AND NOT lang STREQUAL CSharp
- AND NOT lang STREQUAL ISPC)
+ if (NOT "x${lang}" STREQUAL "xFortran" AND NOT "x${lang}" STREQUAL "xCSharp"
+ AND NOT "x${lang}" STREQUAL "xISPC")
file(GLOB lang_files
"${CMAKE_ROOT}/Modules/Compiler/*-DetermineCompiler.cmake")
set(nonlang CXX)
@@ -42,7 +42,7 @@ function(compiler_id_detection outvar lang)
# Order is relevant here. For example, compilers which pretend to be
# GCC must appear before the actual GCC.
- if (lang STREQUAL CXX)
+ if ("x${lang}" STREQUAL "xCXX")
list(APPEND ordered_compilers
Comeau
)
@@ -70,7 +70,7 @@ function(compiler_id_detection outvar lang)
Fujitsu
GHS
)
- if (lang STREQUAL C)
+ if ("x${lang}" STREQUAL "xC")
list(APPEND ordered_compilers
TinyCC
Bruce
@@ -92,13 +92,13 @@ function(compiler_id_detection outvar lang)
ADSP
IAR
)
- if (lang STREQUAL C)
+ if ("x${lang}" STREQUAL "xC")
list(APPEND ordered_compilers
SDCC
)
endif()
- if(lang STREQUAL CUDA)
+ if("x${lang}" STREQUAL "xCUDA")
set(ordered_compilers NVIDIA Clang)
endif()