2020-04-07 04:53:23 +02:00
#!/bin/sh -ex
cd build || exit 1
2024-09-29 04:07:27 +02:00
CPU_ARCH = " ${ 1 :- x86_64 } "
2018-07-16 03:12:43 +02:00
if [ " $DEPLOY_APPIMAGE " = "true" ] ; then
2023-04-28 04:16:59 +02:00
DESTDIR = AppDir ninja install
2020-04-07 04:53:23 +02:00
2024-09-29 12:39:08 +02:00
curl -fsSLo /usr/bin/linuxdeploy " https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy- $CPU_ARCH .AppImage "
2023-04-28 04:16:59 +02:00
chmod +x /usr/bin/linuxdeploy
2024-09-29 12:39:08 +02:00
curl -fsSLo /usr/bin/linuxdeploy-plugin-qt " https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt- $CPU_ARCH .AppImage "
2023-04-28 04:16:59 +02:00
chmod +x /usr/bin/linuxdeploy-plugin-qt
2024-09-29 04:07:27 +02:00
curl -fsSLo linuxdeploy-plugin-checkrt.sh https://github.com/darealshinji/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt.sh
2023-05-06 09:54:20 +02:00
chmod +x ./linuxdeploy-plugin-checkrt.sh
2018-07-16 03:12:43 +02:00
2024-04-12 07:59:18 +02:00
export EXTRA_PLATFORM_PLUGINS = "libqwayland-egl.so;libqwayland-generic.so"
2024-09-30 22:01:22 +02:00
export EXTRA_QT_PLUGINS = "svg;wayland-decoration-client;wayland-graphics-integration-client;wayland-shell-integration"
if [ " $CPU_ARCH " = "aarch64" ] ; then
# Ideally we should always ship the wayland integration libraries. Unfortunately glibc ABI issues on steam deck make this undesirable right now, so we only ship for arm64
2024-09-30 22:04:19 +02:00
export EXTRA_QT_PLUGINS = " $EXTRA_QT_PLUGINS ;waylandcompositor "
2024-09-30 22:01:22 +02:00
fi
2024-04-12 07:59:18 +02:00
APPIMAGE_EXTRACT_AND_RUN = 1 linuxdeploy --appdir AppDir --plugin qt
2023-04-30 03:33:49 +02:00
# Remove libwayland-client because it has platform-dependent exports and breaks other OSes
rm -f ./AppDir/usr/lib/libwayland-client.so*
2024-03-05 18:54:47 +01:00
# Remove libvulkan because it causes issues with gamescope
rm -f ./AppDir/usr/lib/libvulkan.so*
2023-04-30 13:12:11 +02:00
# Remove git directory containing local commit history file
rm -rf ./AppDir/usr/share/rpcs3/git
2023-05-06 09:54:20 +02:00
./linuxdeploy-plugin-checkrt.sh --appdir AppDir
2023-04-30 03:33:49 +02:00
linuxdeploy --appimage-extract
./squashfs-root/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool AppDir -g
2020-04-07 04:53:23 +02:00
2024-09-30 01:27:11 +02:00
APPIMAGE_SUFFIX = " linux_ ${ CPU_ARCH } "
2024-09-30 01:44:09 +02:00
if [ " $CPU_ARCH " = "x86_64" ] ; then
2024-09-30 01:27:11 +02:00
# Preserve back compat. Previous versions never included the full arch.
APPIMAGE_SUFFIX = "linux64"
fi
2022-01-05 09:32:13 +01:00
COMM_TAG = $( awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ../rpcs3/rpcs3_version.cpp)
2020-04-09 06:33:38 +02:00
COMM_COUNT = " $( git rev-list --count HEAD) "
COMM_HASH = " $( git rev-parse --short= 8 HEAD) "
2024-09-30 01:27:11 +02:00
RPCS3_APPIMAGE = " rpcs3-v ${ COMM_TAG } - ${ COMM_COUNT } - ${ COMM_HASH } _ ${ APPIMAGE_SUFFIX } .AppImage "
2020-04-07 04:53:23 +02:00
2020-04-09 06:33:38 +02:00
mv ./RPCS3*.AppImage " $RPCS3_APPIMAGE "
2020-04-07 04:53:23 +02:00
2021-04-04 10:34:12 +02:00
# If we're building using a CI, let's copy over the AppImage artifact
2020-04-09 06:33:38 +02:00
if [ -n " $BUILD_ARTIFACTSTAGINGDIRECTORY " ] ; then
2021-04-04 10:34:12 +02:00
cp " $RPCS3_APPIMAGE " " $ARTDIR "
2020-04-09 06:33:38 +02:00
fi
2020-04-07 04:53:23 +02:00
2020-04-09 06:33:38 +02:00
FILESIZE = $( stat -c %s ./rpcs3*.AppImage)
2020-11-23 00:07:21 +01:00
SHA256SUM = $( sha256sum ./rpcs3*.AppImage | awk '{ print $1 }' )
2021-04-04 10:34:12 +02:00
echo " ${ SHA256SUM } ; ${ FILESIZE } B " > " $RELEASE_MESSAGE "
2018-07-16 03:12:43 +02:00
fi