RunCMakeTest.cmake 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. include(RunCMake)
  2. run_cmake(BadFoundVar)
  3. run_cmake(BeforeProject-Error)
  4. run_cmake(BeforeProject-Missing)
  5. run_cmake(NameMismatch)
  6. # The pseudo module will "find" a package with the given version. Check if the
  7. # version selection code in FPHSA works correctly.
  8. # Find a package with version 0.
  9. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudo_VERSION=0")
  10. run_cmake(any_version_find_0)
  11. # Find a package with more customary version number, without requesting a specific version and in
  12. # the presence of a cache variable VERSION.
  13. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudoNoVersionVar_VERSION=1.2.3.4_SHOULD_BE_IGNORED" "-DVERSION=BAD_VERSION")
  14. run_cmake(any_version_VERSION_cache_variable)
  15. # Find a package with a more customary version number, without requesting a specific version.
  16. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudo_VERSION=1.2.3.4")
  17. run_cmake(any_version)
  18. # test EXACT mode with every subcomponent
  19. run_cmake(exact_1)
  20. run_cmake(exact_1.2)
  21. run_cmake(exact_1.2.3)
  22. run_cmake(exact_1.2.3.4)
  23. # now test every component with an invalid version
  24. set(RunCMake_DEFAULT_stderr ".")
  25. run_cmake(exact_0)
  26. run_cmake(exact_2)
  27. run_cmake(exact_1.1)
  28. run_cmake(exact_1.3)
  29. run_cmake(exact_1.2.2)
  30. run_cmake(exact_1.2.4)
  31. run_cmake(exact_1.2.3.3)
  32. run_cmake(exact_1.2.3.5)
  33. unset(RunCMake_DEFAULT_stderr)
  34. # check if searching for a version 0 works
  35. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudo_VERSION=0")
  36. run_cmake(exact_0_matching)
  37. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudo_VERSION=")
  38. run_cmake(empty_version)
  39. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}")
  40. run_cmake(exact_1_no_version_var)
  41. # check custom error message
  42. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DCustomMessage_VERSION=1.2.3.4")
  43. run_cmake(custom_message_1)
  44. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DCONFIG_MODE=TRUE")
  45. run_cmake(custom_message_2)
  46. run_cmake(custom_message_3)
  47. # check handling of components
  48. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DUseComponents_VERSION=1.2.3.4")
  49. run_cmake(required_components)
  50. run_cmake(required_and_optional_components)
  51. run_cmake(all_optional_components)
  52. list(APPEND RunCMake_TEST_OPTIONS "-DUseComponents_REQUIRE_VARS=TRUE")
  53. run_cmake(required_components_with_vars)
  54. # check handling of version range
  55. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudo_VERSION=2.3.4.5")
  56. run_cmake(range_ignored)
  57. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" "-DPseudoRange_VERSION=2.0")
  58. run_cmake(range_no-range)
  59. run_cmake(range_1-3)
  60. run_cmake(range_1-2-include)
  61. run_cmake(range_1-2-exclude)
  62. run_cmake(range_3-4)