mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-01 11:22:21 -06:00
DetermineCompiler: Restore identification of MSVC with no INCLUDE dirs
Since commit bd844387df (ROCMClang: Add the ROCm toolkit derived clang
compiler to CMake, 2020-08-28, v3.21.0-rc1~66^2~6), our generated
compiler id source file contains a preprocessor condition of the form
#elif ... && __has_include(...)
When MSVC is invoked with no include directories in the `INCLUDE`
environment variable or in `-I` flags, its implementation of
`__has_include` errors out immediately. This breaks identification of
the compiler.
Work around the problem by adding a fallback attempt to compile the
identification source using a dummy include directory.
This commit is contained in:
@@ -85,6 +85,10 @@ else()
|
||||
|
||||
# ARMClang need target options
|
||||
"--target=arm-arm-none-eabi -mcpu=cortex-m3"
|
||||
|
||||
# MSVC needs at least one include directory for __has_include to function,
|
||||
# but custom toolchains may run MSVC with no INCLUDE env var and no -I flags.
|
||||
"-I__does_not_exist__"
|
||||
)
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_TARGET)
|
||||
|
||||
@@ -80,6 +80,10 @@ else()
|
||||
|
||||
# ARMClang need target options
|
||||
"--target=arm-arm-none-eabi -mcpu=cortex-m3"
|
||||
|
||||
# MSVC needs at least one include directory for __has_include to function,
|
||||
# but custom toolchains may run MSVC with no INCLUDE env var and no -I flags.
|
||||
"-I__does_not_exist__"
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user