Skip to content
Snippets Groups Projects
Commit c8eb3577 authored by Philippe Canal's avatar Philippe Canal Committed by Brad King
Browse files

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 bd16a985 (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
parent d64d2d12
No related branches found
No related tags found
No related merge requests found
......@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment