Files
Ishiiruka/build-appimage.sh

99 lines
3.2 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash -e
2021-01-18 12:19:19 -08:00
# build-appimage.sh
2020-06-24 23:41:30 -05:00
2022-01-18 15:09:04 -08:00
NETPLAY_ZSYNC_STRING="gh-releases-zsync|project-slippi|Ishiiruka|latest|Slippi_Online-x86_64.AppImage.zsync"
PLAYBACK_ZSYNC_STRING="gh-releases-zsync|project-slippi|Ishiiruka-Playback|latest|Slippi_Playback-x86_64.AppImage.zsync"
2020-07-23 01:56:21 -07:00
NETPLAY_APPIMAGE_STRING="Slippi_Online-x86_64.AppImage"
2020-07-15 19:47:21 -07:00
PLAYBACK_APPIMAGE_STRING="Slippi_Playback-x86_64.AppImage"
2022-01-18 15:09:04 -08:00
OUTPUT="${NETPLAY_APPIMAGE_STRING}"
UPDATE_INFORMATION=""
LINUXDEPLOY_PATH="https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous"
2020-06-24 23:41:30 -05:00
LINUXDEPLOY_FILE="linuxdeploy-x86_64.AppImage"
LINUXDEPLOY_URL="${LINUXDEPLOY_PATH}/${LINUXDEPLOY_FILE}"
UPDATEPLUG_PATH="https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous"
UPDATEPLUG_FILE="linuxdeploy-plugin-appimage-x86_64.AppImage"
UPDATEPLUG_URL="${UPDATEPLUG_PATH}/${UPDATEPLUG_FILE}"
2020-06-24 23:41:30 -05:00
UPDATETOOL_PATH="https://github.com/AppImage/AppImageUpdate/releases/download/continuous"
UPDATETOOL_FILE="appimageupdatetool-x86_64.AppImage"
UPDATETOOL_URL="${UPDATETOOL_PATH}/${UPDATETOOL_FILE}"
2021-06-26 14:29:52 -07:00
PLAYBACK_CODES_PATH="./Data/PlaybackGeckoCodes/"
2020-07-15 19:47:21 -07:00
APPDIR_BIN="./AppDir/usr/bin"
2021-01-18 12:19:19 -08:00
APPDIR_HOOKS="./AppDir/apprun-hooks"
2020-07-15 19:47:21 -07:00
2023-08-13 22:42:37 -07:00
export NO_STRIP=on
# Grab various appimage binaries from GitHub if we don't have them
2020-06-29 21:03:09 -05:00
if [ ! -e ./Tools/linuxdeploy ]; then
wget ${LINUXDEPLOY_URL} -O ./Tools/linuxdeploy
fi
2020-06-29 21:03:09 -05:00
if [ ! -e ./Tools/linuxdeploy-update-plugin ]; then
wget ${UPDATEPLUG_URL} -O ./Tools/linuxdeploy-update-plugin
fi
2020-06-29 21:03:09 -05:00
if [ ! -e ./Tools/appimageupdatetool ]; then
2020-07-23 01:56:21 -07:00
wget ${UPDATETOOL_URL} -O ./Tools/appimageupdatetool
2020-06-24 23:41:30 -05:00
fi
chmod +x ./Tools/linuxdeploy
chmod +x ./Tools/linuxdeploy-update-plugin
chmod +x ./Tools/appimageupdatetool
# Delete the AppDir folder to prevent build issues
rm -rf ./AppDir/
2021-01-18 12:19:19 -08:00
# Add the linux-env script to the AppDir prior to running linuxdeploy
mkdir -p ${APPDIR_HOOKS}
cp Data/linux-env.sh ${APPDIR_HOOKS}
2020-06-24 23:41:30 -05:00
# Build the AppDir directory for this image
2020-06-27 11:21:43 -05:00
mkdir -p AppDir
2020-06-29 21:03:09 -05:00
./Tools/linuxdeploy \
2020-06-24 23:41:30 -05:00
--appdir=./AppDir \
-e ./build/Binaries/dolphin-emu \
-d ./Data/slippi-online.desktop \
-i ./Data/dolphin-emu.png
2020-07-15 19:47:21 -07:00
# Add the Sys dir to the AppDir for packaging
cp -r Data/Sys ${APPDIR_BIN}
2020-07-15 19:47:21 -07:00
# Build type
2021-01-18 12:19:19 -08:00
if [ "$1" == "playback" ] # Playback
2020-07-15 19:47:21 -07:00
then
echo "Using Playback build config"
2022-01-18 15:09:04 -08:00
OUTPUT="${PLAYBACK_APPIMAGE_STRING}"
UPDATE_INFORMATION="${PLAYBACK_ZSYNC_STRING}" # this is just to make linuxdeploy-update-plugin not complain
2020-07-23 01:56:21 -07:00
rm -f ${PLAYBACK_APPIMAGE_STRING}
2020-07-15 19:47:21 -07:00
# Update Sys dir with playback codes
2021-06-26 14:29:52 -07:00
echo "Copying Playback gecko codes"
rm -rf "${APPDIR_BIN}/Sys/GameSettings" # Delete netplay codes
cp -r "${PLAYBACK_CODES_PATH}/." "${APPDIR_BIN}/Sys/GameSettings/"
2021-01-18 12:19:19 -08:00
else
echo "Using Netplay build config"
2021-01-19 13:57:29 -08:00
# remove existing appimage just in case
2021-01-18 12:19:19 -08:00
rm -f ${NETPLAY_APPIMAGE_STRING}
# Package up the update tool within the AppImage
cp ./Tools/appimageupdatetool ./AppDir/usr/bin/
2022-01-18 15:09:04 -08:00
# Set update metadata
UPDATE_INFORMATION="${NETPLAY_ZSYNC_STRING}"
2020-07-15 19:47:21 -07:00
fi
2022-01-18 15:09:04 -08:00
# remomve libs that will cause conflicts
rm ./AppDir/usr/lib/libgmodule*
# Remove librsvg2, which causes a crash on fedora 41+ systems
rm ./AppDir/usr/lib/librsvg-2.so.2
2022-01-18 15:09:04 -08:00
# Bake appimage
2023-08-13 22:42:37 -07:00
UPDATE_INFORMATION="${UPDATE_INFORMATION}" OUTPUT="${OUTPUT}" ./Tools/linuxdeploy-update-plugin --appdir=./AppDir/
unset NO_STRIP