Features: Quote all compiler names when comparing with COMPILER_ID
In preparation of adding MSVC support we need to quote all compiler names, as MSVC is also a CMake variable.
This commit is contained in:
parent
07d1f6fca1
commit
a15675efc3
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.0)
|
cmake_minimum_required(VERSION 3.1)
|
||||||
|
|
||||||
project(CompileFeatures)
|
project(CompileFeatures)
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ foreach(feature ${cxx_features})
|
||||||
run_test(${feature} CXX)
|
run_test(${feature} CXX)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
|
||||||
AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
|
AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
|
||||||
# The cxx_alignof feature happens to work (for *this* testcase) with
|
# The cxx_alignof feature happens to work (for *this* testcase) with
|
||||||
# GNU 4.7, but it is first documented as available with GNU 4.8.
|
# GNU 4.7, but it is first documented as available with GNU 4.8.
|
||||||
|
@ -39,7 +39,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
|
||||||
cxx_alignof
|
cxx_alignof
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
|
||||||
AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
|
AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.9)
|
||||||
# GNU prior to 4.9 does not set any preprocessor define to distinguish
|
# GNU prior to 4.9 does not set any preprocessor define to distinguish
|
||||||
# c++1y from c++11, so CMake does not support c++1y features before GNU 4.9.
|
# c++1y from c++11, so CMake does not support c++1y features before GNU 4.9.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
cmake_minimum_required(VERSION 3.0.0)
|
cmake_minimum_required(VERSION 3.1.0)
|
||||||
project(WriteCompilerDetectionHeader)
|
project(WriteCompilerDetectionHeader)
|
||||||
|
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
@ -56,17 +56,17 @@ macro(set_defines target true_defs false_defs)
|
||||||
)
|
)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
|
||||||
OR CMAKE_CXX_COMPILER_ID STREQUAL Clang
|
OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
|
||||||
OR CMAKE_CXX_COMPILER_ID STREQUAL AppleClang)
|
OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||||
# False for C++98 mode.
|
# False for C++98 mode.
|
||||||
list(APPEND false_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS)
|
list(APPEND false_defs EXPECTED_COMPILER_CXX_DELEGATING_CONSTRUCTORS)
|
||||||
list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES)
|
list(APPEND false_defs EXPECTED_COMPILER_CXX_VARIADIC_TEMPLATES)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_C_COMPILER_ID STREQUAL GNU
|
if (CMAKE_C_COMPILER_ID STREQUAL "GNU"
|
||||||
OR CMAKE_C_COMPILER_ID STREQUAL Clang
|
OR CMAKE_C_COMPILER_ID STREQUAL "Clang"
|
||||||
OR CMAKE_C_COMPILER_ID STREQUAL AppleClang)
|
OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
|
||||||
add_executable(C_undefined c_undefined.c)
|
add_executable(C_undefined c_undefined.c)
|
||||||
set_property(TARGET C_undefined PROPERTY CXX_STANDARD 90)
|
set_property(TARGET C_undefined PROPERTY CXX_STANDARD 90)
|
||||||
target_compile_options(C_undefined PRIVATE -Werror=undef)
|
target_compile_options(C_undefined PRIVATE -Werror=undef)
|
||||||
|
|
Loading…
Reference in New Issue