mirror of
https://git.citron-emu.org/Citron/Citron.git
synced 2025-01-22 08:36:32 +01:00
9ae0eeeb87
- In commit b3facaa6bb
, the copyright header was
updated to include "Citron Homebrew Project" across multiple files, regardless
of whether any contributions were made.
- This commit removes the incorrect attribution and reverts the copyright header
to its previous state.
- Copyright attribution should only be added when meaningful contributions have
been made to the file.
- This commit ensures proper compliance with copyright standards and maintains
correct attribution to the respective contributors.
- Special thanks to Tachi for pointing out the need for these corrections and
ensuring that proper attribution practices are followed.
109 lines
3.8 KiB
Bash
Executable file
109 lines
3.8 KiB
Bash
Executable file
#!/bin/bash
|
|
# reg_server, 2024-01-09
|
|
|
|
set -e
|
|
|
|
# check arguments
|
|
if [[ $# != 2 ]]; then
|
|
>&2 echo "Invalid arguments!"
|
|
echo "Usage: $0 torzu|citron <build dir>"
|
|
exit 1
|
|
fi
|
|
|
|
BUILD_APP="$1"
|
|
if [[ "${BUILD_APP}" != "torzu" && "${BUILD_APP}" != "citron" ]]; then
|
|
>&2 echo "Invalid arguments!"
|
|
echo "Usage: $0 torzu|citron <build dir>"
|
|
exit 1
|
|
fi
|
|
|
|
BUILD_DIR=$(realpath "$2")
|
|
if [[ ! -d "${BUILD_DIR}" ]]; then
|
|
>&2 echo "Invalid arguments!"
|
|
echo "'$2' is not a directory"
|
|
exit 1
|
|
fi
|
|
|
|
DEPLOY_LINUX_FOLDER="${BUILD_DIR}/deploy-linux"
|
|
DEPLOY_LINUX_APPDIR_FOLDER="${BUILD_DIR}/deploy-linux/AppDir"
|
|
BIN_FOLDER="${BUILD_DIR}/bin"
|
|
BIN_EXE="${BIN_FOLDER}/${BUILD_APP//torzu/yuzu}"
|
|
|
|
CPU_ARCH=$(uname -m)
|
|
|
|
#export DISPLAYVERSION="1.2.3" # before cmake
|
|
|
|
BIN_EXE_MIME_TYPE=$(file -b --mime-type "${BIN_EXE}")
|
|
if [[ "${BIN_EXE_MIME_TYPE}" != "application/x-pie-executable" && "${BIN_EXE_MIME_TYPE}" != "application/x-executable" ]]; then
|
|
>&2 echo "Invalid or missing main executable (${BIN_EXE})!"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "${DEPLOY_LINUX_FOLDER}"
|
|
rm -rf "${DEPLOY_LINUX_APPDIR_FOLDER}"
|
|
|
|
cd "${BUILD_DIR}"
|
|
|
|
# deploy/install to deploy-linux/AppDir
|
|
DESTDIR="${DEPLOY_LINUX_APPDIR_FOLDER}" ninja install
|
|
|
|
cd "${DEPLOY_LINUX_FOLDER}"
|
|
|
|
# remove -cmd executable, not needed for AppImage
|
|
rm -fv "${DEPLOY_LINUX_APPDIR_FOLDER}"/usr/bin/"${BUILD_APP//torzu/yuzu}"-cmd
|
|
|
|
curl -fsSLo ./linuxdeploy "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${CPU_ARCH}.AppImage"
|
|
chmod +x ./linuxdeploy
|
|
|
|
curl -fsSLo ./linuxdeploy-plugin-qt "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-${CPU_ARCH}.AppImage"
|
|
chmod +x ./linuxdeploy-plugin-qt
|
|
|
|
curl -fsSLo ./linuxdeploy-plugin-checkrt.sh https://github.com/darealshinji/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt.sh
|
|
chmod +x ./linuxdeploy-plugin-checkrt.sh
|
|
|
|
# Add Qt 6 specific environment variables
|
|
export QT_QPA_PLATFORM="wayland;xcb"
|
|
export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so;libqxcb.so"
|
|
export EXTRA_QT_PLUGINS="svg;wayland-decoration-client;wayland-graphics-integration-client;wayland-shell-integration;waylandcompositor;xcb-gl-integration;platformthemes/libqt6ct.so"
|
|
|
|
# Update linuxdeploy commands for Qt 6
|
|
export QMAKE="/usr/bin/qmake6"
|
|
export QT_SELECT=6
|
|
|
|
# remove NO_STRIP=1 if linuxdeploy is updated, see: https://github.com/linuxdeploy/linuxdeploy/issues/272
|
|
NO_STRIP=1 APPIMAGE_EXTRACT_AND_RUN=1 ./linuxdeploy --appdir ./AppDir --plugin qt --plugin checkrt
|
|
|
|
# remove libwayland-client because it has platform-dependent exports and breaks other OSes
|
|
rm -fv ./AppDir/usr/lib/libwayland-client.so*
|
|
|
|
# remove libvulkan because it causes issues with gamescope
|
|
rm -fv ./AppDir/usr/lib/libvulkan.so*
|
|
|
|
rm -rf ./linuxdeploy-squashfs-root
|
|
./linuxdeploy --appimage-extract
|
|
mv -v ./squashfs-root/ ./linuxdeploy-squashfs-root/
|
|
|
|
./linuxdeploy-squashfs-root/plugins/linuxdeploy-plugin-appimage/usr/bin/appimagetool ./AppDir -g
|
|
|
|
#APPIMAGE_SUFFIX="linux_${CPU_ARCH}"
|
|
APPIMAGE_SUFFIX="${CPU_ARCH}"
|
|
#COMM_TAG="${DISPLAYVERSION}"
|
|
COMM_COUNT="$(git rev-list --count HEAD)"
|
|
COMM_HASH="$(git rev-parse --short=9 HEAD)"
|
|
BUILD_DATE=$(date +"%Y%m%d")
|
|
#APPIMAGE_NAME="${BUILD_APP}-v${COMM_TAG}-${BUILD_DATE}-${COMM_COUNT}-${COMM_HASH}-${APPIMAGE_SUFFIX}.AppImage"
|
|
APPIMAGE_NAME="${BUILD_APP}-nightly-${BUILD_DATE}-${COMM_COUNT}-${COMM_HASH}-${APPIMAGE_SUFFIX}.AppImage"
|
|
|
|
LATEST_APPIMAGE=$(ls -1t ${BUILD_APP}*.AppImage | head -n 1) # find the most recent AppImage
|
|
if [[ -z "${LATEST_APPIMAGE}" ]]; then
|
|
>&2 echo "Error: No AppImage found for ${BUILD_APP}"
|
|
exit 1
|
|
fi
|
|
|
|
mv -v "${LATEST_APPIMAGE}" "${APPIMAGE_NAME}"
|
|
|
|
FILESIZE=$(stat -c %s "./${APPIMAGE_NAME}")
|
|
SHA256SUM=$(sha256sum "./${APPIMAGE_NAME}" | awk '{ print $1 }')
|
|
|
|
echo "${APPIMAGE_NAME}"
|
|
echo "${SHA256SUM};${FILESIZE}B"
|