@@ -97,82 +97,74 @@ include_directories(BEFORE
97
97
98
98
if ("${CMAKE_SYSTEM_NAME} " STREQUAL "Linux" )
99
99
set (SOURCEKIT_DEFAULT_TARGET_SDK "LINUX" )
100
+ set (SOURCEKIT_NEED_EXPLICIT_LIBDISPATCH TRUE )
101
+
100
102
if (SWIFT_BUILD_SOURCEKIT )
101
- if (SWIFT_BUILD_STDLIB )
102
- set (SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT YES )
103
- else ()
104
- set (SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT NO )
105
- endif ()
106
103
107
104
include (ExternalProject )
108
105
ExternalProject_Add (libdispatch
109
106
SOURCE_DIR
110
107
"${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} "
111
- BINARY_DIR
112
- "${SWIFT_PATH_TO_LIBDISPATCH_BUILD} "
113
108
CMAKE_ARGS
114
- -DCMAKE_BUILD_TYPE=${LIBDISPATCH_CMAKE_BUILD_TYPE}
115
- -DCMAKE_C_COMPILER=${PATH_TO_CLANG_BUILD}/bin/clang
116
- -DCMAKE_CXX_COMPILER=${PATH_TO_CLANG_BUILD}/bin/clang++
109
+ -DCMAKE_AR=${CMAKE_AR}
110
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
111
+ -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
112
+ -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
113
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
114
+ -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
117
115
-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}
118
- -DCMAKE_SWIFT_COMPILER=$<TARGET_FILE:swift>c
119
116
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
120
- -DENABLE_SWIFT=${SOURCEKIT_LIBDISPATCH_ENABLE_SWIFT}
117
+ -DCMAKE_LINKER=${CMAKE_LINKER}
118
+ -DCMAKE_RANLIB=${CMAKE_RANLIB}
119
+ -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
120
+ -DENABLE_SWIFT=NO
121
+ -DENABLE_TESTING=NO
122
+ INSTALL_COMMAND
123
+ # NOTE(compnerd) provide a custom install command to
124
+ # ensure that we strip out the DESTDIR environment
125
+ # from the sub-build
126
+ ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --target install
121
127
BUILD_BYPRODUCTS
122
- ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /src /${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
123
- ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /${CMAKE_STATIC_LIBRARY_PREFIX}BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX }
124
- STEP_TARGETS
125
- configure
128
+ <INSTALL_DIR>/lib /${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
129
+ <INSTALL_DIR>/lib/${CMAKE_IMPORT_LIBRARY_PREFIX}dispatch${CMAKE_IMPORT_LIBRARY_SUFFIX }
130
+ <INSTALL_DIR>/lib/${CMAKE_SHARED_LIBRARY_PREFIX}BlocksRuntime${CMAKE_SHARED_LIBRARY_SUFFIX}
131
+ <INSTALL_DIR>/lib/${CMAKE_IMPORT_LIBRARY_PREFIX}BlocksRuntime${CMAKE_IMPORT_LIBRARY_SUFFIX}
126
132
BUILD_ALWAYS
127
133
1 )
128
134
135
+ ExternalProject_Get_Property (libdispatch install_dir )
136
+
129
137
# CMake does not like the addition of INTERFACE_INCLUDE_DIRECTORIES without
130
138
# the directory existing. Just create the location which will be populated
131
139
# during the installation.
132
- ExternalProject_Get_Property (libdispatch install_dir )
133
140
file (MAKE_DIRECTORY ${install_dir} /include )
134
141
135
- # TODO(compnerd) this should be taken care of by the
136
- # INTERFACE_INCLUDE_DIRECTORIES below
142
+ add_library (dispatch SHARED IMPORTED )
143
+ set_target_properties (dispatch
144
+ PROPERTIES
145
+ IMPORTED_LOCATION
146
+ ${install_dir} /lib/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
147
+ IMPORTED_IMPLIB
148
+ ${install_dir} /lib/${CMAKE_IMPORT_LIBRARY_PREFIX}dispatch${CMAKE_IMPORT_LIBRARY_SUFFIX}
149
+ INTERFACE_INCLUDE_DIRECTORIES
150
+ ${install_dir} /include )
151
+
152
+ add_library (BlocksRuntime SHARED IMPORTED )
153
+ set_target_properties (BlocksRuntime
154
+ PROPERTIES
155
+ IMPORTED_LOCATION
156
+ ${install_dir} /lib/${CMAKE_SHARED_LIBRARY_PREFIX}BlocksRuntime${CMAKE_SHARED_LIBRARY_SUFFIX}
157
+ IMPORTED_IMPLIB
158
+ ${install_dir} /lib/${CMAKE_IMPORT_LIBRARY_PREFIX}BlocksRuntime${CMAKE_IMPORT_LIBRARY_SUFFIX}
159
+ INTERFACE_INCLUDE_DIRECTORIES
160
+ ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} /src/BlocksRuntime )
161
+
162
+ # FIXME(compnerd) this should be taken care of by the
163
+ # INTERFACE_INCLUDE_DIRECTORIES above
137
164
include_directories (AFTER
138
165
${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} /src/BlocksRuntime
139
166
${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} )
140
-
141
- if (SWIFT_BUILD_STDLIB )
142
- add_dependencies (libdispatch
143
- swift
144
- copy_shim_headers
145
- swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
146
- swiftSwiftOnoneSupport-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
147
- swiftCore-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH}
148
- swiftSwiftOnoneSupport-swiftmodule-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} )
149
- endif ()
150
167
endif ()
151
-
152
- ExternalProject_Get_Property (libdispatch install_dir )
153
- add_library (dispatch SHARED IMPORTED )
154
- set_target_properties (dispatch
155
- PROPERTIES
156
- IMPORTED_LOCATION
157
- ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /src/${CMAKE_SHARED_LIBRARY_PREFIX}dispatch${CMAKE_SHARED_LIBRARY_SUFFIX}
158
- INTERFACE_INCLUDE_DIRECTORIES
159
- ${install_dir} /include )
160
- if (SWIFT_BUILD_STDLIB )
161
- set_target_properties (dispatch
162
- PROPERTIES
163
- IMPORTED_LINK_INTERFACE_LIBRARIES
164
- swiftCore-${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_HOST_VARIANT_ARCH} )
165
- endif ()
166
-
167
- add_library (BlocksRuntime STATIC IMPORTED )
168
- set_target_properties (BlocksRuntime
169
- PROPERTIES
170
- IMPORTED_LOCATION
171
- ${SWIFT_PATH_TO_LIBDISPATCH_BUILD} /${CMAKE_STATIC_LIBRARY_PREFIX}BlocksRuntime${CMAKE_STATIC_LIBRARY_SUFFIX}
172
- INTERFACE_INCLUDE_DIRECTORIES
173
- ${SWIFT_PATH_TO_LIBDISPATCH_SOURCE} /src/BlocksRuntime )
174
-
175
- set (SOURCEKIT_NEED_EXPLICIT_LIBDISPATCH TRUE )
176
168
endif ()
177
169
178
170
add_subdirectory (include )
0 commit comments