MultiCommand.cmake 1.4 KB

123456789101112131415161718192021222324252627282930
  1. cmake_minimum_required(VERSION 3.9)
  2. include(ExternalProject)
  3. # Verify COMMAND keyword is recognised after various *_COMMAND options
  4. ExternalProject_Add(multiCommand
  5. DOWNLOAD_COMMAND "${CMAKE_COMMAND}" -E echo "download 1"
  6. COMMAND "${CMAKE_COMMAND}" -E echo "download 2"
  7. UPDATE_COMMAND "${CMAKE_COMMAND}" -E echo "update 1"
  8. COMMAND "${CMAKE_COMMAND}" -E echo "update 2"
  9. PATCH_COMMAND "${CMAKE_COMMAND}" -E echo "patch 1"
  10. COMMAND "${CMAKE_COMMAND}" -E echo "patch 2"
  11. CONFIGURE_COMMAND "${CMAKE_COMMAND}" -E echo "configure 1"
  12. COMMAND "${CMAKE_COMMAND}" -E echo "configure 2"
  13. BUILD_COMMAND "${CMAKE_COMMAND}" -E echo "build 1"
  14. COMMAND "${CMAKE_COMMAND}" -E echo "build 2"
  15. TEST_COMMAND "${CMAKE_COMMAND}" -E echo "test 1"
  16. COMMAND "${CMAKE_COMMAND}" -E echo "test 2"
  17. INSTALL_COMMAND "${CMAKE_COMMAND}" -E echo "install 1"
  18. COMMAND "${CMAKE_COMMAND}" -E echo "install 2"
  19. )
  20. # Workaround for issue 17229 (missing dependency between update and patch steps)
  21. ExternalProject_Add_StepTargets(multiCommand NO_DEPENDS update)
  22. ExternalProject_Add_StepDependencies(multiCommand patch multiCommand-update)
  23. # Force all steps to be re-run by removing timestamps from any previous run
  24. ExternalProject_Get_Property(multiCommand STAMP_DIR)
  25. file(REMOVE_RECURSE "${STAMP_DIR}")
  26. file(MAKE_DIRECTORY "${STAMP_DIR}")