Skip to content

Commit 064c549

Browse files
committed
build: install cmake config
This makes it easier to consume dispatch via package managers such as vcpkg or Linux system ones
1 parent 8b61977 commit 064c549

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

cmake/modules/CMakeLists.txt

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11

22
set(DISPATCH_EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/dispatchExports.cmake)
33
configure_file(dispatchConfig.cmake.in
4-
${CMAKE_CURRENT_BINARY_DIR}/dispatchConfig.cmake)
4+
${CMAKE_CURRENT_BINARY_DIR}/dispatchConfig.cmake
5+
@ONLY)
6+
file(COPY FindLibRT.cmake DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
57

68
get_property(DISPATCH_EXPORTS GLOBAL PROPERTY DISPATCH_EXPORTS)
79
export(TARGETS ${DISPATCH_EXPORTS} FILE ${DISPATCH_EXPORTS_FILE})
10+
11+
if(NOT ENABLE_SWIFT)
12+
install(EXPORT dispatchExports DESTINATION ${INSTALL_TARGET_DIR}/cmake/dispatch)
13+
install(FILES
14+
${CMAKE_CURRENT_BINARY_DIR}/dispatchConfig.cmake
15+
${CMAKE_CURRENT_BINARY_DIR}/FindLibRT.cmake
16+
DESTINATION ${INSTALL_TARGET_DIR}/cmake/dispatch)
17+
endif()

cmake/modules/dispatchConfig.cmake.in

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
include(CMakeFindDependencyMacro)
2+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
3+
find_dependency(LibRT)
14

25
set(DISPATCH_HAS_SWIFT_SDK_OVERLAY @ENABLE_SWIFT@)
36

47
if(NOT TARGET dispatch)
5-
include(@DISPATCH_EXPORTS_FILE@)
8+
include("${CMAKE_CURRENT_LIST_DIR}/dispatchExports.cmake")
69
endif()
710

src/BlocksRuntime/CMakeLists.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ if(WIN32)
1313
endif()
1414

1515
target_include_directories(BlocksRuntime PUBLIC
16-
${CMAKE_CURRENT_SOURCE_DIR})
16+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
17+
$<INSTALL_INTERFACE:${INSTALL_BLOCK_HEADERS_DIR}>)
1718
if(HAVE_OBJC AND CMAKE_DL_LIBS)
1819
target_link_libraries(BlocksRuntime PUBLIC
1920
${CMAKE_DL_LIBS})

src/CMakeLists.txt

+5-4
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,11 @@ if(HAVE_OBJC)
8989
endif()
9090

9191
target_include_directories(dispatch PUBLIC
92-
${PROJECT_BINARY_DIR}
93-
${PROJECT_SOURCE_DIR}
94-
${CMAKE_CURRENT_SOURCE_DIR}
95-
${CMAKE_CURRENT_BINARY_DIR})
92+
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
93+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
94+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
95+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
96+
$<INSTALL_INTERFACE:${INSTALL_DISPATCH_HEADERS_DIR}/..>)
9697
target_include_directories(dispatch PRIVATE
9798
${PROJECT_SOURCE_DIR}/private)
9899

0 commit comments

Comments
 (0)