cmake_minimum_required (VERSION 2.8) project(MacRuntimePath) if(NOT DEFINED CMAKE_TEST_MAKEPROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio") set(CMAKE_TEST_MAKEPROGRAM "${CMAKE_MAKE_PROGRAM}") endif() # Wipe out the install tree to make sure the exporter works. add_custom_command( OUTPUT ${MacRuntimePath_BINARY_DIR}/CleanupProject COMMAND ${CMAKE_COMMAND} -E remove_directory ${MacRuntimePath_BINARY_DIR}/Root ) add_custom_target(CleanupTarget ALL DEPENDS ${MacRuntimePath_BINARY_DIR}/CleanupProject) set_property( SOURCE ${MacRuntimePath_BINARY_DIR}/CleanupProject PROPERTY SYMBOLIC 1 ) configure_file(${MacRuntimePath_SOURCE_DIR}/InitialCache.cmake.in ${MacRuntimePath_BINARY_DIR}/InitialCache.cmake @ONLY) if(CMAKE_CONFIGURATION_TYPES) set(NESTED_CONFIG_TYPE -C "${CMAKE_CFG_INTDIR}") else() if(CMAKE_BUILD_TYPE) set(NESTED_CONFIG_TYPE -C "${CMAKE_BUILD_TYPE}") else() set(NESTED_CONFIG_TYPE) endif() endif() # Build and install the exporter. add_custom_command( OUTPUT ${MacRuntimePath_BINARY_DIR}/ExportProject COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE} --build-and-test ${MacRuntimePath_SOURCE_DIR}/A ${MacRuntimePath_BINARY_DIR}/A --build-noclean --build-project MacRuntimePath_A --build-target install --build-generator ${CMAKE_GENERATOR} --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}" --build-options -C${MacRuntimePath_BINARY_DIR}/InitialCache.cmake VERBATIM ) add_custom_target(ExportTarget ALL DEPENDS ${MacRuntimePath_BINARY_DIR}/ExportProject) add_dependencies(ExportTarget CleanupTarget) set_property( SOURCE ${MacRuntimePath_BINARY_DIR}/ExportProject PROPERTY SYMBOLIC 1 ) # Build the importer. add_custom_command( OUTPUT ${MacRuntimePath_BINARY_DIR}/ImportProject COMMAND ${CMAKE_CTEST_COMMAND} ${NESTED_CONFIG_TYPE} --build-and-test ${MacRuntimePath_SOURCE_DIR}/B ${MacRuntimePath_BINARY_DIR}/B --build-noclean --build-project MacRuntimePath_B --build-generator ${CMAKE_GENERATOR} --build-generator-toolset "${CMAKE_GENERATOR_TOOLSET}" --build-options -C${MacRuntimePath_BINARY_DIR}/InitialCache.cmake VERBATIM ) add_custom_target(ImportTarget ALL DEPENDS ${MacRuntimePath_BINARY_DIR}/ImportProject) add_dependencies(ImportTarget ExportTarget) set_property( SOURCE ${MacRuntimePath_BINARY_DIR}/ImportProject PROPERTY SYMBOLIC 1 )