Skip to content

Commit 9dc62da

Browse files
Update foundation build script for swift-foundation
1 parent d7f6b4a commit 9dc62da

File tree

2 files changed

+67
-1
lines changed

2 files changed

+67
-1
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/bash
2+
set -ex
3+
DESTINATION_TOOLCHAIN=$1
4+
LLVM_BIN_DIR=$2
5+
CLANG_BIN_DIR=$3
6+
SWIFT_BIN_DIR=$4
7+
WASI_SYSROOT_PATH=$5
8+
TRIPLE="wasm32-unknown-wasi"
9+
10+
SOURCE_PATH="$(cd "$(dirname $0)/../../../.." && pwd)"
11+
SCHEME_BUILD_PATH="$(cd "$(dirname $0)" && pwd)"
12+
BUILD_SDK_PATH="$SOURCE_PATH/build-sdk"
13+
LIBXML2_PATH="$BUILD_SDK_PATH/libxml2"
14+
15+
FOUNDATION_BUILD="$SOURCE_PATH/build/WebAssembly/foundation-wasi-wasm32"
16+
FOUNDATION_MACROS_BUILD="$SOURCE_PATH/build/WebAssembly/foundation-macros-wasi-wasm32"
17+
18+
swift_extra_flags=""
19+
c_extra_flags=""
20+
if [[ "$TRIPLE" == "wasm32-unknown-wasip1-threads" ]]; then
21+
swift_extra_flags="-Xcc -matomics -Xcc -mbulk-memory -Xcc -mthread-model -Xcc posix -Xcc -pthread -Xcc -ftls-model=local-exec"
22+
c_extra_flags="-mthread-model posix -pthread -ftls-model=local-exec"
23+
fi
24+
25+
cmake -G Ninja \
26+
-D CMAKE_C_COMPILER="$CLANG_BIN_DIR/clang" \
27+
-D CMAKE_CXX_COMPILER="$CLANG_BIN_DIR/clang++" \
28+
-D CMAKE_Swift_COMPILER="$SWIFT_BIN_DIR/swiftc" \
29+
-D BUILD_SHARED_LIBS=ON \
30+
-B "$FOUNDATION_MACROS_BUILD" \
31+
"${SOURCE_PATH}/swift-foundation/Sources/FoundationMacros"
32+
33+
cmake --build "$FOUNDATION_MACROS_BUILD"
34+
35+
cmake -G Ninja \
36+
-D CMAKE_BUILD_TYPE="Release" \
37+
-D CMAKE_SYSROOT="$WASI_SYSROOT_PATH" \
38+
-D CMAKE_Swift_COMPILER="$SWIFT_BIN_DIR/swiftc" \
39+
-D CMAKE_STAGING_PREFIX="$DESTINATION_TOOLCHAIN/usr" \
40+
-D CMAKE_SYSTEM_NAME=WASI \
41+
-D CMAKE_SYSTEM_PROCESSOR=wasm32 \
42+
-D CMAKE_C_COMPILER_TARGET="$TRIPLE" \
43+
-D CMAKE_CXX_COMPILER_TARGET="$TRIPLE" \
44+
-D CMAKE_Swift_COMPILER_TARGET="$TRIPLE" \
45+
-D CMAKE_C_COMPILER="$CLANG_BIN_DIR/clang" \
46+
-D CMAKE_CXX_COMPILER="$CLANG_BIN_DIR/clang++" \
47+
-D CMAKE_AR="$LLVM_BIN_DIR/llvm-ar" \
48+
-D CMAKE_RANLIB="$LLVM_BIN_DIR/llvm-ranlib" \
49+
-D LIBXML2_INCLUDE_DIR="$LIBXML2_PATH/include/libxml2" \
50+
-D LIBXML2_LIBRARY="$LIBXML2_PATH/lib" \
51+
-D BUILD_SHARED_LIBS=OFF \
52+
-D FOUNDATION_BUILD_TOOLS=OFF \
53+
-D CMAKE_Swift_COMPILER_FORCED=ON \
54+
-D CMAKE_C_COMPILER_FORCED=ON \
55+
-D CMAKE_CXX_COMPILER_FORCED=ON \
56+
-D CMAKE_Swift_FLAGS="-sdk $WASI_SYSROOT_PATH -resource-dir $DESTINATION_TOOLCHAIN/usr/lib/swift_static $swift_extra_flags" \
57+
-D CMAKE_C_FLAGS="-resource-dir $DESTINATION_TOOLCHAIN/usr/lib/swift_static/clang -B $LLVM_BIN_DIR $c_extra_flags" \
58+
-D _SwiftCollections_SourceDIR="$SOURCE_PATH/swift-collections" \
59+
-D _SwiftFoundation_SourceDIR="$SOURCE_PATH/swift-foundation" \
60+
-D _SwiftFoundationICU_SourceDIR="$SOURCE_PATH/swift-foundation-icu" \
61+
-D SwiftFoundation_MACRO="$FOUNDATION_MACROS_BUILD/lib" \
62+
-B "$FOUNDATION_BUILD" \
63+
"${SOURCE_PATH}/swift-corelibs-foundation"
64+
65+
cmake --build "$FOUNDATION_BUILD"
66+
cmake --install "$FOUNDATION_BUILD"

schemes/release-6.0/build/build-target-toolchain.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ build_target_toolchain() {
144144
"$SWIFT_BIN_DIR"
145145
"$WASI_SYSROOT_PATH"
146146
)
147-
"$TOOLS_BUILD_PATH/build-foundation.sh" "${CORELIBS_ARGS[@]}"
147+
"$SCHEMES_BUILD_PATH/build-foundation.sh" "${CORELIBS_ARGS[@]}"
148148
"$SCHEMES_BUILD_PATH/build-xctest.sh" "${CORELIBS_ARGS[@]}"
149149
}
150150

0 commit comments

Comments
 (0)