86 lines
2.1 KiB
Bash
Executable File
86 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
APP_NAME="SubWave"
|
|
BUILD_DIR="build"
|
|
APPDIR="AppDir"
|
|
DIST_DIR="dist"
|
|
|
|
ICON_SRC_PNG="ico/wavy_png.png"
|
|
ICON_SRC_ICO="ico/wavy_ico.ico"
|
|
|
|
echo "==> Cleaning old build"
|
|
rm -rf "$BUILD_DIR" "$APPDIR" "$DIST_DIR"
|
|
mkdir -p "$DIST_DIR"
|
|
|
|
echo "==> Configuring project"
|
|
cmake -B "$BUILD_DIR" -DCMAKE_BUILD_TYPE=Release
|
|
|
|
echo "==> Building project"
|
|
cmake --build "$BUILD_DIR" -j$(nproc)
|
|
|
|
echo "==> Installing into AppDir"
|
|
cmake --install "$BUILD_DIR" --prefix "$APPDIR/usr"
|
|
|
|
echo "==> Ensuring binary location"
|
|
mkdir -p "$APPDIR/usr/bin"
|
|
|
|
if [ ! -f "$APPDIR/usr/bin/$APP_NAME" ]; then
|
|
cp "$BUILD_DIR/$APP_NAME" "$APPDIR/usr/bin/" || true
|
|
fi
|
|
|
|
echo "==> Creating desktop file (REQUIRED for AppImage)"
|
|
|
|
mkdir -p "$APPDIR/usr/share/applications"
|
|
|
|
cat > "$APPDIR/usr/share/applications/$APP_NAME.desktop" <<EOF
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=SubWave
|
|
Exec=SubWave
|
|
Icon=subwave
|
|
Categories=AudioVideo;Audio;Player;
|
|
Terminal=false
|
|
EOF
|
|
|
|
echo "==> Installing icon"
|
|
|
|
ICON_DEST_DIR="$APPDIR/usr/share/icons/hicolor/256x256/apps"
|
|
mkdir -p "$ICON_DEST_DIR"
|
|
|
|
if [ -f "$ICON_SRC_PNG" ]; then
|
|
cp "$ICON_SRC_PNG" "$ICON_DEST_DIR/subwave.png"
|
|
elif [ -f "$ICON_SRC_ICO" ]; then
|
|
if command -v convert >/dev/null 2>&1; then
|
|
convert "$ICON_SRC_ICO[0]" "$ICON_DEST_DIR/subwave.png"
|
|
else
|
|
echo "WARNING: ImageMagick not installed, copying .ico as fallback"
|
|
cp "$ICON_SRC_ICO" "$ICON_DEST_DIR/subwave.ico"
|
|
fi
|
|
else
|
|
echo "WARNING: No icon found, build will still work but no icon will be shown"
|
|
fi
|
|
|
|
echo "==> Downloading linuxdeploy if needed"
|
|
|
|
if [ ! -f linuxdeploy-x86_64.AppImage ]; then
|
|
wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
|
|
chmod +x linuxdeploy-x86_64.AppImage
|
|
fi
|
|
|
|
echo "==> Building AppImage"
|
|
|
|
export ARCH=x86_64
|
|
|
|
./linuxdeploy-x86_64.AppImage \
|
|
--appdir "$APPDIR" \
|
|
--output appimage
|
|
|
|
echo "==> Moving output"
|
|
mkdir -p "$DIST_DIR"
|
|
mv *.AppImage "$DIST_DIR/$APP_NAME.AppImage"
|
|
|
|
echo "==> DONE"
|
|
echo "Run:"
|
|
echo " chmod +x dist/$APP_NAME.AppImage"
|
|
echo " ./dist/$APP_NAME.AppImage" |