diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt index 10cc0e100..cf55b6566 100644 --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -1,7 +1,23 @@ set(DISPATCH_EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/dispatchExports.cmake) configure_file(dispatchConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/dispatchConfig.cmake) + ${CMAKE_CURRENT_BINARY_DIR}/dispatchConfig.cmake + @ONLY) + +if(LibRT_FOUND) + file(COPY FindLibRT.cmake DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +endif() get_property(DISPATCH_EXPORTS GLOBAL PROPERTY DISPATCH_EXPORTS) export(TARGETS ${DISPATCH_EXPORTS} FILE ${DISPATCH_EXPORTS_FILE}) + +if(NOT ENABLE_SWIFT) + install(EXPORT dispatchExports DESTINATION ${INSTALL_TARGET_DIR}/cmake/dispatch) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dispatchConfig.cmake + DESTINATION ${INSTALL_TARGET_DIR}/cmake/dispatch) + + if(LibRT_FOUND) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FindLibRT.cmake + DESTINATION ${INSTALL_TARGET_DIR}/cmake/dispatch) + endif() +endif() diff --git a/cmake/modules/dispatchConfig.cmake.in b/cmake/modules/dispatchConfig.cmake.in index 81228f271..039e42833 100644 --- a/cmake/modules/dispatchConfig.cmake.in +++ b/cmake/modules/dispatchConfig.cmake.in @@ -1,7 +1,13 @@ +include(CMakeFindDependencyMacro) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") + +if(@LibRT_FOUND@) + find_dependency(LibRT) +endif() set(DISPATCH_HAS_SWIFT_SDK_OVERLAY @ENABLE_SWIFT@) if(NOT TARGET dispatch) - include(@DISPATCH_EXPORTS_FILE@) + include("${CMAKE_CURRENT_LIST_DIR}/dispatchExports.cmake") endif() diff --git a/src/BlocksRuntime/CMakeLists.txt b/src/BlocksRuntime/CMakeLists.txt index fc3d60252..162a6e7e6 100644 --- a/src/BlocksRuntime/CMakeLists.txt +++ b/src/BlocksRuntime/CMakeLists.txt @@ -13,7 +13,8 @@ if(WIN32) endif() target_include_directories(BlocksRuntime PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}) + $ + $) if(HAVE_OBJC AND CMAKE_DL_LIBS) target_link_libraries(BlocksRuntime PUBLIC ${CMAKE_DL_LIBS}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a1f8a0c58..c6687c405 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -89,10 +89,11 @@ if(HAVE_OBJC) endif() target_include_directories(dispatch PUBLIC - ${PROJECT_BINARY_DIR} - ${PROJECT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR}) + $ + $ + $ + $ + $) target_include_directories(dispatch PRIVATE ${PROJECT_SOURCE_DIR}/private)