CMakeLists.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. cmake_minimum_required (VERSION 2.8)
  2. project(MacRuntimePath)
  3. # Wipe out the install tree to make sure the exporter works.
  4. add_custom_command(
  5. OUTPUT ${MacRuntimePath_BINARY_DIR}/CleanupProject
  6. COMMAND ${CMAKE_COMMAND} -E remove_directory ${MacRuntimePath_BINARY_DIR}/Root
  7. )
  8. add_custom_target(CleanupTarget ALL DEPENDS ${MacRuntimePath_BINARY_DIR}/CleanupProject)
  9. set_property(
  10. SOURCE ${MacRuntimePath_BINARY_DIR}/CleanupProject
  11. PROPERTY SYMBOLIC 1
  12. )
  13. configure_file(${MacRuntimePath_SOURCE_DIR}/InitialCache.cmake.in
  14. ${MacRuntimePath_BINARY_DIR}/InitialCache.cmake @ONLY)
  15. if(CMAKE_CONFIGURATION_TYPES)
  16. set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}")
  17. else()
  18. if(CMAKE_BUILD_TYPE)
  19. set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}")
  20. else()
  21. set(NESTED_CONFIG_TYPE)
  22. endif()
  23. endif()
  24. # Build and install the exporter.
  25. add_custom_command(
  26. OUTPUT ${MacRuntimePath_BINARY_DIR}/ExportProject
  27. COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
  28. --build-and-test
  29. ${MacRuntimePath_SOURCE_DIR}/A
  30. ${MacRuntimePath_BINARY_DIR}/A
  31. --build-noclean
  32. --build-project MacRuntimePath_A
  33. --build-target install
  34. --build-generator ${CMAKE_GENERATOR}
  35. --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
  36. --build-makeprogram ${CMAKE_MAKE_PROGRAM}
  37. --build-options -C${MacRuntimePath_BINARY_DIR}/InitialCache.cmake
  38. VERBATIM
  39. )
  40. add_custom_target(ExportTarget ALL DEPENDS ${MacRuntimePath_BINARY_DIR}/ExportProject)
  41. add_dependencies(ExportTarget CleanupTarget)
  42. set_property(
  43. SOURCE ${MacRuntimePath_BINARY_DIR}/ExportProject
  44. PROPERTY SYMBOLIC 1
  45. )
  46. # Build the importer.
  47. add_custom_command(
  48. OUTPUT ${MacRuntimePath_BINARY_DIR}/ImportProject
  49. COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE}
  50. --build-and-test
  51. ${MacRuntimePath_SOURCE_DIR}/B
  52. ${MacRuntimePath_BINARY_DIR}/B
  53. --build-noclean
  54. --build-project MacRuntimePath_B
  55. --build-generator ${CMAKE_GENERATOR}
  56. --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}"
  57. --build-makeprogram ${CMAKE_MAKE_PROGRAM}
  58. --build-options -C${MacRuntimePath_BINARY_DIR}/InitialCache.cmake
  59. VERBATIM
  60. )
  61. add_custom_target(ImportTarget ALL DEPENDS ${MacRuntimePath_BINARY_DIR}/ImportProject)
  62. add_dependencies(ImportTarget ExportTarget)
  63. set_property(
  64. SOURCE ${MacRuntimePath_BINARY_DIR}/ImportProject
  65. PROPERTY SYMBOLIC 1
  66. )