1 2enable_language(CXX) 3 4function(check_language_feature_flags lang level) 5 if(CMAKE_${lang}${level}_STANDARD_COMPILE_OPTION) 6 #this property is an internal implementation detail of CMake 7 get_property(known_features GLOBAL PROPERTY CMAKE_${lang}${level}_KNOWN_FEATURES) 8 list(LENGTH known_features len) 9 if(len LESS 1) 10 message(FATAL_ERROR "unable to find known features of ${lang}${level}") 11 endif() 12 13 string(TOLOWER ${lang} lang_lower) 14 set(known_name ${lang_lower}${level}_known_features) 15 set(meta_name ${lang_lower}${level}_meta_feature) 16 17 add_library(${known_name} STATIC a.cxx) 18 target_compile_features(${known_name} PUBLIC ${known_features}) 19 add_library(${meta_name} STATIC a.cxx) 20 target_compile_features(${meta_name} PUBLIC ${lang_lower}_std_${level}) 21 endif() 22endfunction() 23 24 25check_language_feature_flags(CXX 98) 26check_language_feature_flags(CXX 11) 27check_language_feature_flags(CXX 14) 28