RunCMakeTest.cmake 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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(GeneratedProperty)
  10. run_cmake(LiteralQuotes)
  11. run_cmake(NoArguments)
  12. run_cmake(NoOutputOrTarget)
  13. run_cmake(OutputAndTarget)
  14. run_cmake(SourceByproducts)
  15. run_cmake(SourceUsesTerminal)
  16. run_cmake(TargetImported)
  17. run_cmake(TargetLiteralQuotes)
  18. run_cmake(TargetNotInDir)
  19. if(${RunCMake_GENERATOR} MATCHES "Visual Studio ([^89]|[89][0-9])")
  20. run_cmake(RemoveEmptyCommands)
  21. endif()
  22. run_cmake(AssigningMultipleTargets)
  23. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/AssigningMultipleTargets-build)
  24. set(RunCMake_TEST_NO_CLEAN 1)
  25. run_cmake_command(AssigningMultipleTargets-build ${CMAKE_COMMAND} --build .)
  26. unset(RunCMake_TEST_BINARY_DIR)
  27. unset(RunCMake_TEST_NO_CLEAN)
  28. if(NOT RunCMake_GENERATOR STREQUAL "Ninja Multi-Config")
  29. run_cmake(WorkingDirectory)
  30. set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/WorkingDirectory-build)
  31. set(RunCMake_TEST_NO_CLEAN 1)
  32. if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
  33. set(RunCMake-stdout-file WorkingDirectory-build-multi-config-stdout.txt)
  34. else()
  35. set(RunCMake-stdout-file WorkingDirectory-build-single-config-stdout.txt)
  36. endif()
  37. run_cmake_command(WorkingDirectory-build ${CMAKE_COMMAND} --build . --config Debug)
  38. unset(RunCMake-stdout-file)
  39. unset(RunCMake_TEST_BINARY_DIR)
  40. unset(RunCMake_TEST_NO_CLEAN)
  41. endif()
  42. function(test_genex name)
  43. run_cmake(${name})
  44. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${name}-build")
  45. set(RunCMake_TEST_NO_CLEAN 1)
  46. run_cmake_command(${name}-build ${CMAKE_COMMAND} --build .)
  47. if(NOT EXISTS "${RunCMake_TEST_BINARY_DIR}/wdir/touched")
  48. message(SEND_ERROR "File not created by target-dependent add_custom_command()!")
  49. endif()
  50. unset(RunCMake_TEST_NO_CLEAN)
  51. unset(RunCMake_TEST_BINARY_DIR)
  52. endfunction()
  53. test_genex(TargetGenexEvent)