Files
OmaPhoto/scripts/appimage.sh
T

29 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Builds omaphoto-x86_64.AppImage inside the AppImage image.
set -euo pipefail
id=io.github.ZacharyZhang_NY.OmaPhoto
cmake -S . -B build-appimage -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \
-DOMAPHOTO_BUNDLE_ORT=ON -DOMAPHOTO_MODEL=/usr/local/share/omaphoto/u2net.onnx
cmake --build build-appimage --target omaphoto
rm -rf AppDir
DESTDIR="$PWD/AppDir" cmake --install build-appimage
# libheif loads its HEVC decoder as a plugin.
mkdir -p AppDir/usr/lib/libheif AppDir/apprun-hooks
cp /usr/lib/x86_64-linux-gnu/libheif/plugins/libheif-libde265.so AppDir/usr/lib/libheif/
cp packaging/appimage/omaphoto.sh AppDir/apprun-hooks/
# Qt's Wayland client needs its shell and decoration plugins.
qtplugins=/usr/lib/x86_64-linux-gnu/qt6/plugins
mkdir -p AppDir/usr/plugins
for dir in wayland-shell-integration wayland-decoration-client wayland-graphics-integration-client; do
cp -r "$qtplugins/$dir" AppDir/usr/plugins/
done
export QMAKE=/usr/lib/qt6/bin/qmake6 APPIMAGE_EXTRACT_AND_RUN=1 OUTPUT=omaphoto-x86_64.AppImage
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so" EXTRA_QT_MODULES=svg
linuxdeploy --appdir AppDir --plugin qt --output appimage \
--desktop-file "AppDir/usr/share/applications/$id.desktop" \
--icon-file "AppDir/usr/share/icons/hicolor/512x512/apps/$id.png" \
--deploy-deps-only AppDir/usr/lib/libheif \
--deploy-deps-only AppDir/usr/plugins/wayland-shell-integration \
--deploy-deps-only AppDir/usr/plugins/wayland-decoration-client \
--deploy-deps-only AppDir/usr/plugins/wayland-graphics-integration-client