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) 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) macro(run_test feature lang)
if (";${CMAKE_${lang}_COMPILE_FEATURES};" MATCHES ${feature}) if (";${CMAKE_${lang}_COMPILE_FEATURES};" MATCHES ${feature})
add_library(test_${feature} OBJECT ${feature}) add_library(test_${feature} OBJECT ${feature})
@@ -277,8 +269,14 @@ if (CMAKE_CXX_COMPILE_FEATURES)
endif() endif()
endif () endif ()
# these tests only work if at least cxx_auto_type is available # always add a target "CompileFeatures"
if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";cxx_auto_type;") 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) add_executable(CompileFeatures main.cpp)
set_property(TARGET CompileFeatures set_property(TARGET CompileFeatures
PROPERTY COMPILE_FEATURES "cxx_auto_type" PROPERTY COMPILE_FEATURES "cxx_auto_type"