diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-12-10 14:34:42 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-12-10 14:34:42 +0100 |
| commit | c5089569e507c4485ef2916a40cb635d47abd1f3 (patch) | |
| tree | 59181f75207d1c9fa8f92954226426fa7d238136 /desktop/scripts | |
| parent | 06b9a755512361ab16a9e8dcd6759108888a88e2 (diff) | |
| parent | bc3dc7b43385645e3f2e37eb3849bf36e928d53e (diff) | |
| download | mullvadvpn-c5089569e507c4485ef2916a40cb635d47abd1f3.tar.xz mullvadvpn-c5089569e507c4485ef2916a40cb635d47abd1f3.zip | |
Merge branch 'win-universal-arch-installer'
Diffstat (limited to 'desktop/scripts')
| -rw-r--r-- | desktop/scripts/pack-universal-win.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/desktop/scripts/pack-universal-win.sh b/desktop/scripts/pack-universal-win.sh new file mode 100644 index 0000000000..b3144f27dd --- /dev/null +++ b/desktop/scripts/pack-universal-win.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +# shellcheck shell=bash +# Build universal installer for both ARM and x64. + +set -eu + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$SCRIPT_DIR/../.." + +CARGO_TARGET_DIR=${CARGO_TARGET_DIR:-"target"} + +# If enabled, build in release mode with optimizations enabled +OPTIMIZE="false" + +source scripts/utils/log + +echo "Computing build version..." +PRODUCT_VERSION=$(cargo run -q --bin mullvad-version) +log_header "Building universal Windows installer for Mullvad VPN $PRODUCT_VERSION" + +while [[ "$#" -gt 0 ]]; do + case $1 in + --x64-installer) + export WIN_X64_INSTALLER="$2" + shift 2 + ;; + --arm64-installer) + export WIN_ARM64_INSTALLER="$2" + shift 2 + ;; + --optimize) + OPTIMIZE="true" + shift + ;; + *) + log_error "Unknown argument: $1" + exit 1 + ;; + esac +done + +CARGO_ARGS=() + +if [[ "$OPTIMIZE" == "true" ]]; then + CARGO_ARGS+=(--release) + RUST_BUILD_MODE="release" +else + RUST_BUILD_MODE="debug" +fi + +if [[ "$OPTIMIZE" == "true" && "$PRODUCT_VERSION" != *"-dev-"* ]]; then + CARGO_ARGS+=(--locked) +fi + +if [[ -z ${WIN_X64_INSTALLER-} ]] || [[ -z ${WIN_ARM64_INSTALLER-} ]]; then + log_error "Must provide --x64-installer and --arm64-installer" + exit 1 +fi + +cargo build "${CARGO_ARGS[@]}" -p windows-installer --target x86_64-pc-windows-msvc + +dest="dist/MullvadVPN-${PRODUCT_VERSION}.exe" + +cp "$CARGO_TARGET_DIR/x86_64-pc-windows-msvc/${RUST_BUILD_MODE}/windows-installer.exe" "$dest" + +log_success "Built universal installer: $dest" |
