mirror of
https://github.com/reactos/CMake.git
synced 2025-02-26 23:15:28 +00:00
Clang: Do not add '-std=' options when simulating MSVC
The `cl.exe` style command line does not accept the `-std=` options. Instead behave like MSVC where we don't define standard levels. Fixes: #16266
This commit is contained in:
parent
1363a0cbce
commit
c67bb5bae3
@ -7,6 +7,7 @@ if(WIN32 OR (APPLE AND NOT appleClangPolicy STREQUAL NEW))
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
|
||||
if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
|
||||
|
||||
@ -15,6 +16,21 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
|
||||
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
else()
|
||||
# clang-cl doesn't have any of these
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
|
||||
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
|
||||
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
__compiler_check_default_language_standard(C 3.4 99 3.6 11)
|
||||
else()
|
||||
set(CMAKE_C_STANDARD_DEFAULT "")
|
||||
endif()
|
||||
|
@ -10,6 +10,7 @@ if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
|
||||
@ -35,5 +36,20 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
|
||||
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
|
||||
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
|
||||
endif()
|
||||
else()
|
||||
# clang-cl does not know these options because it behaves like cl.exe
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "")
|
||||
endif()
|
||||
|
||||
if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
__compiler_check_default_language_standard(CXX 2.1 98)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD_DEFAULT "")
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user