generate_feature_list.cmake 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. enable_language(C)
  2. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/c_features.txt"
  3. "${CMAKE_C_COMPILE_FEATURES}"
  4. )
  5. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx_features.txt"
  6. "${CMAKE_CXX_COMPILE_FEATURES}"
  7. )
  8. if(DEFINED CMAKE_C_STANDARD_DEFAULT)
  9. set(c_standard_default_code "set(C_STANDARD_DEFAULT \"${CMAKE_C_STANDARD_DEFAULT}\")\n")
  10. else()
  11. set(c_standard_default_code "unset(C_STANDARD_DEFAULT)\n")
  12. endif()
  13. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/c_standard_default.cmake" "${c_standard_default_code}")
  14. if(DEFINED CMAKE_CXX_STANDARD_DEFAULT)
  15. set(cxx_standard_default_code "set(CXX_STANDARD_DEFAULT \"${CMAKE_CXX_STANDARD_DEFAULT}\")\n")
  16. else()
  17. set(cxx_standard_default_code "unset(CXX_STANDARD_DEFAULT)\n")
  18. endif()
  19. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx_standard_default.cmake" "${cxx_standard_default_code}")
  20. foreach(standard 98 11)
  21. set(CXX${standard}_FLAG NOTFOUND)
  22. if (DEFINED CMAKE_CXX${standard}_STANDARD_COMPILE_OPTION)
  23. set(CXX${standard}_FLAG ${CMAKE_CXX${standard}_STANDARD_COMPILE_OPTION})
  24. endif()
  25. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx${standard}_flag.txt"
  26. "${CXX${standard}_FLAG}"
  27. )
  28. set(CXX${standard}EXT_FLAG NOTFOUND)
  29. if (DEFINED CMAKE_CXX${standard}_EXTENSION_COMPILE_OPTION)
  30. set(CXX${standard}EXT_FLAG ${CMAKE_CXX${standard}_EXTENSION_COMPILE_OPTION})
  31. endif()
  32. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx${standard}ext_flag.txt"
  33. "${CXX${standard}EXT_FLAG}"
  34. )
  35. endforeach()