@@ -44,8 +44,8 @@ BUNDLE_IDENTIFIER="swiftwasm.${YEAR}${MONTH}${DAY}"
44
44
DISPLAY_NAME_SHORT=" Swift for WebAssembly Development Snapshot"
45
45
DISPLAY_NAME=" ${DISPLAY_NAME_SHORT} ${YEAR} -${MONTH} -${DAY} "
46
46
47
+ HOST_TOOLCHAIN_DESTDIR=$SOURCE_PATH /host-toolchain-sdk
47
48
DIST_TOOLCHAIN_DESTDIR=$SOURCE_PATH /dist-toolchain-sdk
48
-
49
49
DIST_TOOLCHAIN_SDK=$DIST_TOOLCHAIN_DESTDIR /$TOOLCHAIN_NAME
50
50
51
51
@@ -60,22 +60,26 @@ build_host_toolchain() {
60
60
--preset-file=" $UTILS_PATH /build-presets.ini" \
61
61
--preset=$HOST_PRESET \
62
62
--build-dir=" $HOST_BUILD_DIR " \
63
- INSTALL_DESTDIR=" $DIST_TOOLCHAIN_DESTDIR " \
63
+ INSTALL_DESTDIR=" $HOST_TOOLCHAIN_DESTDIR " \
64
64
TOOLCHAIN_NAME=" $TOOLCHAIN_NAME " \
65
65
C_CXX_LAUNCHER=" $( which sccache) "
66
66
}
67
67
68
68
build_target_toolchain () {
69
+ rm -rf " $DIST_TOOLCHAIN_DESTDIR "
70
+ cp -r " $HOST_TOOLCHAIN_DESTDIR " " $DIST_TOOLCHAIN_DESTDIR "
69
71
70
72
COMPILER_RT_BUILD_DIR=" $TARGET_BUILD_ROOT /compiler-rt-wasi-wasm32"
71
73
cmake -B " $COMPILER_RT_BUILD_DIR " \
72
74
-D CMAKE_TOOLCHAIN_FILE=" $SOURCE_PATH /swift/utils/webassembly/compiler-rt-cache.cmake" \
73
75
-D CMAKE_BUILD_TYPE=Release \
74
76
-D CMAKE_C_COMPILER=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/clang" \
75
77
-D CMAKE_CXX_COMPILER=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/clang++" \
76
- -D CMAKE_C_COMPILER_LAUNCHER=sccache \
77
- -D CMAKE_CXX_COMPILER_LAUNCHER=sccache \
78
- -D CMAKE_INSTALL_PREFIX=" $DIST_TOOLCHAIN_SDK /usr" \
78
+ -D CMAKE_RANLIB=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/llvm-ranlib" \
79
+ -D CMAKE_AR=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/llvm-ar" \
80
+ -D CMAKE_C_COMPILER_LAUNCHER=" $( which sccache) " \
81
+ -D CMAKE_CXX_COMPILER_LAUNCHER=" $( which sccache) " \
82
+ -D CMAKE_INSTALL_PREFIX=" $DIST_TOOLCHAIN_SDK /usr/lib/clang/10.0.0/" \
79
83
-D COMPILER_RT_SWIFT_WASI_SDK_PATH=" $WASI_SDK_PATH " \
80
84
-G Ninja \
81
85
-S ../llvm-project/compiler-rt
@@ -88,6 +92,8 @@ build_target_toolchain() {
88
92
-D CMAKE_BUILD_TYPE=Release \
89
93
-D CMAKE_C_COMPILER=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/clang" \
90
94
-D CMAKE_CXX_COMPILER=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/clang++" \
95
+ -D CMAKE_RANLIB=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/llvm-ranlib" \
96
+ -D CMAKE_AR=" $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/llvm-ar" \
91
97
-D CMAKE_C_COMPILER_LAUNCHER=" $( which sccache) " \
92
98
-D CMAKE_CXX_COMPILER_LAUNCHER=" $( which sccache) " \
93
99
-D CMAKE_INSTALL_PREFIX=" $DIST_TOOLCHAIN_SDK /usr" \
@@ -99,12 +105,20 @@ build_target_toolchain() {
99
105
100
106
ninja install -C " $SWIFT_STDLIB_BUILD_DIR "
101
107
108
+ # Copy tool binaries in target build dir to test stdlib
109
+ rsync -a " $HOST_BUILD_DIR /llvm-$HOST_SUFFIX /bin/" " $SWIFT_STDLIB_BUILD_DIR /bin/"
110
+ rsync -a " $HOST_BUILD_DIR /swift-$HOST_SUFFIX /bin/" " $SWIFT_STDLIB_BUILD_DIR /bin/"
111
+
112
+ # Link compiler-rt libs to stdlib build dir
113
+ mkdir -p " $SWIFT_STDLIB_BUILD_DIR /lib/clang/10.0.0/"
114
+ ln -fs " $COMPILER_RT_BUILD_DIR /lib" " $SWIFT_STDLIB_BUILD_DIR /lib/clang/10.0.0/lib"
115
+
102
116
" $UTILS_PATH /build-foundation.sh" " $DIST_TOOLCHAIN_SDK "
103
117
" $UTILS_PATH /build-xctest.sh" " $DIST_TOOLCHAIN_SDK "
104
118
105
119
}
106
120
107
- merge_toolchains () {
121
+ embed_wasi_sysroot () {
108
122
# Merge wasi-sdk and the toolchain
109
123
cp -r " $WASI_SDK_PATH /share/wasi-sysroot" " $DIST_TOOLCHAIN_SDK /usr/share"
110
124
@@ -158,7 +172,7 @@ create_darwin_info_plist() {
158
172
build_host_toolchain
159
173
build_target_toolchain
160
174
161
- merge_toolchains
175
+ embed_wasi_sysroot
162
176
163
177
if [[ " $( uname) " == " Darwin" ]]; then
164
178
create_darwin_info_plist
0 commit comments