1
- # /bin/bash
1
+ #! /bin/bash
2
2
3
3
set -ex
4
- SOURCE_PATH=" $( cd " $( dirname $0 ) /../../.." && pwd) "
5
- UTILS_PATH=" $( cd " $( dirname $0 ) " && pwd) "
4
+ SOURCE_PATH=" $( cd " $( dirname " $0 " ) /../../.." && pwd) "
5
+ UTILS_PATH=" $( cd " $( dirname " $0 " ) " && pwd) "
6
6
7
7
WASI_SDK_PATH=$SOURCE_PATH /wasi-sdk
8
8
9
9
case $( uname -s) in
10
10
Darwin)
11
11
OS_SUFFIX=osx
12
- HOST_PRESET=webassembly-host
13
- TARGET_PRESET=webassembly-macos-target
12
+ HOST_PRESET=webassembly-host-install
13
+ TARGET_PRESET=webassembly-macos-target-install
14
14
HOST_SUFFIX=macosx-x86_64
15
15
;;
16
16
Linux)
17
- if [ $( grep RELEASE /etc/lsb-release) == " DISTRIB_RELEASE=18.04" ]; then
17
+ if [ " $( grep RELEASE /etc/lsb-release) " == " DISTRIB_RELEASE=18.04" ]; then
18
18
OS_SUFFIX=ubuntu18.04
19
- elif [ $( grep RELEASE /etc/lsb-release) == " DISTRIB_RELEASE=20.04" ]; then
19
+ elif [ " $( grep RELEASE /etc/lsb-release) " == " DISTRIB_RELEASE=20.04" ]; then
20
20
OS_SUFFIX=ubuntu20.04
21
21
else
22
22
echo " Unknown Ubuntu version"
23
23
exit 1
24
24
fi
25
- HOST_PRESET=webassembly-linux-host
26
- TARGET_PRESET=webassembly-linux-target
25
+ HOST_PRESET=webassembly-linux-host-install
26
+ TARGET_PRESET=webassembly-linux-target-install
27
27
HOST_SUFFIX=linux-x86_64
28
28
;;
29
29
* )
@@ -37,7 +37,6 @@ MONTH=$(date +"%m")
37
37
DAY=$( date +" %d" )
38
38
TOOLCHAIN_VERSION=" ${YEAR}${MONTH}${DAY} "
39
39
TOOLCHAIN_NAME=" swift-wasm-DEVELOPMENT-SNAPSHOT-${YEAR} -${MONTH} -${DAY} -a"
40
- ARCHIVE=" ${TOOLCHAIN_NAME} -${OS_SUFFIX} .tar.gz"
41
40
42
41
PACKAGE_ARTIFACT=" $SOURCE_PATH /swift-wasm-DEVELOPMENT-SNAPSHOT-${OS_SUFFIX} .tar.gz"
43
42
@@ -60,12 +59,13 @@ HOST_BUILD_DIR=$HOST_BUILD_ROOT/Ninja-Release
60
59
TARGET_BUILD_DIR=$TARGET_BUILD_ROOT /Ninja-Release
61
60
62
61
# Avoid clang headers symlink issues
63
- mkdir -p $HOST_TOOLCHAIN_SDK /usr/lib/clang/10.0.0
62
+ mkdir -p " $HOST_TOOLCHAIN_SDK /usr/lib/clang/10.0.0"
64
63
65
64
build_host_toolchain () {
66
65
# Build the host toolchain and SDK first.
67
66
env SWIFT_BUILD_ROOT=" $HOST_BUILD_ROOT " \
68
- $SOURCE_PATH /swift/utils/build-script \
67
+ " $SOURCE_PATH /swift/utils/build-script" \
68
+ --preset-file=" $UTILS_PATH /build-presets.ini" \
69
69
--preset=$HOST_PRESET \
70
70
--build-dir=" $HOST_BUILD_DIR " \
71
71
INSTALL_DESTDIR=" $HOST_TOOLCHAIN_DESTDIR " \
@@ -74,7 +74,7 @@ build_host_toolchain() {
74
74
}
75
75
76
76
build_target_toolchain () {
77
- mkdir -p $HOST_BUILD_DIR /
77
+ mkdir -p " $HOST_BUILD_DIR /"
78
78
# Copy the host build dir to reuse it.
79
79
if [[ ! -e " $HOST_BUILD_DIR /llvm-$HOST_SUFFIX " ]]; then
80
80
cp -r " $HOST_BUILD_DIR /llvm-$HOST_SUFFIX " " $TARGET_BUILD_DIR /llvm-$HOST_SUFFIX "
@@ -84,8 +84,9 @@ build_target_toolchain() {
84
84
85
85
# build the cross-compilled toolchain
86
86
env SWIFT_BUILD_ROOT=" $TARGET_BUILD_ROOT " \
87
- $SOURCE_PATH /swift/utils/build-script \
88
- --preset=$TARGET_PRESET --reconfigure \
87
+ " $SOURCE_PATH /swift/utils/build-script" \
88
+ --preset-file=" $UTILS_PATH /build-presets.ini" \
89
+ --preset=$TARGET_PRESET \
89
90
--build-dir=" $TARGET_BUILD_DIR " \
90
91
INSTALL_DESTDIR=" $TARGET_TOOLCHAIN_DESTDIR " \
91
92
SOURCE_PATH=" $SOURCE_PATH " \
@@ -94,11 +95,11 @@ build_target_toolchain() {
94
95
DISPLAY_NAME_SHORT=" ${DISPLAY_NAME_SHORT} " \
95
96
TOOLCHAIN_NAME=" ${TOOLCHAIN_NAME} " \
96
97
TOOLCHAIN_VERSION=" ${TOOLCHAIN_VERSION} " \
97
- TOOLS_BIN_DIR =" ${HOST_TOOLCHAIN_SDK} /usr/bin" \
98
+ LLVM_BIN_DIR =" ${HOST_TOOLCHAIN_SDK} /usr/bin" \
98
99
C_CXX_LAUNCHER=" $( which sccache) "
99
100
100
- $UTILS_PATH /build-foundation.sh $TARGET_TOOLCHAIN_SDK
101
- $UTILS_PATH /build-xctest.sh $TARGET_TOOLCHAIN_SDK
101
+ " $UTILS_PATH /build-foundation.sh" " $TARGET_TOOLCHAIN_SDK "
102
+ " $UTILS_PATH /build-xctest.sh" " $TARGET_TOOLCHAIN_SDK "
102
103
103
104
}
104
105
@@ -108,22 +109,22 @@ merge_toolchains() {
108
109
cp -r " $HOST_TOOLCHAIN_DESTDIR " " $DIST_TOOLCHAIN_DESTDIR "
109
110
110
111
# Merge wasi-sdk and the toolchain
111
- cp -r $WASI_SDK_PATH /share/wasi-sysroot $DIST_TOOLCHAIN_SDK /usr/share
112
+ cp -r " $WASI_SDK_PATH /share/wasi-sysroot" " $DIST_TOOLCHAIN_SDK /usr/share"
112
113
113
114
# Copy the target environment stdlib into the toolchain
114
115
# Avoid copying usr/lib/swift/clang because our toolchain's one is a directory
115
116
# but nightly's one is symbolic link. A simple copy fails to merge them.
116
- rsync -v -a $TARGET_TOOLCHAIN_SDK /usr/lib/ $DIST_TOOLCHAIN_SDK /usr/lib/ --exclude ' swift/clang'
117
- rsync -v -a $TARGET_TOOLCHAIN_SDK /usr/bin/ $DIST_TOOLCHAIN_SDK /usr/bin/
117
+ rsync -v -a " $TARGET_TOOLCHAIN_SDK /usr/lib/" " $DIST_TOOLCHAIN_SDK /usr/lib/" --exclude ' swift/clang'
118
+ rsync -v -a " $TARGET_TOOLCHAIN_SDK /usr/bin/" " $DIST_TOOLCHAIN_SDK /usr/bin/"
118
119
119
120
# Replace absolute sysroot path with relative path
120
- sed -i -e " s@\" .*/include@\" ../../../../share/wasi-sysroot/include@g" $DIST_TOOLCHAIN_SDK /usr/lib/swift/wasi/wasm32/wasi.modulemap
121
+ sed -i -e " s@\" .*/include@\" ../../../../share/wasi-sysroot/include@g" " $DIST_TOOLCHAIN_SDK /usr/lib/swift/wasi/wasm32/wasi.modulemap"
121
122
}
122
123
123
124
build_host_toolchain
124
125
build_target_toolchain
125
126
126
127
merge_toolchains
127
128
128
- cd $DIST_TOOLCHAIN_DESTDIR
129
- tar cfz $PACKAGE_ARTIFACT $TOOLCHAIN_NAME
129
+ cd " $DIST_TOOLCHAIN_DESTDIR "
130
+ tar cfz " $PACKAGE_ARTIFACT " " $TOOLCHAIN_NAME "
0 commit comments