4
4
SOURCE_PATH=" $( cd " $( dirname " $0 " ) /../../.." && pwd) "
5
5
UTILS_PATH=" $( cd " $( dirname " $0 " ) " && pwd) "
6
6
7
- WASI_SDK_PATH=" $SOURCE_PATH /wasi-sdk"
7
+ BUILD_SDK_PATH=" $SOURCE_PATH /build-sdk"
8
+ WASI_SDK_PATH=" $BUILD_SDK_PATH /wasi-sdk"
8
9
WASI_SYSROOT_PATH=" $WASI_SDK_PATH /share/wasi-sysroot"
9
10
10
11
case $( uname -s) in
@@ -33,6 +34,21 @@ case $(uname -s) in
33
34
;;
34
35
esac
35
36
37
+ BUILD_HOST_TOOLCHAIN=1
38
+
39
+ while [ $# -ne 0 ]; do
40
+ case " $1 " in
41
+ --skip-build-host-toolchain)
42
+ BUILD_HOST_TOOLCHAIN=0
43
+ ;;
44
+ * )
45
+ echo " Unrecognised argument \" $1 \" "
46
+ exit 1
47
+ ;;
48
+ esac
49
+ shift
50
+ done
51
+
36
52
YEAR=$( date +" %Y" )
37
53
MONTH=$( date +" %m" )
38
54
DAY=$( date +" %d" )
@@ -56,15 +72,12 @@ build_host_toolchain() {
56
72
--preset-file=" $UTILS_PATH /build-presets.ini" \
57
73
--preset=$HOST_PRESET \
58
74
--build-dir=" $HOST_BUILD_DIR " \
59
- HOST_ARCHITECTURE=$( uname -m) \
75
+ HOST_ARCHITECTURE=" $( uname -m) " \
60
76
INSTALL_DESTDIR=" $HOST_TOOLCHAIN_DESTDIR " \
61
- TOOLCHAIN_NAME=" $TOOLCHAIN_NAME " \
62
- C_CXX_LAUNCHER=" $( which sccache) "
77
+ TOOLCHAIN_NAME=" $TOOLCHAIN_NAME "
63
78
}
64
79
65
80
build_target_toolchain () {
66
- rm -rf " $DIST_TOOLCHAIN_DESTDIR "
67
- rsync -a " $HOST_TOOLCHAIN_DESTDIR /" " $DIST_TOOLCHAIN_DESTDIR "
68
81
69
82
COMPILER_RT_BUILD_DIR=" $TARGET_BUILD_ROOT /compiler-rt-wasi-wasm32"
70
83
cmake -B " $COMPILER_RT_BUILD_DIR " \
@@ -97,6 +110,11 @@ build_target_toolchain() {
97
110
-D LLVM_DIR=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /lib/cmake/llvm/" \
98
111
-D SWIFT_NATIVE_SWIFT_TOOLS_PATH=" $HOST_BUILD_DIR /swift-$HOST_SUFFIX /bin" \
99
112
-D SWIFT_WASI_SYSROOT_PATH=" $WASI_SYSROOT_PATH " \
113
+ -D SWIFT_WASI_wasm32_ICU_UC_INCLUDE=" $BUILD_SDK_PATH /icu/include" \
114
+ -D SWIFT_WASI_wasm32_ICU_UC=" $BUILD_SDK_PATH /icu/lib/libicuuc.a" \
115
+ -D SWIFT_WASI_wasm32_ICU_I18N_INCLUDE=" $BUILD_SDK_PATH /icu/include" \
116
+ -D SWIFT_WASI_wasm32_ICU_I18N=" $BUILD_SDK_PATH /icu/lib/libicui18n.a" \
117
+ -D SWIFT_WASI_wasm32_ICU_DATA=" $BUILD_SDK_PATH /icu/lib/libicudata.a" \
100
118
-G Ninja \
101
119
-S " $SOURCE_PATH /swift"
102
120
@@ -169,7 +187,12 @@ create_darwin_info_plist() {
169
187
chmod a+r " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
170
188
}
171
189
172
- build_host_toolchain
190
+ if [ ${BUILD_HOST_TOOLCHAIN} -eq 1 ]; then
191
+ build_host_toolchain
192
+ rm -rf " $DIST_TOOLCHAIN_DESTDIR "
193
+ rsync -a " $HOST_TOOLCHAIN_DESTDIR /" " $DIST_TOOLCHAIN_DESTDIR "
194
+ fi
195
+
173
196
build_target_toolchain
174
197
175
198
embed_wasi_sysroot
0 commit comments