#!/bin/sh
set -eu
export NPROC=2 PERL_VERSION=5.42.0 EXIFTOOL_VERSION=13.42 BUILD_EXIFTOOL=true TRIM=false STACK_SIZE=8388608 INITIAL_MEMORY=41943040 ASYNCIFY=true
export REPO_DIR=/build/repo NATIVE_DIR=/build/native WASM_DIR=/build/wasm WASI_SDK_PATH=/opt/wasi-sdk
mkdir -p /build /opt/wasi-sdk /opt/binaryen /zeroperl /work/artifacts /work/logs
cp -a /work/stage/zeroperl-source/zeroperl-* /build/repo
cp /work/patched-recipe/*.sh /build/repo/pipeline/
cp -a /work/stage/wasi-sdk-27.0-arm64-linux/wasi-sdk-*/* /opt/wasi-sdk/
cp -a /work/stage/binaryen-version_124-aarch64-linux/binaryen-*/* /opt/binaryen/
export PATH=/opt/binaryen/bin:$PATH
find /opt/wasi-sdk/share/wasi-sysroot/ -name setjmp.h -delete
chmod +x /build/repo/wasi-bin/* /build/repo/pipeline/*.sh
mkdir -p /build/repo/gen
for stage in build-wasi-libs build-native-perl build-exiftool;do echo "START $stage";sh "/build/repo/pipeline/$stage.sh" > "/work/logs/$stage.log" 2>&1;echo "PASS $stage";done
mv /opt/binaryen/bin/wasm-opt /opt/binaryen/bin/wasm-opt-real
cp /build/repo/tools/wasm-opt /opt/binaryen/bin/wasm-opt
chmod +x /opt/binaryen/bin/wasm-opt
sh /build/repo/pipeline/build-wasi-perl.sh > /work/logs/build-wasi-perl.log 2>&1
mv /opt/binaryen/bin/wasm-opt-real /opt/binaryen/bin/wasm-opt
echo 'PASS build-wasi-perl'
sh /build/repo/pipeline/prepare-prefix.sh > /work/logs/prepare-prefix.log 2>&1
echo 'PASS prepare-prefix'
sh /build/repo/pipeline/build-wasm.sh > /work/logs/build-wasm.log 2>&1
echo 'PASS build-wasm'
cp /build/wasm/zeroperl.wasm /build/wasm/zeroperl_reactor.wasm /build/wasm/config.h /work/artifacts/
cp /build/repo/exiftool.min.pl /work/artifacts/
cp /build/wasm/ext.libs /work/artifacts/
find /zeroperl -type f -print > /work/artifacts/embedded-file-inventory.txt
sha256sum /work/artifacts/* > /work/artifacts/artifact-sha256.txt
