RunCMakeTest.cmake 1.7 KB

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