forked from sheetjs/docs.sheetjs.com
67 lines
2.4 KiB
Bash
67 lines
2.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# https://docs.sheetjs.com/docs/demos/engines/jsc#c
|
||
|
|
|
||
|
|
OS="$(uname -s)"
|
||
|
|
ARCH="$(uname -m)"
|
||
|
|
|
||
|
|
case "$OS" in
|
||
|
|
Darwin|Linux) ;;
|
||
|
|
*) echo "unsupported OS: $OS"; exit 1 ;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
cd /tmp
|
||
|
|
# rm -rf sheetjs-jsc
|
||
|
|
mkdir -p sheetjs-jsc
|
||
|
|
cd sheetjs-jsc
|
||
|
|
|
||
|
|
if [[ ! -d "WebKit" ]]; then git clone https://github.com/WebKit/WebKit.git WebKit; fi
|
||
|
|
|
||
|
|
cd WebKit
|
||
|
|
git checkout "WebKit-7623.1.14.14.11"
|
||
|
|
cd ..
|
||
|
|
|
||
|
|
cd WebKit
|
||
|
|
|
||
|
|
case "$OS" in
|
||
|
|
Darwin)
|
||
|
|
# NOTE: this was needed in WebKit-7623.1.14.14.11
|
||
|
|
perl -0777 -i -pe 's/#if HAVE\(MACH_EXCEPTIONS\).*?#endif\n*/\n/gs' "Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp"
|
||
|
|
|
||
|
|
env CFLAGS="-Wno-error=all -Wno-deprecated-declarations -Wno-unused-parameter" \
|
||
|
|
CXXFLAGS="-Wno-error=all -Wno-deprecated-declarations -Wno-unused-parameter" \
|
||
|
|
LDFLAGS="-framework Foundation" \
|
||
|
|
Tools/Scripts/build-webkit --jsc-only \
|
||
|
|
--cmakeargs="-Wno-error=all -DENABLE_STATIC_JSC=ON -DCMAKE_C_FLAGS=\"-Wno-error=all -Wno-deprecated-declarations -Wno-unused-parameter\" -DCMAKE_CXX_FLAGS=\"-Wno-error=all -Wno-deprecated-declarations -Wno-unused-parameter\"" \
|
||
|
|
--make-args="-Wno-error=all -Wno-deprecated-declarations -Wno-unused-parameter" \
|
||
|
|
--no-jit \
|
||
|
|
--no-webassembly
|
||
|
|
;;
|
||
|
|
Linux)
|
||
|
|
env CFLAGS="-Wno-error=all -Wno-error=volatile-register-var -Wno-dangling-reference" \
|
||
|
|
CXXFLAGS="-Wno-error=all -Wno-error=volatile-register-var -Wno-dangling-reference" \
|
||
|
|
Tools/Scripts/build-webkit --jsc-only \
|
||
|
|
--cmakeargs="-Wno-error=all -Wno-error=volatile-register-var -DENABLE_STATIC_JSC=ON -DUSE_THIN_ARCHIVES=OFF" \
|
||
|
|
--make-args="-j1 -Wno-error=all -Wno-error=volatile-register-var" \
|
||
|
|
-j1 \
|
||
|
|
--no-jit \
|
||
|
|
--no-webassembly
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
cd ..
|
||
|
|
|
||
|
|
ln -sfn WebKit/WebKitBuild/JSCOnly/Release Release
|
||
|
|
|
||
|
|
curl -LO https://docs.sheetjs.com/jsc/sheetjs-jsc.c
|
||
|
|
|
||
|
|
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js
|
||
|
|
curl -LO https://docs.sheetjs.com/pres.numbers
|
||
|
|
|
||
|
|
case "$OS" in
|
||
|
|
Darwin) g++ -o sheetjs-jsc sheetjs-jsc.c -IRelease/JavaScriptCore/Headers -LRelease/lib -lbmalloc -licucore -lWTF -lJavaScriptCore -IRelease/JavaScriptCore/Headers -framework Foundation ;;
|
||
|
|
Linux) g++ -o sheetjs-jsc sheetjs-jsc.c -IRelease/JavaScriptCore/Headers -LRelease/lib -lJavaScriptCore -lWTF -lbmalloc -licui18n -licuuc -latomic -IRelease/JavaScriptCore/Headers ;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
./sheetjs-jsc pres.numbers
|
||
|
|
npx -y xlsx-cli sheetjsw.xlsb
|