RunCMakeTest.cmake 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. include(RunCMake)
  2. run_cmake(AppendLiteralQuotes)
  3. run_cmake(AppendNoOutput)
  4. run_cmake(AppendNotOutput)
  5. run_cmake(BadArgument)
  6. run_cmake(BadByproduct)
  7. run_cmake(BadOutput)
  8. run_cmake(BadCommand)
  9. run_cmake(ConfigureFile)
  10. run_cmake(GeneratedProperty)
  11. run_cmake(LiteralQuotes)
  12. run_cmake(NoArguments)
  13. run_cmake(NoOutputOrTarget)
  14. run_cmake(OutputAndTarget)
  15. run_cmake(SourceByproducts)
  16. run_cmake(SourceUsesTerminal)
  17. run_cmake(TargetImported)
  18. run_cmake(TargetLiteralQuotes)
  19. run_cmake(TargetNotInDir)
  20. if(RunCMake_GENERATOR MATCHES "Visual Studio")
  21. run_cmake(RemoveEmptyCommands)
  22. endif()
  23. run_cmake(AssigningMultipleTargets)
  24. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/AssigningMultipleTargets-build)
  25. set(RunCMake_TEST_NO_CLEAN 1)
  26. run_cmake_command(AssigningMultipleTargets-build ${CMAKE_COMMAND} --build .)
  27. unset(RunCMake_TEST_BINARY_DIR)
  28. unset(RunCMake_TEST_NO_CLEAN)
  29. if(NOT RunCMake_GENERATOR STREQUAL "Ninja Multi-Config")
  30. run_cmake(WorkingDirectory)
  31. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/WorkingDirectory-build)
  32. set(RunCMake_TEST_NO_CLEAN 1)
  33. if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
  34. set(RunCMake-stdout-file WorkingDirectory-build-multi-config-stdout.txt)
  35. else()
  36. set(RunCMake-stdout-file WorkingDirectory-build-single-config-stdout.txt)
  37. endif()
  38. run_cmake_command(WorkingDirectory-build ${CMAKE_COMMAND} --build . --config Debug)
  39. unset(RunCMake-stdout-file)
  40. unset(RunCMake_TEST_BINARY_DIR)
  41. unset(RunCMake_TEST_NO_CLEAN)
  42. endif()
  43. function(test_genex name)
  44. run_cmake(${name})
  45. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${name}-build")
  46. set(RunCMake_TEST_NO_CLEAN 1)
  47. run_cmake_command(${name}-build ${CMAKE_COMMAND} --build .)
  48. if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/wdir/touched")
  49. message(SEND_ERROR "File not created by target-dependent add_custom_command()!")
  50. endif()
  51. unset(RunCMake_TEST_NO_CLEAN)
  52. unset(RunCMake_TEST_BINARY_DIR)
  53. endfunction()
  54. test_genex(TargetGenexEvent)
  55. if(NOT RunCMake_GENERATOR STREQUAL "Xcode")
  56. block()
  57. run_cmake(CommentGenex)
  58. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CommentGenex-build)
  59. set(RunCMake_TEST_NO_CLEAN 1)
  60. run_cmake_command(CommentGenex-build ${CMAKE_COMMAND} --build .)
  61. endblock()
  62. endif()