2020-06-25 00:50:24 -05:00
|
|
|
#!/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=""
|
2020-06-28 17:33:04 -05:00
|
|
|
|
|
|
|
LINUXDEPLOY_PATH="https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous"
|
2020-06-24 23:41:30 -05:00
|
|
|
LINUXDEPLOY_FILE="linuxdeploy-x86_64.AppImage"
|
2020-06-28 17:33:04 -05:00
|
|
|
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
|
|
|
|
2020-06-28 17:33:04 -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
|
2023-08-10 20:45:52 -07:00
|
|
|
|
2020-06-28 17:33:04 -05:00
|
|
|
# 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
|
2020-06-28 17:33:04 -05:00
|
|
|
fi
|
2020-06-29 21:03:09 -05:00
|
|
|
if [ ! -e ./Tools/linuxdeploy-update-plugin ]; then
|
|
|
|
wget ${UPDATEPLUG_URL} -O ./Tools/linuxdeploy-update-plugin
|
2020-06-28 17:33:04 -05:00
|
|
|
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
|
|
|
|
|
2021-06-26 20:18:21 -04:00
|
|
|
chmod +x ./Tools/linuxdeploy
|
|
|
|
chmod +x ./Tools/linuxdeploy-update-plugin
|
|
|
|
chmod +x ./Tools/appimageupdatetool
|
|
|
|
|
2020-07-16 20:53:22 -04:00
|
|
|
# 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-12 17:24:14 -07:00
|
|
|
|
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*
|
|
|
|
|
2025-06-28 14:50:53 -05:00
|
|
|
# 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
|