From f20af13ac360074ac36276628b341f724815f5fd Mon Sep 17 00:00:00 2001 From: SternXD Date: Wed, 28 Aug 2024 02:50:25 -0400 Subject: [PATCH] Remove obsolete (to UWP) build scripts and update build configs The following files have been removed: - `cron_publish_flatpak.yml`: Automated Flathub release publishing. - `linux_build_flatpak.yml`: Steps for building and publishing Flatpak. - `linux_build_qt.yml`: Steps for building Linux app using Qt. - `appimage-qt.sh`: Script for creating AppImage for PCSX2. - `build-dependencies-qt.sh`: Script for building various dependencies. - `20-sdl2.json`: Build manifest for SDL2. - `net.pcsx2.PCSX2.json`: Flatpak manifest for PCSX2. - `pcsx2-qt.metainfo.xml.in`: Metadata for PCSX2 application. - `build-dependencies.sh`: Script for setting up and building dependencies. --- .github/workflows/cron_publish_flatpak.yml | 49 --- .github/workflows/linux_build_flatpak.yml | 150 -------- .github/workflows/linux_build_qt.yml | 177 ---------- .../workflows/scripts/linux/appimage-qt.sh | 217 ------------ .../scripts/linux/build-dependencies-qt.sh | 256 -------------- .../linux/flatpak/modules/20-sdl2.json | 30 -- .../linux/flatpak/net.pcsx2.PCSX2.json | 75 ---- .../scripts/linux/pcsx2-qt.metainfo.xml.in | 48 --- .../scripts/macos/build-dependencies.sh | 329 ------------------ PCSX2_qt.sln | 52 +++ 10 files changed, 52 insertions(+), 1331 deletions(-) delete mode 100644 .github/workflows/cron_publish_flatpak.yml delete mode 100644 .github/workflows/linux_build_flatpak.yml delete mode 100644 .github/workflows/linux_build_qt.yml delete mode 100755 .github/workflows/scripts/linux/appimage-qt.sh delete mode 100755 .github/workflows/scripts/linux/build-dependencies-qt.sh delete mode 100644 .github/workflows/scripts/linux/flatpak/modules/20-sdl2.json delete mode 100644 .github/workflows/scripts/linux/flatpak/net.pcsx2.PCSX2.json delete mode 100644 .github/workflows/scripts/linux/pcsx2-qt.metainfo.xml.in delete mode 100755 .github/workflows/scripts/macos/build-dependencies.sh diff --git a/.github/workflows/cron_publish_flatpak.yml b/.github/workflows/cron_publish_flatpak.yml deleted file mode 100644 index 1973367497292..0000000000000 --- a/.github/workflows/cron_publish_flatpak.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: 📦 Publish Flathub Release - -on: - schedule: - - cron: "0 0 * * *" # Every day at 12am UTC. - workflow_dispatch: # As well as manually. - -jobs: - check: - if: github.repository == 'PCSX2/pcsx2' - name: "Check if release is needed" - runs-on: ubuntu-latest - outputs: - PCSX2_RELEASE: ${{ steps.getinfo.outputs.PCSX2_RELEASE }} - FLATHUB_RELEASE: ${{ steps.getinfo.outputs.FLATHUB_RELEASE }} - steps: - - name: Get latest tag and Flathub release - id: getinfo - env: - GH_TOKEN: ${{ github.token }} - run: | - PCSX2_RELEASE=$(gh api -H 'Accept: application/vnd.github+json' -H 'X-GitHub-Api-Version: 2022-11-28' /repos/PCSX2/pcsx2/releases | jq -r '.[0].tag_name') - FLATHUB_RELEASE=$(curl -L -s https://flathub.org/api/v2/appstream/net.pcsx2.PCSX2 | jq -r '.releases | max_by(.version) | .version') - echo "Latest PCSX2 release is: '${PCSX2_RELEASE}'" - echo "Latest Flathub release is: '${FLATHUB_RELEASE}'" - PCSX2_RELEASE=$(echo $PCSX2_RELEASE | sed 's/[^0-9]*//g') - FLATHUB_RELEASE=$(echo $FLATHUB_RELEASE | sed 's/[^0-9]*//g') - echo "PCSX2_RELEASE=${PCSX2_RELEASE}" >> "$GITHUB_OUTPUT" - echo "FLATHUB_RELEASE=${FLATHUB_RELEASE}" >> "$GITHUB_OUTPUT" - - build: - needs: check - # outputs are automatically compared as strings. This doesn't work in our favour - # Use fromJson() to convert them to proper integers... - # see: https://github.com/github/docs/pull/25870 - # and: https://github.com/orgs/community/discussions/57480 - #if: fromJson(needs.check.outputs.FLATHUB_RELEASE) < fromJson(needs.check.outputs.PCSX2_RELEASE) - name: "Build and publish Flatpak" - uses: ./.github/workflows/linux_build_flatpak.yml - with: - jobName: "Qt" - artifactPrefixName: "PCSX2-linux-Qt-x64-flatpak" - compiler: clang - cmakeflags: "" - publish: true - branch: stable - fetchTags: true - secrets: inherit - diff --git a/.github/workflows/linux_build_flatpak.yml b/.github/workflows/linux_build_flatpak.yml deleted file mode 100644 index 7a8d579587c6f..0000000000000 --- a/.github/workflows/linux_build_flatpak.yml +++ /dev/null @@ -1,150 +0,0 @@ -name: Flatpak Build Steps - -on: - workflow_call: - inputs: - jobName: - required: true - type: string - artifactPrefixName: - required: true - type: string - os: - required: false - type: string - default: ubuntu-22.04 - platform: - required: false - type: string - default: x64 - compiler: - required: true - type: string - cmakeflags: - required: true - type: string - branch: - required: false - type: string - default: "stable" - publish: - required: false - type: boolean - default: false - patchesUrl: - required: false - type: string - default: https://github.com/PCSX2/pcsx2_patches/releases/latest/download - fetchTags: - required: false - type: boolean - default: false - stableBuild: - required: false - type: boolean - default: false - -jobs: - build_linux: - name: ${{ inputs.jobName }} - runs-on: ${{ inputs.os }} - container: - image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.7 - options: --privileged - timeout-minutes: 60 - - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - with: - set-safe-directory: ${{ env.GITHUB_WORKSPACE }} - - # Work around container ownership issue - - name: Set Safe Directory - shell: bash - run: git config --global --add safe.directory "*" - - # Hackity hack. When running the workflow on a schedule, we don't have the tag, - # it doesn't fetch tags, therefore we don't get a version. So grab them manually. - # actions/checkout elides tags, fetch them primarily for releases - - name: Fetch tags - if: ${{ inputs.fetchTags }} - run: git fetch --tags --no-recurse-submodules - - - name: Add stable release identifier file - if: ${{ inputs.stableBuild == true || inputs.stableBuild == 'true' }} - shell: bash - run: | - echo "#define DEFAULT_UPDATER_CHANNEL \"stable\"" > ./pcsx2-qt/DefaultUpdaterChannel.h - cat ./pcsx2-qt/DefaultUpdaterChannel.h - - - name: Prepare Artifact Metadata - id: artifact-metadata - shell: bash - env: - PREFIX: ${{ inputs.artifactPrefixName }} - EVENT_NAME: ${{ github.event_name }} - PR_TITLE: ${{ github.event.pull_request.title }} - PR_NUM: ${{ github.event.pull_request.number }} - PR_SHA: ${{ github.event.pull_request.head.sha }} - run: ./.github/workflows/scripts/common/name-artifacts.sh - - - name: Download patches - run: | - cd bin/resources - wget "${{ inputs.patchesUrl }}/patches.zip" - - - name: Validate manifest - run: | - flatpak-builder-lint manifest .github/workflows/scripts/linux/flatpak/net.pcsx2.PCSX2.json - - - name: Build Flatpak - uses: flathub-infra/flatpak-github-actions/flatpak-builder@23796715b3dfa4c86ddf50cf29c3cc8b3c82dca8 - with: - bundle: ${{ steps.artifact-metadata.outputs.artifact-name }}.flatpak - upload-artifact: false - manifest-path: .github/workflows/scripts/linux/flatpak/net.pcsx2.PCSX2.json - arch: x86_64 - build-bundle: true - verbose: true - mirror-screenshots-url: https://dl.flathub.org/media - branch: ${{ inputs.branch }} - cache: true - restore-cache: true - cache-key: ${{ inputs.os }} ${{ inputs.platform }} ${{ inputs.compiler }} flatpak ${{ hashFiles('.github/workflows/scripts/linux/flatpak/**/*.json') }} - - #- name: Validate build - # run: | - # flatpak-builder-lint repo repo - - - name: Push to Flathub beta - if: inputs.publish == true && inputs.branch == 'beta' - uses: flathub-infra/flatpak-github-actions/flat-manager@23796715b3dfa4c86ddf50cf29c3cc8b3c82dca8 - with: - flat-manager-url: https://hub.flathub.org/ - repository: beta - token: ${{ secrets.FLATHUB_BETA_TOKEN }} - build-log-url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - - - name: Push to Flathub stable - if: inputs.publish == true && inputs.branch == 'stable' - uses: flathub-infra/flatpak-github-actions/flat-manager@23796715b3dfa4c86ddf50cf29c3cc8b3c82dca8 - with: - flat-manager-url: https://hub.flathub.org/ - repository: stable - token: ${{ secrets.FLATHUB_TOKEN }} - build-log-url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - - # NOTE - this is done after on purpose so the flatpak file is wherever it needs to be for the previous pushes - - name: Prepare artifacts folder - # NOTE - 'flatpak-builder' dumps the artifact out into the current directory - run: | - mkdir -p "$GITHUB_WORKSPACE"/ci-artifacts/ - mv "./${{ steps.artifact-metadata.outputs.artifact-name }}.flatpak" "$GITHUB_WORKSPACE"/ci-artifacts/ - - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: ${{ steps.artifact-metadata.outputs.artifact-name }} - path: ci-artifacts - diff --git a/.github/workflows/linux_build_qt.yml b/.github/workflows/linux_build_qt.yml deleted file mode 100644 index d78d924fb8dbb..0000000000000 --- a/.github/workflows/linux_build_qt.yml +++ /dev/null @@ -1,177 +0,0 @@ -name: Linux Build Steps - -on: - workflow_call: - inputs: - jobName: - required: true - type: string - artifactPrefixName: - required: true - type: string - os: - required: false - type: string - default: ubuntu-22.04 - platform: - required: false - type: string - default: x64 - compiler: - required: true - type: string - cmakeflags: - required: true - type: string - buildAppImage: - required: false - type: boolean - default: false - detail: - required: false - type: string - default: "" - patchesUrl: - required: false - type: string - default: https://github.com/PCSX2/pcsx2_patches/releases/latest/download - fetchTags: - required: false - type: boolean - default: false - stableBuild: - required: false - type: boolean - default: false - -jobs: - build_linux: - name: ${{ inputs.jobName }} - runs-on: ${{ inputs.os }} - # Set some sort of timeout in the event of run-away builds. We are limited on concurrent jobs so, get rid of them. - timeout-minutes: 90 - env: - CCACHE_BASEDIR: ${{ github.workspace }} - CCACHE_DIR: ${{ github.workspace }}/.ccache - CCACHE_COMPRESS: true - CCACHE_COMPRESSLEVEL: 9 - CCACHE_MAXSIZE: 100M - - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # actions/checkout elides tags, fetch them primarily for releases - - name: Fetch Tags - if: ${{ inputs.fetchTags }} - run: git fetch --tags --no-recurse-submodules - - - name: Add stable release identifier file - if: ${{ inputs.stableBuild == true || inputs.stableBuild == 'true' }} - shell: bash - run: | - echo "#define DEFAULT_UPDATER_CHANNEL \"stable\"" > ./pcsx2-qt/DefaultUpdaterChannel.h - cat ./pcsx2-qt/DefaultUpdaterChannel.h - - - name: Prepare Artifact Metadata - id: artifact-metadata - shell: bash - env: - PREFIX: ${{ inputs.artifactPrefixName }} - EVENT_NAME: ${{ github.event_name }} - PR_TITLE: ${{ github.event.pull_request.title }} - PR_NUM: ${{ github.event.pull_request.number }} - PR_SHA: ${{ github.event.pull_request.head.sha }} - run: ./.github/workflows/scripts/common/name-artifacts.sh - - # -- SETUP CCACHE - https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/ - - name: Prepare ccache timestamp - id: ccache_cache_timestamp - run: echo "timestamp=$(date -u "+%Y-%m-%d-%H;%M;%S")" >> $GITHUB_OUTPUT - - - name: ccache cache files - uses: actions/cache@v4 - with: - path: .ccache - key: ${{ inputs.os }} ${{ inputs.platform }} ${{ inputs.compiler }} ${{ inputs.detail }} ccache ${{ steps.ccache_cache_timestamp.outputs.timestamp }} - restore-keys: ${{ inputs.os }} ${{ inputs.platform }} ${{ inputs.compiler }} ${{ inputs.detail }} ccache - - - name: Install Packages - run: | - tools/retry.sh wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc - sudo tools/retry.sh apt-add-repository -n 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main' - sudo tools/retry.sh apt-get update - sudo tools/retry.sh apt-get -y install \ - build-essential ccache clang-17 cmake curl extra-cmake-modules git libasound2-dev libaio-dev libavcodec-dev libavformat-dev libavutil-dev \ - libcurl4-openssl-dev libdbus-1-dev libdecor-0-dev libegl-dev libevdev-dev libfontconfig-dev libfreetype-dev libfuse2 libgtk-3-dev libgudev-1.0-dev \ - libharfbuzz-dev libinput-dev libopengl-dev libpcap-dev libpipewire-0.3-dev libpulse-dev libssl-dev libswresample-dev libswscale-dev libudev-dev \ - libwayland-dev libx11-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-cursor-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-icccm4-dev \ - libxcb-image0-dev libxcb-keysyms1-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev \ - libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev libxcb-xfixes0-dev libxcb-xinput-dev libxcb-xkb-dev libxext-dev libxkbcommon-x11-dev libxrandr-dev \ - lld-17 llvm-17 ninja-build patchelf pkg-config zlib1g-dev - - - name: Cache Dependencies - id: cache-deps - uses: actions/cache@v4 - with: - path: ~/deps - key: ${{ inputs.os }} ${{ inputs.platform }} deps ${{ hashFiles('.github/workflows/scripts/linux/build-dependencies-qt.sh') }} - - - name: Build Dependencies - if: steps.cache-deps.outputs.cache-hit != 'true' - run: .github/workflows/scripts/linux/build-dependencies-qt.sh "$HOME/deps" - - - name: Download patches - run: | - cd bin/resources - aria2c -Z "${{ inputs.patchesUrl }}/patches.zip" - - - name: Generate CMake - env: - ADDITIONAL_CMAKE_ARGS: ${{ inputs.cmakeflags }} - run: | - cmake -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \ - -DCMAKE_PREFIX_PATH="$HOME/deps" \ - -DCMAKE_C_COMPILER=clang-17 \ - -DCMAKE_CXX_COMPILER=clang++-17 \ - -DCMAKE_EXE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ - -DCMAKE_MODULE_LINKER_FLAGS_INIT="-fuse-ld=lld" \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DENABLE_SETCAP=OFF \ - -DDISABLE_ADVANCE_SIMD=TRUE \ - $ADDITIONAL_CMAKE_ARGS - - - name: Build PCSX2 - working-directory: build - run: | - # Prepare the Cache - ccache -p - ccache -z - # Build - ninja - # Save the Cache - ccache -s - - - name: Run Tests - working-directory: ./build - run: ninja unittests - - - name: Package AppImage - if: inputs.buildAppImage == true - env: - NAME: ${{ steps.artifact-metadata.outputs.artifact-name }} - run: | - .github/workflows/scripts/linux/appimage-qt.sh "$(realpath .)" "$(realpath ./build)" "$HOME/deps" "$NAME" - mkdir -p "$GITHUB_WORKSPACE"/ci-artifacts/ - mv "${NAME}.AppImage" "$GITHUB_WORKSPACE"/ci-artifacts/ - - - name: Upload artifact - if: inputs.buildAppImage == true - uses: actions/upload-artifact@v4 - with: - name: ${{ steps.artifact-metadata.outputs.artifact-name }} - path: ci-artifacts diff --git a/.github/workflows/scripts/linux/appimage-qt.sh b/.github/workflows/scripts/linux/appimage-qt.sh deleted file mode 100755 index 73839b2573450..0000000000000 --- a/.github/workflows/scripts/linux/appimage-qt.sh +++ /dev/null @@ -1,217 +0,0 @@ -#!/usr/bin/env bash - -# This is free and unencumbered software released into the public domain. -# -# Anyone is free to copy, modify, publish, use, compile, sell, or -# distribute this software, either in source code form or as a compiled -# binary, for any purpose, commercial or non-commercial, and by any -# means. -# -# In jurisdictions that recognize copyright laws, the author or authors -# of this software dedicate any and all copyright interest in the -# software to the public domain. We make this dedication for the benefit -# of the public at large and to the detriment of our heirs and -# successors. We intend this dedication to be an overt act of -# relinquishment in perpetuity of all present and future rights to this -# software under copyright law. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# For more information, please refer to - -SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}") - -if [ "$#" -ne 4 ]; then - echo "Syntax: $0 " - exit 1 -fi - -PCSX2DIR=$1 -BUILDDIR=$2 -DEPSDIR=$3 -NAME=$4 - -BINARY=pcsx2-qt -APPDIRNAME=PCSX2.AppDir -STRIP=strip - -declare -a MANUAL_LIBS=( - "libshaderc_shared.so.1" -) - -declare -a MANUAL_QT_LIBS=( - "libQt6WaylandEglClientHwIntegration.so.6" -) - -declare -a MANUAL_QT_PLUGINS=( - "wayland-decoration-client" - "wayland-graphics-integration-client" - "wayland-shell-integration" -) - -declare -a REMOVE_LIBS=( - 'libwayland-client.so*' - 'libwayland-cursor.so*' - 'libwayland-egl.so*' -) - -set -e - -LINUXDEPLOY=./linuxdeploy-x86_64 -LINUXDEPLOY_PLUGIN_QT=./linuxdeploy-plugin-qt-x86_64 -APPIMAGETOOL=./appimagetool-x86_64 -PATCHELF=patchelf - -if [ ! -f "$LINUXDEPLOY" ]; then - "$PCSX2DIR/tools/retry.sh" wget -O "$LINUXDEPLOY" https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage - chmod +x "$LINUXDEPLOY" -fi - -if [ ! -f "$LINUXDEPLOY_PLUGIN_QT" ]; then - "$PCSX2DIR/tools/retry.sh" wget -O "$LINUXDEPLOY_PLUGIN_QT" https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage - chmod +x "$LINUXDEPLOY_PLUGIN_QT" -fi - -# Using go-appimage -# Backported from https://github.com/stenzek/duckstation/pull/3251 -if [ ! -f "$APPIMAGETOOL" ]; then - APPIMAGETOOLURL=$(wget -q https://api.github.com/repos/probonopd/go-appimage/releases -O - | sed 's/[()",{} ]/\n/g' | grep -o 'https.*continuous.*tool.*86_64.*mage$' | head -1) - "$PCSX2DIR/tools/retry.sh" wget -O "$APPIMAGETOOL" "$APPIMAGETOOLURL" - chmod +x "$APPIMAGETOOL" -fi - -OUTDIR=$(realpath "./$APPDIRNAME") -rm -fr "$OUTDIR" - -echo "Locating extra libraries..." -EXTRA_LIBS_ARGS="" -for lib in "${MANUAL_LIBS[@]}"; do - srcpath=$(find "$DEPSDIR" -name "$lib") - if [ ! -f "$srcpath" ]; then - echo "Missinge extra library $lib. Exiting." - exit 1 - fi - - echo "Found $lib at $srcpath." - - if [ "$EXTRA_LIBS_ARGS" == "" ]; then - EXTRA_LIBS_ARGS="--library=$srcpath" - else - EXTRA_LIBS_ARGS="$EXTRA_LIBS_ARGS,$srcpath" - fi -done - -# Why the nastyness? linuxdeploy strips our main binary, and there's no option to turn it off. -# It also doesn't strip the Qt libs. We can't strip them after running linuxdeploy, because -# patchelf corrupts the libraries (but they still work), but patchelf+strip makes them crash -# on load. So, make a backup copy, strip the original (since that's where linuxdeploy finds -# the libs to copy), then swap them back after we're done. -# Isn't Linux packaging amazing? - -rm -fr "$DEPSDIR.bak" -cp -a "$DEPSDIR" "$DEPSDIR.bak" -IFS=" -" -for i in $(find "$DEPSDIR" -iname '*.so'); do - echo "Stripping deps library ${i}" - strip "$i" -done - -echo "Copying desktop file..." -cp "$PCSX2DIR/.github/workflows/scripts/linux/pcsx2-qt.desktop" "net.pcsx2.PCSX2.desktop" -cp "$PCSX2DIR/bin/resources/icons/AppIconLarge.png" "PCSX2.png" - -echo "Running linuxdeploy to create AppDir..." -EXTRA_QT_PLUGINS="core;gui;svg;waylandclient;widgets;xcbqpa" \ -EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so" \ -DEPLOY_PLATFORM_THEMES="1" \ -QMAKE="$DEPSDIR/bin/qmake" \ -NO_STRIP="1" \ -$LINUXDEPLOY --plugin qt --appdir="$OUTDIR" --executable="$BUILDDIR/bin/pcsx2-qt" $EXTRA_LIBS_ARGS \ ---desktop-file="net.pcsx2.PCSX2.desktop" --icon-file="PCSX2.png" - -echo "Copying resources into AppDir..." -cp -a "$BUILDDIR/bin/resources" "$OUTDIR/usr/bin" - -# LinuxDeploy's Qt plugin doesn't include Wayland support. So manually copy in the additional Wayland libraries. -echo "Copying Qt Wayland libraries..." -for lib in "${MANUAL_QT_LIBS[@]}"; do - srcpath="$DEPSDIR/lib/$lib" - dstpath="$OUTDIR/usr/lib/$lib" - echo " $srcpath -> $dstpath" - cp "$srcpath" "$dstpath" - $PATCHELF --set-rpath '$ORIGIN' "$dstpath" -done - -# .. and plugins. -echo "Copying Qt Wayland plugins..." -for GROUP in "${MANUAL_QT_PLUGINS[@]}"; do - srcpath="$DEPSDIR/plugins/$GROUP" - dstpath="$OUTDIR/usr/plugins/$GROUP" - echo " $srcpath -> $dstpath" - mkdir -p "$dstpath" - - for srcsopath in $(find "$DEPSDIR/plugins/$GROUP" -iname '*.so'); do - # This is ../../ because it's usually plugins/group/name.so - soname=$(basename "$srcsopath") - dstsopath="$dstpath/$soname" - echo " $srcsopath -> $dstsopath" - cp "$srcsopath" "$dstsopath" - $PATCHELF --set-rpath '$ORIGIN/../../lib:$ORIGIN' "$dstsopath" - done -done - -# Why do we have to manually remove these libs? Because the linuxdeploy Qt plugin -# copies them, not the "main" linuxdeploy binary, and plugins don't inherit the -# include list... -for lib in "${REMOVE_LIBS[@]}"; do - for libpath in $(find "$OUTDIR/usr/lib" -name "$lib"); do - echo " Removing problematic library ${libpath}." - rm -f "$libpath" - done -done - -# Restore unstripped deps (for cache). -rm -fr "$DEPSDIR" -mv "$DEPSDIR.bak" "$DEPSDIR" - -# Fix up translations. -rm -fr "$OUTDIR/usr/bin/translations" "$OUTDIR/usr/translations" -cp -a "$BUILDDIR/bin/translations" "$OUTDIR/usr/bin" - -# Generate AppStream meta-info. -echo "Generating AppStream metainfo..." -mkdir -p "$OUTDIR/usr/share/metainfo" -"$SCRIPTDIR/generate-metainfo.sh" "$OUTDIR/usr/share/metainfo/net.pcsx2.PCSX2.appdata.xml" - -# Copy in AppRun hooks. -# Unfortunately linuxdeploy is a bit lame and doesn't let us provide our own AppRun hooks, instead -# they have to come from plugins.. and screw writing one of those just to disable Wayland. -echo "Copying AppRun hooks..." -mkdir -p "$OUTDIR/apprun-hooks" -for hookpath in "$SCRIPTDIR/apprun-hooks"/*; do - hookname=$(basename "$hookpath") - cp -v "$hookpath" "$OUTDIR/apprun-hooks/$hookname" - sed -i -e 's/exec /source "$this_dir"\/apprun-hooks\/"'"$hookname"'"\nexec /' "$OUTDIR/AppRun" -done - -echo "Generating AppImage..." -GIT_VERSION=$(git tag --points-at HEAD) - -if [[ "${GIT_VERSION}" == "" ]]; then - # In the odd event that we run this script before the release gets tagged. - GIT_VERSION=$(git describe --tags) - if [[ "${GIT_VERSION}" == "" ]]; then - GIT_VERSION=$(git rev-parse HEAD) - fi -fi - -rm -f "$NAME.AppImage" -ARCH=x86_64 VERSION="${GIT_VERSION}" "$APPIMAGETOOL" -s "$OUTDIR" && mv ./*.AppImage "$NAME.AppImage" - diff --git a/.github/workflows/scripts/linux/build-dependencies-qt.sh b/.github/workflows/scripts/linux/build-dependencies-qt.sh deleted file mode 100755 index f89cbcba02025..0000000000000 --- a/.github/workflows/scripts/linux/build-dependencies-qt.sh +++ /dev/null @@ -1,256 +0,0 @@ -#!/usr/bin/env bash - -set -e - -if [ "$#" -ne 1 ]; then - echo "Syntax: $0 " - exit 1 -fi - -SCRIPTDIR=$(realpath $(dirname "${BASH_SOURCE[0]}")) -NPROCS="$(getconf _NPROCESSORS_ONLN)" -INSTALLDIR="$1" -if [ "${INSTALLDIR:0:1}" != "/" ]; then - INSTALLDIR="$PWD/$INSTALLDIR" -fi - -LIBBACKTRACE=ad106d5fdd5d960bd33fae1c48a351af567fd075 -LIBJPEG=9f -LIBPNG=1.6.43 -LIBWEBP=1.4.0 -LZ4=b8fd2d15309dd4e605070bd4486e26b6ef814e29 -SDL=SDL2-2.30.6 -QT=6.7.2 -ZSTD=1.5.6 - -SHADERC=2024.1 -SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec -SHADERC_SPIRVHEADERS=5e3ad389ee56fca27c9705d093ae5387ce404df4 -SHADERC_SPIRVTOOLS=dd4b663e13c07fea4fbb3f70c1c91c86731099f7 - -mkdir -p deps-build -cd deps-build - -cat > SHASUMS < - - - net.pcsx2.PCSX2 - net.pcsx2.PCSX2.desktop - CC0-1.0 - GPL-3.0+ - PCSX2 - PCSX2 - PlayStation 2 Emulator - -

PCSX2 is a free and open-source PlayStation 2 (PS2) emulator. Its purpose is to emulate the PS2's hardware, using a combination of MIPS CPU Interpreters, Recompilers, and a Virtual Machine which manages hardware states and PS2 system memory. This allows you to play PS2 games on your PC, with many additional features and benefits.

-

PlayStation 2 and PS2 are registered trademarks of Sony Interactive Entertainment. This application is not affiliated in any way with Sony Interactive Entertainment.

-
- https://pcsx2.net/ - https://github.com/PCSX2/pcsx2/issues - https://github.com/sponsors/PCSX2 - https://pcsx2.net/docs/ - https://pcsx2.net/discord - https://crowdin.com/project/pcsx2-emulator - https://mastodon.social/@PCSX2 - - - - https://raw.githubusercontent.com/PCSX2/pcsx2/master/.github/workflows/scripts/linux/flatpak/screenshots/screenshot1.png - - - The main PCSX2 Qt interface - - - - - https://raw.githubusercontent.com/PCSX2/pcsx2/master/.github/workflows/scripts/linux/flatpak/screenshots/screenshot2.png - - - PCSX2 running a game - - - - - pcsx2_AT_pcsx2.net - - - - - https://raw.githubusercontent.com/PCSX2/pcsx2/@GIT_HASH@/.github/workflows/scripts/linux/flatpak/net.pcsx2.PCSX2.json - -
diff --git a/.github/workflows/scripts/macos/build-dependencies.sh b/.github/workflows/scripts/macos/build-dependencies.sh deleted file mode 100755 index 791fb8fc74b54..0000000000000 --- a/.github/workflows/scripts/macos/build-dependencies.sh +++ /dev/null @@ -1,329 +0,0 @@ -#!/bin/bash - -set -e - -if [ "$#" -ne 1 ]; then - echo "Syntax: $0 " - exit 1 -fi - -# The bundled ffmpeg has a lot of things disabled to reduce code size. -# Users may want to use system ffmpeg for additional features -: ${BUILD_FFMPEG:=1} - -export MACOSX_DEPLOYMENT_TARGET=11.0 - -NPROCS="$(getconf _NPROCESSORS_ONLN)" -SCRIPTDIR=$(realpath $(dirname "${BASH_SOURCE[0]}")) -INSTALLDIR="$1" -if [ "${INSTALLDIR:0:1}" != "/" ]; then - INSTALLDIR="$PWD/$INSTALLDIR" -fi - -FREETYPE=2.13.2 -HARFBUZZ=8.3.1 -SDL=SDL2-2.30.6 -ZSTD=1.5.6 -LZ4=b8fd2d15309dd4e605070bd4486e26b6ef814e29 -LIBPNG=1.6.43 -LIBJPEG=9f -LIBWEBP=1.4.0 -FFMPEG=6.0 -MOLTENVK=1.2.9 -QT=6.7.2 - -SHADERC=2024.1 -SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec -SHADERC_SPIRVHEADERS=5e3ad389ee56fca27c9705d093ae5387ce404df4 -SHADERC_SPIRVTOOLS=dd4b663e13c07fea4fbb3f70c1c91c86731099f7 - -mkdir -p deps-build -cd deps-build - -export PKG_CONFIG_PATH="$INSTALLDIR/lib/pkgconfig:$PKG_CONFIG_PATH" -export LDFLAGS="-L$INSTALLDIR/lib $LDFLAGS" -export CFLAGS="-I$INSTALLDIR/include $CFLAGS" -export CXXFLAGS="-I$INSTALLDIR/include $CXXFLAGS" -CMAKE_COMMON=( - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_SHARED_LINKER_FLAGS="-dead_strip -dead_strip_dylibs" - -DCMAKE_PREFIX_PATH="$INSTALLDIR" - -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" - -DCMAKE_OSX_ARCHITECTURES="x86_64" - -DCMAKE_INSTALL_NAME_DIR='$/lib' -) - -cat > SHASUMS <