@@ -9,23 +9,10 @@ WASI_SYSROOT_PATH="$BUILD_SDK_PATH/wasi-sysroot"
9
9
10
10
case $( uname -s) in
11
11
Darwin)
12
- OS_SUFFIX=macos_$( uname -m)
13
12
HOST_PRESET=webassembly-host-install
14
13
HOST_SUFFIX=macosx-$( uname -m)
15
14
;;
16
15
Linux)
17
- if [ " $( grep RELEASE /etc/lsb-release) " == " DISTRIB_RELEASE=18.04" ]; then
18
- OS_SUFFIX=ubuntu18.04_$( uname -m)
19
- elif [ " $( grep RELEASE /etc/lsb-release) " == " DISTRIB_RELEASE=20.04" ]; then
20
- OS_SUFFIX=ubuntu20.04_$( uname -m)
21
- elif [ " $( grep RELEASE /etc/lsb-release) " == " DISTRIB_RELEASE=22.04" ]; then
22
- OS_SUFFIX=ubuntu22.04_$( uname -m)
23
- elif [[ " $( grep PRETTY_NAME /etc/os-release) " == ' PRETTY_NAME="Amazon Linux 2"' ]]; then
24
- OS_SUFFIX=amazonlinux2_$( uname -m)
25
- else
26
- echo " Unknown Ubuntu version"
27
- exit 1
28
- fi
29
16
HOST_PRESET=webassembly-linux-host-install
30
17
HOST_SUFFIX=linux-$( uname -m)
31
18
;;
@@ -43,9 +30,6 @@ while [ $# -ne 0 ]; do
43
30
case " $1 " in
44
31
--skip-build-host-toolchain)
45
32
OPTIONS_BUILD_HOST_TOOLCHAIN=0
46
- ;;
47
- --daily-snapshot)
48
- OPTIONS_DAILY_SNAPSHOT=1
49
33
;;
50
34
* )
51
35
echo " Unrecognised argument \" $1 \" "
@@ -55,25 +39,12 @@ while [ $# -ne 0 ]; do
55
39
shift
56
40
done
57
41
58
- YEAR=$( date +" %Y" )
59
- MONTH=$( date +" %m" )
60
- DAY=$( date +" %d" )
61
-
62
- if [ ${OPTIONS_DAILY_SNAPSHOT} -eq 1 ]; then
63
- TOOLCHAIN_NAME=" swift-wasm-${TOOLCHAIN_CHANNEL} -SNAPSHOT-${YEAR} -${MONTH} -${DAY} -a"
64
- else
65
- TOOLCHAIN_NAME=" swift-wasm-${TOOLCHAIN_CHANNEL} -SNAPSHOT"
66
- fi
67
-
68
- PACKAGE_ARTIFACT=" $SOURCE_PATH /swift-wasm-${TOOLCHAIN_CHANNEL} -SNAPSHOT-${OS_SUFFIX} .tar.gz"
69
-
70
- HOST_TOOLCHAIN_DESTDIR=$SOURCE_PATH /host-toolchain-sdk
71
- DIST_TOOLCHAIN_DESTDIR=$SOURCE_PATH /dist-toolchain-sdk
72
- DIST_TOOLCHAIN_SDK=$DIST_TOOLCHAIN_DESTDIR /$TOOLCHAIN_NAME
73
-
42
+ PACKAGING_DIR=" $SOURCE_PATH /build/Packaging"
43
+ HOST_TOOLCHAIN_DESTDIR=$PACKAGING_DIR /host-toolchain
44
+ TARGET_TOOLCHAIN_DESTDIR=$PACKAGING_DIR /target-toolchain
74
45
75
- HOST_BUILD_ROOT=$SOURCE_PATH /host- build
76
- TARGET_BUILD_ROOT=$SOURCE_PATH /target- build
46
+ HOST_BUILD_ROOT=$SOURCE_PATH /build/WebAssemblyCompiler
47
+ TARGET_BUILD_ROOT=$SOURCE_PATH /build/WebAssembly
77
48
HOST_BUILD_DIR=$HOST_BUILD_ROOT /Ninja-ReleaseAssert
78
49
79
50
build_host_toolchain () {
@@ -99,7 +70,7 @@ build_target_toolchain() {
99
70
-D CMAKE_AR=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/llvm-ar" \
100
71
-D CMAKE_C_COMPILER_LAUNCHER=" $( which sccache) " \
101
72
-D CMAKE_CXX_COMPILER_LAUNCHER=" $( which sccache) " \
102
- -D CMAKE_INSTALL_PREFIX=" $DIST_TOOLCHAIN_SDK /usr/lib/clang/13.0.0/" \
73
+ -D CMAKE_INSTALL_PREFIX=" $TARGET_TOOLCHAIN_DESTDIR /usr/lib/clang/13.0.0/" \
103
74
-D CMAKE_SYSROOT=" ${WASI_SYSROOT_PATH} " \
104
75
-G Ninja \
105
76
-S " $SOURCE_PATH /llvm-project/compiler-rt"
@@ -130,7 +101,7 @@ build_target_toolchain() {
130
101
-D CMAKE_BUILD_TYPE=Release \
131
102
-D CMAKE_C_COMPILER_LAUNCHER=" $( which sccache) " \
132
103
-D CMAKE_CXX_COMPILER_LAUNCHER=" $( which sccache) " \
133
- -D CMAKE_INSTALL_PREFIX=" $DIST_TOOLCHAIN_SDK /usr" \
104
+ -D CMAKE_INSTALL_PREFIX=" $TARGET_TOOLCHAIN_DESTDIR /usr" \
134
105
-D LLVM_BIN=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin" \
135
106
-D LLVM_DIR=" $LLVM_TARGET_BUILD_DIR /lib/cmake/llvm/" \
136
107
-D LLVM_COMPILER_CHECKED=YES \
@@ -166,66 +137,10 @@ build_target_toolchain() {
166
137
167
138
# Remove host CoreFoundation module directory to avoid module conflict
168
139
# while building Foundation
169
- rm -rf " $DIST_TOOLCHAIN_SDK /usr/lib/swift_static/CoreFoundation"
170
- " $TOOLS_BUILD_PATH /build-foundation.sh" " $DIST_TOOLCHAIN_SDK " " $WASI_SYSROOT_PATH "
171
- " $TOOLS_BUILD_PATH /build-xctest.sh" " $DIST_TOOLCHAIN_SDK " " $WASI_SYSROOT_PATH "
172
-
173
- }
174
-
175
- embed_wasi_sysroot () {
176
- # Merge wasi-sdk and the toolchain
177
- cp -r " $WASI_SYSROOT_PATH " " $DIST_TOOLCHAIN_SDK /usr/share"
178
- }
179
-
180
- swift_version () {
181
- cat " $SOURCE_PATH /swift/CMakeLists.txt" | grep ' set(SWIFT_VERSION ' | sed -E ' s/set\(SWIFT_VERSION "(.+)"\)/\1/'
182
- }
140
+ rm -rf " $TARGET_TOOLCHAIN_DESTDIR /usr/lib/swift_static/CoreFoundation"
141
+ " $TOOLS_BUILD_PATH /build-foundation.sh" " $TARGET_TOOLCHAIN_DESTDIR " " $WASI_SYSROOT_PATH "
142
+ " $TOOLS_BUILD_PATH /build-xctest.sh" " $TARGET_TOOLCHAIN_DESTDIR " " $WASI_SYSROOT_PATH "
183
143
184
- create_darwin_info_plist () {
185
- echo " -- Create Info.plist --"
186
- PLISTBUDDY_BIN=" /usr/libexec/PlistBuddy"
187
-
188
- BUNDLE_PREFIX=" org.swiftwasm"
189
- DARWIN_TOOLCHAIN_DISPLAY_NAME_SHORT=" Swift for WebAssembly Snapshot"
190
-
191
- if [ ${OPTIONS_DAILY_SNAPSHOT} -eq 1 ]; then
192
- DARWIN_TOOLCHAIN_VERSION=" $( swift_version) .${YEAR}${MONTH}${DAY} "
193
- DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER=" ${BUNDLE_PREFIX} .${YEAR}${MONTH}${DAY} "
194
- DARWIN_TOOLCHAIN_DISPLAY_NAME=" ${DARWIN_TOOLCHAIN_DISPLAY_NAME_SHORT} ${YEAR} -${MONTH} -${DAY} "
195
- else
196
- DARWIN_TOOLCHAIN_VERSION=" $( swift_version) .9999"
197
- DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER=" ${BUNDLE_PREFIX} .dev"
198
- DARWIN_TOOLCHAIN_DISPLAY_NAME=" ${DARWIN_TOOLCHAIN_DISPLAY_NAME_SHORT} Development"
199
- fi
200
- DARWIN_TOOLCHAIN_ALIAS=" swiftwasm"
201
-
202
- DARWIN_TOOLCHAIN_INFO_PLIST=" ${DIST_TOOLCHAIN_SDK} /Info.plist"
203
- DARWIN_TOOLCHAIN_REPORT_URL=" https://github.com/swiftwasm/swift/issues"
204
- COMPATIBILITY_VERSION=2
205
- COMPATIBILITY_VERSION_DISPLAY_STRING=" Xcode 8.0"
206
- DARWIN_TOOLCHAIN_CREATED_DATE=" $( date -u +' %a %b %d %T GMT %Y' ) "
207
- SWIFT_USE_DEVELOPMENT_TOOLCHAIN_RUNTIME=" YES"
208
-
209
- rm -f " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
210
-
211
- ${PLISTBUDDY_BIN} -c " Add DisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
212
- ${PLISTBUDDY_BIN} -c " Add ShortDisplayName string '${DARWIN_TOOLCHAIN_DISPLAY_NAME_SHORT} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
213
- ${PLISTBUDDY_BIN} -c " Add CreatedDate date '${DARWIN_TOOLCHAIN_CREATED_DATE} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
214
- ${PLISTBUDDY_BIN} -c " Add CompatibilityVersion integer ${COMPATIBILITY_VERSION} " " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
215
- ${PLISTBUDDY_BIN} -c " Add CompatibilityVersionDisplayString string ${COMPATIBILITY_VERSION_DISPLAY_STRING} " " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
216
- ${PLISTBUDDY_BIN} -c " Add Version string '${DARWIN_TOOLCHAIN_VERSION} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
217
- ${PLISTBUDDY_BIN} -c " Add CFBundleIdentifier string '${DARWIN_TOOLCHAIN_BUNDLE_IDENTIFIER} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
218
- ${PLISTBUDDY_BIN} -c " Add ReportProblemURL string '${DARWIN_TOOLCHAIN_REPORT_URL} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
219
- ${PLISTBUDDY_BIN} -c " Add Aliases array" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
220
- ${PLISTBUDDY_BIN} -c " Add Aliases:0 string '${DARWIN_TOOLCHAIN_ALIAS} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
221
- ${PLISTBUDDY_BIN} -c " Add OverrideBuildSettings dict" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
222
- ${PLISTBUDDY_BIN} -c " Add OverrideBuildSettings:ENABLE_BITCODE string 'NO'" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
223
- ${PLISTBUDDY_BIN} -c " Add OverrideBuildSettings:SWIFT_DISABLE_REQUIRED_ARCLITE string 'YES'" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
224
- ${PLISTBUDDY_BIN} -c " Add OverrideBuildSettings:SWIFT_LINK_OBJC_RUNTIME string 'YES'" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
225
- ${PLISTBUDDY_BIN} -c " Add OverrideBuildSettings:SWIFT_DEVELOPMENT_TOOLCHAIN string 'YES'" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
226
- ${PLISTBUDDY_BIN} -c " Add OverrideBuildSettings:SWIFT_USE_DEVELOPMENT_TOOLCHAIN_RUNTIME string '${SWIFT_USE_DEVELOPMENT_TOOLCHAIN_RUNTIME} '" " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
227
-
228
- chmod a+r " ${DARWIN_TOOLCHAIN_INFO_PLIST} "
229
144
}
230
145
231
146
show_sccache_stats () {
@@ -245,9 +160,9 @@ if [ ${OPTIONS_BUILD_HOST_TOOLCHAIN} -eq 1 ]; then
245
160
echo " "
246
161
echo " sccache stats:"
247
162
show_sccache_stats
248
- rm -rf " $DIST_TOOLCHAIN_DESTDIR "
249
- mkdir -p " $DIST_TOOLCHAIN_SDK "
250
- rsync -a " $HOST_TOOLCHAIN_DESTDIR /" " $DIST_TOOLCHAIN_SDK "
163
+ rm -rf " $TARGET_TOOLCHAIN_DESTDIR "
164
+ mkdir -p " $TARGET_TOOLCHAIN_DESTDIR "
165
+ rsync -a " $HOST_TOOLCHAIN_DESTDIR /" " $TARGET_TOOLCHAIN_DESTDIR "
251
166
fi
252
167
253
168
build_target_toolchain
@@ -257,13 +172,3 @@ echo "===================================="
257
172
echo " "
258
173
echo " sccache stats:"
259
174
show_sccache_stats
260
-
261
- embed_wasi_sysroot
262
-
263
- if [[ " $( uname) " == " Darwin" ]]; then
264
- create_darwin_info_plist
265
- fi
266
-
267
- cd " $DIST_TOOLCHAIN_DESTDIR "
268
- tar cfz " $PACKAGE_ARTIFACT " " $TOOLCHAIN_NAME "
269
- echo " Toolchain archive created successfully!"
0 commit comments