mirror of
https://github.com/zotero/zotero.git
synced 2026-10-07 02:58:09 +00:00
Some checks failed
CI / Test (shard 1) (push) Has been cancelled
CI / Test (shard 2) (push) Has been cancelled
CI / Test (shard 3) (push) Has been cancelled
CI / Test (shard 4) (push) Has been cancelled
CI / Utilities Tests (push) Has been cancelled
CI / Build, Upload (push) Has been cancelled
app/win/build added the cross-compilation target to whatever toolchain was default before switching to RUST_VERSION, so after a Rust version bump the new toolchain lacked the aarch64/i686 target and the arm and win32 builds failed at configure. Set the default first.
59 lines
1.4 KiB
Bash
59 lines
1.4 KiB
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
APP_ROOT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
. "$APP_ROOT_DIR/config.sh"
|
|
|
|
if [ $# -lt 2 ]; then
|
|
echo "Usage: $0 /path/to/src/firefox x64|arm64|win32" >&2
|
|
exit 1
|
|
fi
|
|
|
|
gecko_path=$1
|
|
arch=$2
|
|
|
|
if [ ! -d "$gecko_path" ]; then
|
|
echo "$gecko_path is not a directory" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Install required Rust version
|
|
rustup toolchain install $RUST_VERSION
|
|
if [ $arch = "x64" ]; then
|
|
rust_target=x86_64
|
|
elif [ $arch = "arm64" ]; then
|
|
rust_target=aarch64
|
|
elif [ $arch = "win32" ]; then
|
|
rust_target=i686
|
|
else
|
|
echo "Unknown architecture $arch" >&2
|
|
exit 1
|
|
fi
|
|
rustup default $RUST_VERSION
|
|
rustup target add $rust_target-pc-windows-msvc
|
|
|
|
cp "$SCRIPT_DIR/mozconfig" "$gecko_path"
|
|
|
|
if [[ $arch == "arm64" || $arch == "win32" ]]; then
|
|
export Z_ARCH=$arch
|
|
export RUST_TARGET=$rust_target-pc-windows-msvc
|
|
fi
|
|
|
|
cd "$gecko_path"
|
|
./mach build
|
|
./mach package
|
|
|
|
# Copy the packaged ZIP back to app/win/ for launcher/xul.dll extraction
|
|
case $arch in
|
|
x64) zip_suffix=win64 ;;
|
|
arm64) zip_suffix=win64-aarch64 ;;
|
|
win32) zip_suffix=win32 ;;
|
|
esac
|
|
zip_file=$(ls "$gecko_path"/obj-*/dist/firefox-*.en-US.${zip_suffix}.zip 2>/dev/null | head -1) || true
|
|
if [ -z "$zip_file" ] || [ ! -f "$zip_file" ]; then
|
|
echo "Could not find packaged zip for $arch in $gecko_path/obj-*/dist/" >&2
|
|
exit 1
|
|
fi
|
|
cp "$zip_file" "$SCRIPT_DIR/"
|
|
echo "Copied $(basename "$zip_file") to $SCRIPT_DIR"
|