@@ -98,25 +98,52 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
98
98
CMAKE_ARGS
99
99
-DCMAKE_C_COMPILER=${PATH_TO_CLANG_BUILD} /bin/clang
100
100
-DCMAKE_CXX_COMPILER=${PATH_TO_CLANG_BUILD} /bin/clang++
101
+ -DCMAKE_SWIFT_COMPILER=$<TARGET_FILE:swift>c
101
102
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
103
+ -DENABLE_SWIFT=YES
102
104
BUILD_BYPRODUCTS
103
- ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /src/${CMAKE_SHARED_LIBRARY_PREFIX} dispatch${CMAKE_SHARED_LIBRARY_SUFFIX} )
104
-
105
+ ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /src/${CMAKE_SHARED_LIBRARY_PREFIX} dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
106
+ ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /${CMAKE_STATIC_LIBRARY_PREFIX} BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX}
107
+ STEP_TARGETS
108
+ configure)
109
+
110
+ # CMake does not like the addition of INTERFACE_INCLUDE_DIRECTORIES without
111
+ # the directory existing. Just create the location which will be populated
112
+ # during the installation.
113
+ ExternalProject_Get_Property(libdispatch install_dir)
114
+ file (MAKE_DIRECTORY ${install_dir} /include )
115
+
116
+ # TODO(compnerd) this should be taken care of by the
117
+ # INTERFACE_INCLUDE_DIRECTORIES below
105
118
include_directories (AFTER
106
- ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} /src/BlocksRuntime)
107
- link_directories (${SWIFT_PATH_TO_LIBDISPATCH_BUILD} )
119
+ ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} /src/BlocksRuntime
120
+ ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} )
121
+ add_dependencies (libdispatch-configure
122
+ swift
123
+ swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
124
+ swiftSwiftOnoneSupport-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
125
+ swiftCore-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
126
+ swiftSwiftOnoneSupport-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} )
108
127
endif ()
109
128
110
- include_directories (AFTER ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} )
111
-
112
- add_library (dispatch UNKNOWN IMPORTED )
129
+ ExternalProject_Get_Property(libdispatch install_dir)
130
+ add_library (dispatch SHARED IMPORTED )
113
131
set_target_properties (dispatch
114
132
PROPERTIES
115
- IMPORTED_LOCATION ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /src/${CMAKE_SHARED_LIBRARY_PREFIX} dispatch${CMAKE_SHARED_LIBRARY_SUFFIX} )
116
-
117
- add_library (swiftCore SHARED IMPORTED )
118
- set_target_properties (swiftCore PROPERTIES
119
- IMPORTED_LOCATION ${SOURCEKIT_BINARY_DIR} /lib/swift/linux/libswiftCore.so)
133
+ IMPORTED_LOCATION
134
+ ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /src/${CMAKE_SHARED_LIBRARY_PREFIX} dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
135
+ INTERFACE_INCLUDE_DIRECTORIES
136
+ ${install_dir} /include
137
+ IMPORTED_LINK_INTERFACE_LIBRARIES
138
+ swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK} _LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} )
139
+
140
+ add_library (BlocksRuntime STATIC IMPORTED )
141
+ set_target_properties (BlocksRuntime
142
+ PROPERTIES
143
+ IMPORTED_LOCATION
144
+ ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /${CMAKE_STATIC_LIBRARY_PREFIX} BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX}
145
+ INTERFACE_INCLUDE_DIRECTORIES
146
+ ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} /src/BlocksRuntime)
120
147
121
148
set (SOURCEKIT_NEED_EXPLICIT_LIBDISPATCH TRUE )
122
149
endif ()
0 commit comments