@@ -34,7 +34,6 @@ include(DispatchUtilities)
3434
3535set (SWIFT_LIBDIR "lib" CACHE PATH "Library folder name, defined by swift main buildscript" )
3636set (INSTALL_LIBDIR "${SWIFT_LIBDIR} " CACHE PATH "Path where the libraries should be installed" )
37- set (WITH_BLOCKS_RUNTIME "" CACHE PATH "Path to blocks runtime" )
3837
3938include (DispatchAppleOptions)
4039include (DispatchSanitization)
@@ -133,14 +132,14 @@ endif()
133132
134133option (INSTALL_PRIVATE_HEADERS "installs private headers in the same location as the public ones" OFF )
135134
136- if ( CMAKE_SYSTEM_NAME STREQUAL Linux OR
137- CMAKE_SYSTEM_NAME STREQUAL Android OR
138- CMAKE_SYSTEM_NAME STREQUAL FreeBSD OR
139- CMAKE_SYSTEM_NAME STREQUAL Windows)
140- add_library (BlocksRuntime
135+ find_package (BlocksRuntime QUIET )
136+ if ( NOT BlocksRuntime_FOUND)
137+ set (BlocksRuntime_INCLUDE_DIR ${CMAKE_SOURCE_DIR} /src/BlocksRuntime)
138+
139+ add_library (BlocksRuntime::BlocksRuntime
141140 STATIC
142141 ${CMAKE_SOURCE_DIR} /src/BlocksRuntime/data.c
143- ${CMAKE_SOURCE_DIR} /src/BlocksRuntime/runtime.c)
142+ ${CMAKE_SOURCE_DIR} /src/BlocksRuntime/runtime.c)
144143 set_target_properties (BlocksRuntime
145144 PROPERTIES
146145 POSITION_INDEPENDENT_CODE TRUE )
@@ -149,8 +148,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux OR
149148 PROPERTIES
150149 INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS} )
151150 endif ()
152- set (WITH_BLOCKS_RUNTIME "${CMAKE_SOURCE_DIR} /src/BlocksRuntime" CACHE PATH "Path to blocks runtime" FORCE)
153-
151+
154152 install (FILES
155153 ${CMAKE_SOURCE_DIR} /src/BlocksRuntime/Block.h
156154 DESTINATION
@@ -161,9 +159,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux OR
161159 DESTINATION
162160 "${INSTALL_BLOCK_HEADERS_DIR} " )
163161 endif ()
164- else ()
165- # TODO(compnerd) support system installed BlocksRuntime
166- # find_package(BlocksRuntime REQUIRED)
167162endif ()
168163
169164check_symbol_exists(__GNU_LIBRARY__ "features.h" _GNU_SOURCE)
0 commit comments