You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
enable_language(CXX)
|
|
|
|
|
|
|
|
if (NOT ";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";gnu_cxx_typeof;"
|
|
|
|
AND NOT ";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";msvc_cxx_sealed;" )
|
|
|
|
# Simulate passing the test.
|
|
|
|
message(SEND_ERROR
|
|
|
|
"The compiler feature \"gnu_cxx_dummy\" is not known to CXX compiler\n\"GNU\"\nversion 4.8.1."
|
|
|
|
)
|
|
|
|
return()
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";gnu_cxx_typeof;")
|
|
|
|
set(feature msvc_cxx_sealed)
|
|
|
|
if (";${CMAKE_CXX_COMPILE_FEATURES};" MATCHES ";msvc_cxx_sealed;")
|
|
|
|
# If a compiler supports both extensions, remove one of them.
|
|
|
|
list(REMOVE_ITEM CMAKE_CXX_COMPILE_FEATURES msvc_cxx_sealed)
|
|
|
|
endif()
|
|
|
|
else()
|
|
|
|
set(feature gnu_cxx_typeof)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
add_executable(main empty.cpp)
|
|
|
|
|
|
|
|
target_compile_features(main
|
|
|
|
PRIVATE
|
|
|
|
${feature}
|
|
|
|
)
|