Skip to content
This repository was archived by the owner on Nov 19, 2019. It is now read-only.

Commit 84a57b2

Browse files
committed
Create swiftwasm wrapper compile script
1 parent 918ba98 commit 84a57b2

File tree

3 files changed

+44
-2
lines changed

3 files changed

+44
-2
lines changed

macos/unpackPrebuilts.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ tar xf ../../prebuilt/swiftwasm.tar.gz
2020
cd ..
2121
mv "compiler/wasi-sdk-"* "compiler/wasi-sdk"
2222
bash ../remove-swift-extra-files.sh || true
23-
rm -r compiler/wasi-sdk/opt/wasi-sdk/bin compiler/wasi-sdk/opt/wasi-sdk/lib
23+
rm -r compiler/wasi-sdk/opt/wasi-sdk/bin
2424
mkdir compiler/wasi-sdk/opt/wasi-sdk/bin
2525
cp tmpdir/clang+llvm-8.0.0-x86_64-apple-darwin/bin/wasm-ld compiler/wasi-sdk/opt/wasi-sdk/bin
2626
cp -a tmpdir/opt/swiftwasm-sdk/lib/swift/wasm compiler/opt/swiftwasm-sdk/lib/swift/wasm

sdkroot/extra_utils/generateModulemap.sh

100644100755
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
#!/bin/sh
2-
exec sed -e "s@\"/include@\"$1/include@g" glibc.modulemap
2+
exec sed -e "s@\"/include@\"$1/include@g" "$(dirname $0)/glibc.modulemap"

sdkroot/swiftwasm

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash
2+
set -e
3+
4+
if [ "$#" -lt 2 ]
5+
then
6+
echo "usage: swiftwasm file1.swift file2.swift.... output.wasm"
7+
exit 1
8+
fi
9+
sdk="$(dirname $0)"
10+
echo "$sdk"
11+
tmpobj="$(mktemp -t swiftwasm)"
12+
outputfile="${@: -1}"
13+
if [[ "$outputfile" != *.wasm ]]
14+
then
15+
echo "output should end in .wasm"
16+
exit 1
17+
fi
18+
sysroot="$(dirname $0)/wasi-sdk/opt/wasi-sdk/share/sysroot"
19+
20+
"$sdk/extra_utils/generateModuleMap.sh" >"$sdk/opt/swiftwasm-sdk/lib/swift/wasm/wasm32/glibc.modulemap"
21+
22+
"$sdk/opt/swiftwasm-sdk/bin/swiftc" -target wasm32-unknown-unknown-wasm \
23+
-sdk "$sysroot" -O -c \
24+
-o "$tmpobj" \
25+
"${@:1:$#-1}"
26+
"$sdk/wasi-sdk/opt/wasi-sdk/bin/wasm-ld" --error-limit=0 -o "$outputfile" \
27+
"$sysroot/lib/wasm32-wasi/crt1.o" \
28+
"$sdk/extra_objs/swift_start.o" \
29+
"$sdk/opt/swiftwasm-sdk/lib/swift_static/wasm/wasm32/swiftrt.o" \
30+
"$tmpobj" \
31+
"-L$sdk/opt/swiftwasm-sdk/lib/swift_static/wasm" \
32+
"-L$sysroot/lib/wasm32-wasi" \
33+
"-L$sdk/icu_out/lib" \
34+
-lswiftCore \
35+
-lc -lc++ -lc++abi -lswiftImageInspectionShared \
36+
-licuuc -licudata \
37+
"$sdk/wasi-sdk/opt/wasi-sdk/lib/clang/8.0.0/lib/wasi/libclang_rt.builtins-wasm32.a" \
38+
"$sdk/extra_objs/fakepthread.o" \
39+
"$sdk/extra_objs/fakelocaltime.o" \
40+
"$sdk/extra_objs/swift_end.o" \
41+
--no-gc-sections
42+
rm "$tmpobj"

0 commit comments

Comments
 (0)