CompileFeatures Test: make sure the target "CompileFeatures" is always defined

Everything in there guards against unsupported compilers already, so no need to
skip the whole file if no features are defined. This in turn allows to have a
simpler fallback in case there is no C++ auto_type feature available.
This commit is contained in:
Rolf Eike Beer 2017-01-30 19:17:19 +01:00
parent 98e6d1e5e4
commit 1679fecb74

View File

@ -3,14 +3,6 @@ cmake_minimum_required(VERSION 3.1)
project(CompileFeatures)
if (NOT CMAKE_C_COMPILE_FEATURES AND NOT CMAKE_CXX_COMPILE_FEATURES)
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp"
"int main(int,char**) { return 0; }\n"
)
add_executable(CompileFeatures "${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp")
return()
endif()
macro(run_test feature lang)
if (";${CMAKE_${lang}_COMPILE_FEATURES};" MATCHES ${feature})
add_library(test_${feature} OBJECT ${feature})
@ -277,8 +269,14 @@ if (CMAKE_CXX_COMPILE_FEATURES)
endif()
endif ()
# these tests only work if at least cxx_auto_type is available
if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_auto_type;")
# always add a target "CompileFeatures"
if (NOT ";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_auto_type;")
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp"
"int main(int,char**) { return 0; }\n"
)
add_executable(CompileFeatures "${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp")
else()
# these tests only work if at least cxx_auto_type is available
add_executable(CompileFeatures main.cpp)
set_property(TARGET CompileFeatures
PROPERTY COMPILE_FEATURES "cxx_auto_type"