Skip to content
Snippets Groups Projects
Commit 1c227583 authored by Brad King's avatar Brad King
Browse files

Tests: Fix RunCMake.try_compile C/CXX standards with IntelLLVM MSVC mode

Since commit 5115dd1e (IntelLLVM: Fix C/C++ standard level flags on
Windows, 2021-07-07, v3.21.0-rc3~7^2^2) we activate C/C++ standard level
logic for IntelLLVM when targeting the MSVC ABI.  Update the
`RunCMake.try_compile` test to be aware of this even when CMake is
itself configured by an older CMake that does not know this.
parent 1c14691a
No related branches found
No related tags found
No related merge requests found
......@@ -420,6 +420,19 @@ function(add_RunCMake_test_try_compile)
set(CMAKE_C_STANDARD_DEFAULT "")
endif()
endif()
if(CMAKE_VERSION VERSION_LESS 3.20.6 AND "x${CMAKE_C_COMPILER_ID}" STREQUAL "xIntelLLVM" AND "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
# Older CMake versions accidentally set the default standards to empty when
# IntelLLVM targets the MSVC ABI, thus not activating standard selection.
# Approximate the logic from IntelLLVM-{C,CXX}.cmake.
if(DEFINED CMAKE_C_STANDARD_DEFAULT AND "${CMAKE_C_STANDARD_DEFAULT}" STREQUAL "")
# FIXME: The compiler actually defaults to C17, but
# CMake does not yet model or detect that standard.
set(CMAKE_C_STANDARD_DEFAULT 11)
endif()
if(DEFINED CMAKE_CXX_STANDARD_DEFAULT AND "${CMAKE_CXX_STANDARD_DEFAULT}" STREQUAL "")
set(CMAKE_CXX_STANDARD_DEFAULT 14)
endif()
endif()
foreach(var
CMAKE_SYSTEM_NAME
CMAKE_C_COMPILER_ID
......
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