@@ -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)
135+ find_package (BlocksRuntime QUIET )
136+ if ( NOT BlocksRuntime_FOUND)
137+ set (BlocksRuntime_INCLUDE_DIR ${CMAKE_SOURCE_DIR} /src/BlocksRuntime)
138+
140139 add_library (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,9 @@ 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+
152+ add_library (BlocksRuntime::BlocksRuntime ALIAS BlocksRuntime)
153+
154154 install (FILES
155155 ${CMAKE_SOURCE_DIR} /src/BlocksRuntime/Block.h
156156 DESTINATION
@@ -161,9 +161,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux OR
161161 DESTINATION
162162 "${INSTALL_BLOCK_HEADERS_DIR} " )
163163 endif ()
164- else ()
165- # TODO(compnerd) support system installed BlocksRuntime
166- # find_package(BlocksRuntime REQUIRED)
167164endif ()
168165
169166check_symbol_exists(__GNU_LIBRARY__ "features.h" _GNU_SOURCE)
0 commit comments