DirOverrides.cmake 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. include(FetchContent)
  2. # Test using saved details
  3. FetchContent_Declare(
  4. t1
  5. SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/savedSrc
  6. DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>
  7. )
  8. FetchContent_Populate(t1)
  9. if(NOT IS_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/savedSrc)
  10. message(FATAL_ERROR "Saved details SOURCE_DIR override failed")
  11. endif()
  12. # Test direct population
  13. FetchContent_Populate(
  14. t2
  15. SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/directSrc
  16. DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>
  17. )
  18. if(NOT IS_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/directSrc)
  19. message(FATAL_ERROR "Direct details SOURCE_DIR override failed")
  20. endif()
  21. # Ensure setting BINARY_DIR to SOURCE_DIR works (a technique to
  22. # prevent an unwanted separate BINARY_DIR from being created, which
  23. # ExternalProject_Add() does whether we like it or not)
  24. FetchContent_Declare(
  25. t3
  26. SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/savedNoBuildDir
  27. BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/savedNoBuildDir
  28. DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>
  29. )
  30. FetchContent_Populate(t3)
  31. if(IS_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/savedNobuildDir-build)
  32. message(FATAL_ERROR "Saved details BINARY_DIR override failed")
  33. endif()
  34. FetchContent_Populate(
  35. t4
  36. SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/directNoBuildDir
  37. BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/directNoBuildDir
  38. DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E make_directory <SOURCE_DIR>
  39. )
  40. if(IS_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/savedNobuildDir-build)
  41. message(FATAL_ERROR "Direct details BINARY_DIR override failed")
  42. endif()