@@ -239,6 +239,8 @@ function run() {
239
239
" $@ "
240
240
}
241
241
242
+ # -----------------------------------------------------------------------
243
+
242
244
header " Building CMake from source"
243
245
244
246
quiet_pushd ${source_dir} /swift-project/cmake
@@ -255,6 +257,8 @@ run export PATH="${build_dir}/cmake/install/bin:$PATH"
255
257
quiet_popd
256
258
run cmake --version
257
259
260
+ # -----------------------------------------------------------------------
261
+
258
262
header " Patching Musl"
259
263
260
264
echo -n " Patching Musl for locale support... "
@@ -268,6 +272,45 @@ else
268
272
exit 1
269
273
fi
270
274
275
+ # -----------------------------------------------------------------------
276
+
277
+ header " Patching BoringSSL"
278
+
279
+ echo -n " Patching BoringSSL to disable -Werror... "
280
+ sed -i.bak " s/-Werror //g" ${source_dir} /boringssl/CMakeLists.txt
281
+ echo " done"
282
+
283
+ # -----------------------------------------------------------------------
284
+
285
+ header " Building clang for host"
286
+
287
+ mkdir -p ${build_dir} /host/clang ${build_dir} /clang
288
+
289
+ run cmake -G Ninja -S ${source_dir} /swift-project/llvm-project/llvm \
290
+ -B ${build_dir} /host/clang \
291
+ -DCMAKE_BUILD_TYPE=Release \
292
+ -DLLVM_ENABLE_PROJECTS=" clang" \
293
+ -DLLVM_PARALLEL_LINK_JOBS=1 \
294
+ -DCMAKE_INSTALL_PREFIX=${build_dir} /clang
295
+
296
+ quiet_pushd ${build_dir} /host/clang
297
+ run ninja -j$parallel_jobs
298
+ quiet_popd
299
+
300
+ header " Installing clang for host"
301
+
302
+ quiet_pushd ${build_dir} /host/clang
303
+ run ninja -j$parallel_jobs install
304
+ quiet_popd
305
+
306
+ clang_dir=${build_dir} /clang
307
+
308
+ header " Clang version"
309
+
310
+ ${clang_dir} /bin/clang --version
311
+
312
+ # -----------------------------------------------------------------------
313
+
271
314
for arch in $archs ; do
272
315
273
316
# Fix architecture names
@@ -288,11 +331,11 @@ for arch in $archs; do
288
331
" ${sdk_root} /usr/lib/swift_static"
289
332
ln -sf ../swift/clang " ${sdk_root} /usr/lib/swift_static/clang"
290
333
291
- clang_resource_dir=$( ${swift_dir } /bin/clang -print-resource-dir)
334
+ clang_resource_dir=$( ${clang_dir } /bin/clang -print-resource-dir)
292
335
cp -rT $clang_resource_dir /include $sdk_resource_dir /include
293
336
294
- cc=" ${swift_dir } /bin/clang -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} "
295
- cxx=" ${swift_dir } /bin/clang++ -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} -stdlib=libc++ -unwindlib=libunwind"
337
+ cc=" ${clang_dir } /bin/clang -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} "
338
+ cxx=" ${clang_dir } /bin/clang++ -target $triple -resource-dir ${sdk_resource_dir} --sysroot ${sdk_root} -stdlib=libc++ -unwindlib=libunwind"
296
339
as=" $cc "
297
340
298
341
# Creating this gets rid of a warning
@@ -406,9 +449,9 @@ set(CMAKE_SYSROOT ${sdk_root})
406
449
set(CMAKE_CROSSCOMPILING=YES)
407
450
set(CMAKE_EXE_LINKER_FLAGS "-unwindlib=libunwind -rtlib=compiler-rt -stdlib=libc++ -fuse-ld=lld -lc++ -lc++abi")
408
451
409
- set(CMAKE_C_COMPILER ${swift_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
410
- set(CMAKE_CXX_COMPILER ${swift_dir } /bin/clang++ -resource-dir ${sdk_resource_dir} -stdlib=libc++)
411
- set(CMAKE_ASM_COMPILER ${swift_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
452
+ set(CMAKE_C_COMPILER ${clang_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
453
+ set(CMAKE_CXX_COMPILER ${clang_dir } /bin/clang++ -resource-dir ${sdk_resource_dir} -stdlib=libc++)
454
+ set(CMAKE_ASM_COMPILER ${clang_dir } /bin/clang -resource-dir ${sdk_resource_dir} )
412
455
set(CMAKE_FIND_ROOT_PATH ${sdk_root} )
413
456
EOF
414
457
0 commit comments