aboutsummaryrefslogtreecommitdiff
path: root/scripts/build_appimage.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build_appimage.sh')
-rwxr-xr-xscripts/build_appimage.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/build_appimage.sh b/scripts/build_appimage.sh
new file mode 100755
index 0000000..d39f506
--- /dev/null
+++ b/scripts/build_appimage.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+container_image_prefix=$1
+distro=$2
+app_name=$3
+arch=$4
+channel=$5
+linuxdeploy=$6
+
+version=`just version`
+staging="$(mktemp -d)"
+
+just dist
+tar -xJf "_build/meson-dist/map-${version}.tar.xz" -C "${staging}/"
+cp ${linuxdeploy} "${staging}/linuxdeploy.AppImage"
+
+podman run --rm -v "${staging}:/build:Z" \
+ ${container_image_prefix}:${distro} \
+ bash -c "
+ cd /build/map-${version}
+ meson setup --prefix=/usr _build
+ meson compile -C _build
+ DESTDIR=/build/appdir meson install -C _build
+ cd /build
+ APPIMAGE_EXTRACT_AND_RUN=1 NO_STRIP=true /build/linuxdeploy.AppImage \
+ --appdir=/build/appdir --output=appimage \
+ --desktop-file=/build/appdir/usr/share/applications/systems.tranquil.Map.desktop \
+ --icon-file=/build/appdir/usr/share/icons/hicolor/scalable/apps/systems.tranquil.Map.svg
+ mkdir -p /build/out
+ mv /build/Map*.AppImage /build/out/
+ "
+
+mkdir -p dist
+mv ${staging}/out/*.AppImage "dist/${app_name}-${arch}-${channel}.AppImage"
+rm -rf "${staging}"