RunCMakeTest.cmake 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. include(RunCMake)
  2. set(RunCMake_TEST_TIMEOUT 60)
  3. file(WRITE "${RunCMake_BINARY_DIR}/NotAGenerator-build/CPackConfig.cmake" [[
  4. set(CPACK_PACKAGE_NAME "Test")
  5. set(CPACK_PACKAGE_VERSION "1")
  6. ]])
  7. set(RunCMake_TEST_NO_CLEAN 1)
  8. run_cmake_command(NotAGenerator ${CMAKE_CPACK_COMMAND} -G NotAGenerator)
  9. unset(RunCMake_TEST_NO_CLEAN)
  10. function(run_MultiConfig)
  11. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/MultiConfig-build")
  12. run_cmake(MultiConfig)
  13. set(RunCMake_TEST_NO_CLEAN 1)
  14. run_cmake_command(MultiConfig-build-dbg ${CMAKE_COMMAND} --build . --config Debug)
  15. run_cmake_command(MultiConfig-build-rel ${CMAKE_COMMAND} --build . --config Release)
  16. run_cmake_command(MultiConfig-package ${CMAKE_CPACK_COMMAND} -G ZIP -C "Debug\;Release")
  17. set(zip_glob "${RunCMake_TEST_BINARY_DIR}/MultiConfig-0.1.1-*.zip")
  18. file(GLOB zips "${zip_glob}")
  19. set(zip_found 0)
  20. foreach(zip IN LISTS zips)
  21. set(zip_found 1)
  22. run_cmake_command(MultiConfig-check ${CMAKE_COMMAND} -E tar tf "${zip}")
  23. endforeach()
  24. if(NOT zip_found)
  25. message(SEND_ERROR "No package file found at\n ${zip_glob}")
  26. endif()
  27. endfunction()
  28. if(RunCMake_GENERATOR MATCHES "Visual Studio|Xcode")
  29. run_MultiConfig()
  30. endif()
  31. function(run_cpack_test name)
  32. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${name}-build")
  33. run_cmake(${name})
  34. set(RunCMake_TEST_NO_CLEAN 1)
  35. run_cmake_command(${name}-package ${CMAKE_CPACK_COMMAND} -G ZIP)
  36. endfunction()
  37. run_cpack_test(ProjectConfigMissing)
  38. run_cpack_test(ProjectConfigRelative)