Test: Parameterize the language in the CompileFeature test.
This commit is contained in:
parent
f5bf9d4311
commit
6a9fdbeb48
@ -34,25 +34,29 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL GNU
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILE_FEATURES)
|
set(CXX_ext cpp)
|
||||||
foreach(feature ${CXX_non_features})
|
set(CXX_standard_flag 11)
|
||||||
message("Testing feature : ${feature}")
|
foreach(lang CXX)
|
||||||
try_compile(${feature}_works
|
if (CMAKE_${lang}_COMPILE_FEATURES)
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/${feature}_test"
|
foreach(feature ${${lang}_non_features})
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/feature_test.cpp"
|
message("Testing feature : ${feature}")
|
||||||
COMPILE_DEFINITIONS "-DTEST=${CMAKE_CURRENT_SOURCE_DIR}/${feature}.cpp"
|
try_compile(${feature}_works
|
||||||
CMAKE_FLAGS "-DCMAKE_CXX_STANDARD=11"
|
"${CMAKE_CURRENT_BINARY_DIR}/${feature}_test"
|
||||||
OUTPUT_VARIABLE OUTPUT
|
"${CMAKE_CURRENT_SOURCE_DIR}/feature_test.${${lang}_ext}"
|
||||||
)
|
COMPILE_DEFINITIONS "-DTEST=${CMAKE_CURRENT_SOURCE_DIR}/${feature}.${${lang}_ext}"
|
||||||
if (${feature}_works)
|
CMAKE_FLAGS "-DCMAKE_${lang}_STANDARD=${${lang}_standard_flag}"
|
||||||
message(SEND_ERROR
|
OUTPUT_VARIABLE OUTPUT
|
||||||
"Feature ${feature} expected not to work for ${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}.
|
)
|
||||||
Update the supported features or blacklist it.\n${OUTPUT}")
|
if (${feature}_works)
|
||||||
else()
|
message(SEND_ERROR
|
||||||
message("Testing feature : ${feature} -- Fails, as expected.")
|
"Feature ${feature} expected not to work for ${lang} ${CMAKE_${lang}_COMPILER_ID}-${CMAKE_${lang}_COMPILER_VERSION}.
|
||||||
endif()
|
Update the supported features or blacklist it.\n${OUTPUT}")
|
||||||
endforeach()
|
else()
|
||||||
endif()
|
message("Testing feature : ${feature} -- Fails, as expected.")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
add_executable(CompileFeatures main.cpp)
|
add_executable(CompileFeatures main.cpp)
|
||||||
set_property(TARGET CompileFeatures
|
set_property(TARGET CompileFeatures
|
||||||
|
Loading…
x
Reference in New Issue
Block a user