RunCMakeTest.cmake 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. cmake_policy(SET CMP0057 NEW)
  2. include(RunCMake)
  3. run_cmake(NotAFeature)
  4. run_cmake(NotAFeatureGenex)
  5. run_cmake(NotAFeatureTransitive)
  6. run_cmake(NotAFeature_OriginDebug)
  7. run_cmake(NotAFeature_OriginDebugGenex)
  8. run_cmake(NotAFeature_OriginDebugTransitive)
  9. run_cmake(NotAFeature_OriginDebugCommand)
  10. run_cmake(generate_feature_list)
  11. file(READ
  12. "${RunCMake_BINARY_DIR}/generate_feature_list-build/c_features.txt"
  13. C_FEATURES
  14. )
  15. file(READ
  16. "${RunCMake_BINARY_DIR}/generate_feature_list-build/cxx_features.txt"
  17. CXX_FEATURES
  18. )
  19. include("${RunCMake_BINARY_DIR}/generate_feature_list-build/c_standard_default.cmake")
  20. include("${RunCMake_BINARY_DIR}/generate_feature_list-build/cxx_standard_default.cmake")
  21. if (NOT C_FEATURES)
  22. run_cmake(NoSupportedCFeatures)
  23. run_cmake(NoSupportedCFeaturesGenex)
  24. endif()
  25. if (NOT CXX_FEATURES)
  26. run_cmake(NoSupportedCxxFeatures)
  27. run_cmake(NoSupportedCxxFeaturesGenex)
  28. elseif (cxx_std_98 IN_LIST CXX_FEATURES AND cxx_std_11 IN_LIST CXX_FEATURES)
  29. if(CXX_STANDARD_DEFAULT EQUAL 98)
  30. run_cmake(LinkImplementationFeatureCycle)
  31. endif()
  32. run_cmake(LinkImplementationFeatureCycleSolved)
  33. if (cxx_final IN_LIST CXX_FEATURES)
  34. set(RunCMake_TEST_OPTIONS "-DHAVE_FINAL=1")
  35. endif()
  36. run_cmake(NonValidTarget1)
  37. run_cmake(NonValidTarget2)
  38. unset(RunCMake_TEST_OPTIONS)
  39. endif()
  40. if(CXX_STANDARD_DEFAULT)
  41. run_cmake(NotAStandard)
  42. foreach(standard 98 11)
  43. file(READ
  44. "${RunCMake_BINARY_DIR}/generate_feature_list-build/cxx${standard}_flag.txt"
  45. CXX${standard}_FLAG
  46. )
  47. if (CXX${standard}_FLAG STREQUAL NOTFOUND)
  48. run_cmake(RequireCXX${standard})
  49. run_cmake(RequireCXX${standard}Variable)
  50. endif()
  51. if (CXX${standard}EXT_FLAG STREQUAL NOTFOUND)
  52. run_cmake(RequireCXX${standard}Ext)
  53. run_cmake(RequireCXX${standard}ExtVariable)
  54. endif()
  55. endforeach()
  56. endif()