RPCS3: migrated to AppImage

This commit is contained in:
XargonWan 2024-07-19 19:06:25 +09:00
parent 4ccd5069c7
commit 29df2a1633

View file

@ -589,8 +589,8 @@ modules:
- name: xemu-dummy-hdd
buildsystem: simple
build-commands:
- mkdir -p ${FLATPAK_DEST}/retrodeck/extras/XEMU
- mv -f "xbox_hdd.qcow2" "${FLATPAK_DEST}/retrodeck/extras/XEMU/xbox_hdd.qcow2"
- mkdir -p ${FLATPAK_DEST}/retrodeck/extras/XEMU
- mv -f "xbox_hdd.qcow2" "${FLATPAK_DEST}/retrodeck/extras/XEMU/xbox_hdd.qcow2"
sources:
- type: archive
url: https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip
@ -614,49 +614,24 @@ modules:
# MELONDS - END
# RPCS3 - START
# https://github.com/flathub/net.rpcs3.RPCS3
# https://rpcs3.net/download
- name: rpcs3
buildsystem: cmake-ninja
builddir: true
build-options:
append-ld-library-path: /usr/lib/sdk/llvm18/lib
append-path: /usr/lib/sdk/llvm18/bin
cflags: &optflags -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong
-grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection -fno-omit-frame-pointer
cflags-override: true
cxxflags: *optflags
cxxflags-override: true
env:
AR: llvm-ar
CC: clang
CXX: clang++
RANLIB: llvm-ranlib
ldflags: -fuse-ld=lld
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DBUILD_LLVM=OFF
- -DUSE_NATIVE_INSTRUCTIONS=OFF
- -DUSE_PRECOMPILED_HEADERS=OFF
- -DUSE_SDL=ON
- -DUSE_SYSTEM_CURL=ON
- -DUSE_SYSTEM_FFMPEG=OFF # Disabled this to force RPCS3 to use our built FFMPEG
- -DUSE_SYSTEM_LIBPNG=ON
- -DUSE_SYSTEM_SDL=ON
- -DUSE_SYSTEM_ZLIB=ON
- -Wno-dev
post-install:
- cp /usr/lib/sdk/llvm18/lib/libLLVM.so.18.1 /app/lib/
- |-
set -eux
COMM_TAG="$(awk -F'[\{,]' '/version{.*}/{printf "%d.%d.%d", $2, $3, $4}' ../rpcs3/rpcs3_version.cpp)"
COMM_COUNT="$(git rev-list --count HEAD)";
COMM_HASH="$(git rev-parse --short=8 HEAD)";
buildsystem: simple
build-commands:
- chmod +x *.AppImage
- ./*.AppImage --appimage-extract
- mkdir -p "${FLATPAK_DEST}/app"
- cp -r squashfs-root/usr/bin* "${FLATPAK_DEST}/app/bin"
- cp -r squashfs-root/usr/lib* "${FLATPAK_DEST}/app/lib"
- cp -r squashfs-root/usr/share* "${FLATPAK_DEST}/app/share"
#TODO: - cp -r squashfs-root/usr/optional* # maybe aloready included in flatpak runtime
#TODO: - cp -r squashfs-root/usr/plugins* # maybe aloready included in qt
#TODO: Do we need this wrapper? squashfs-root/apprun-hooks/linuxdeploy-plugin-qt-hook.sh
sources:
- type: git
url: https://github.com/RPCS3/rpcs3.git
commit: 5b973448bf75a239f34fd9c7698c8a02b04e2ea9
- type:
url: https://github.com/RPCS3/rpcs3-binaries-linux/releases/download/build-ebcb4034119955991a17210af2a45a672fc9533d/rpcs3-v0.0.32-16685-ebcb4034_linux64.AppImage
sha526: 2553D56E01A3E3058FA9CEB4E1D61A07EAF2C5BBA9E96B29E8923914D89F6E17
# RPCS3 - END
@ -699,10 +674,10 @@ modules:
# PRIMEHACK - END
# Duckstation-AppImage - START - AUTOUPDATED
# Duckstation - START
# https://github.com/stenzek/duckstation/releases/tag/preview
- name: Duckstation-AppImage
- name: duckstation
buildsystem: simple
build-commands:
- chmod +x DuckStation-*.AppImage
@ -715,173 +690,23 @@ modules:
url: https://github.com/stenzek/duckstation/releases/download/v0.1-6937/DuckStation-x64.AppImage
sha256: 8a16f034cc8b11341ed9ad382226549301736794582bdec46a5e19b3ca981e07
# Duckstation-AppImage - END
# Duckstation - END
# Cemu - START
# needed libusb 1.0.26 but we provide 1.0.27, it could break
# https://github.com/cemu-project/Cemu/releases
# https://github.com/flathub/info.cemu.Cemu
- name: hidapi
buildsystem: cmake-ninja
sources:
- type: archive
url: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-0.14.0.tar.gz
sha256: a5714234abe6e1f53647dd8cba7d69f65f71c558b7896ed218864ffcf405bcbd
x-checker-data:
type: anitya
project-id: 5594
stable-only: true
url-template: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-$version.tar.gz
- name: boost
- name: cemu
buildsystem: simple
build-commands:
- ./bootstrap.sh --prefix=${FLATPAK_DEST} --with-toolset=gcc --with-libraries=filesystem,system,program_options,nowide
- ./b2 install variant=release link=shared runtime-link=shared cxxflags="$CXXFLAGS"
linkflags="$LDFLAGS" -j ${FLATPAK_BUILDER_N_JOBS}
cleanup:
- /include
- /lib/cmake
- chmod +x *.AppImage
- ./*.AppImage --appimage-extract
- mkdir -p "${FLATPAK_DEST}/app"
- cp -r squashfs-root/usr/* "${FLATPAK_DEST}/app"
#TODO: do we need this wrapper? squashfs-root/apprun-hooks/linuxdeploy-plugin-gtk.sh
sources:
- type: archive
url: https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.tar.bz2
sha256: 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617
x-checker-data:
type: anitya
project-id: 6845
stable-only: true
url-template: https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_${major}_${minor}_$patch.tar.bz2
- name: libzip
buildsystem: cmake-ninja
config-opts:
- -DBUILD_DOC=OFF
- -DBUILD_EXAMPLES=OFF
- -DBUILD_REGRESS=OFF
- -DBUILD_TOOLS=OFF
cleanup:
- /bin
- /include
- /lib/cmake
- /lib/pkgconfig
sources:
- type: archive
url: https://libzip.org/download/libzip-1.10.1.tar.xz
mirror-urls:
- https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.xz
sha256: dc3c8d5b4c8bbd09626864f6bcf93de701540f761d76b85d7c7d710f4bd90318
x-checker-data:
type: anitya
project-id: 10649
url-template: https://libzip.org/download/libzip-$version.tar.xz
- name: fmt
buildsystem: cmake-ninja
config-opts:
- -DFMT_TEST=Off
cleanup:
- '*'
sources:
- type: archive
url: https://github.com/fmtlib/fmt/archive/9.1.0.tar.gz
sha256: 5dea48d1fcddc3ec571ce2058e13910a0d4a6bab4cc09a809d8b1dd1c88ae6f2
x-checker-data:
type: anitya
project-id: 11526
url-template: https://github.com/fmtlib/fmt/archive/$version.tar.gz
versions: {<: '10.0'}
- name: wxWidgets
buildsystem: cmake-ninja
cleanup:
- /bin
- /include
- /lib/cmake
- /lib/wx
- /share
sources:
- type: archive
url: https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.5/wxWidgets-3.2.5.tar.bz2
sha256: 0ad86a3ad3e2e519b6a705248fc9226e3a09bbf069c6c692a02acf7c2d1c6b51
x-checker-data:
type: anitya
project-id: 5150
stable-only: true
url-template: https://github.com/wxWidgets/wxWidgets/releases/download/v$version/wxWidgets-$version.tar.bz2
versions: {'!=': 3.2.4-with-msvs2012-fix}
- name: Cemu
buildsystem: cmake-ninja
config-opts:
- -DPORTABLE=false
- -DENABLE_VCPKG=false
sources:
- type: git
url: https://github.com/cemu-project/Cemu
# TODO: Update tag pattern on next stable ^v([\d.]+)$
x-checker-data:
type: git
tag-pattern: ^v([\d.]+-\d+)$
tag: v2.0-88
commit: aefbb918beb8718af8f190a73018ff63bf801d95
disable-submodules: true
- type: git
url: https://github.com/mozilla/cubeb
commit: 6c1a6e151c1f981a2800d40af7c041cfcccc710e
dest: dependencies/cubeb
- type: git
url: https://github.com/Exzap/ZArchive
dest: dependencies/ZArchive
tag: v0.1.2
- type: git
url: https://github.com/ocornut/imgui
dest: dependencies/imgui
commit: f65bcf481ab34cd07d3909aab1479f409fa79f2f
- type: shell
commands:
- sed "s/set(EXPERIMENTAL_VERSION.*/set(EXPERIMENTAL_VERSION \"$(git describe
--tag | sed "s/v2.0-//")\" CACHE STRING \"\")/g" -i CMakeLists.txt
- type: script
commands:
- |
for d in DiscordCanary Discord; do
for i in {0..9}; do
test -S $XDG_RUNTIME_DIR/discord-ipc-$i ||
ln -sf {app/com.discordapp.$d,$XDG_RUNTIME_DIR}/discord-ipc-$i;
done
done
Cemu_relwithdebinfo "$@"
dest-filename: Cemu-wrapper
- type: script
dest-filename: dev_release_metainfo.py
commands:
- |
import os
import xml.etree.ElementTree as ET
meta_file = os.environ.get('AS_META_FILE')
version = os.environ.get('AS_META_VERSION')
release_type = os.environ.get('AS_META_TYPE')
release_date = os.environ.get('AS_META_DATE')
release_url = os.environ.get('AS_META_URL')
tree = ET.parse(meta_file)
root = tree.getroot()
el_releases = root.find('releases')
for el_release in el_releases:
el_releases.remove(el_release)
el_release = ET.SubElement(el_releases, 'release')
el_url = ET.SubElement(el_release, 'url')
el_url.text = release_url
el_release.attrib['type'] = release_type
el_release.attrib['date'] = release_date
el_release.attrib['version'] = version
ET.indent(tree, space=' ', level=0)
tree.write(meta_file, encoding='utf8')
post-install:
- cp -r bin/gameProfiles ${FLATPAK_DEST}/share/Cemu/
- cp -r bin/resources ${FLATPAK_DEST}/share/Cemu/
- install -Dm644 -t ${FLATPAK_DEST}/share/icons/hicolor/128x128/apps/ dist/linux/info.cemu.Cemu.png
- install -D -t ${FLATPAK_DEST}/bin/ bin/Cemu_relwithdebinfo Cemu-wrapper
- type:
url: https://github.com/cemu-project/Cemu/releases/download/v2.0-88/Cemu-2.0-88-x86_64.AppImage
sha526: 1af1ad5322df5fa0e2a97588c7486604daf42deb8c4d07a2b885047d9701fed0
# Cemu - END
@ -907,6 +732,7 @@ modules:
# Vita3K - END
# SOLARUS - START
# why from source: they only provide a snap
# https://github.com/flathub/org.solarus_games.solarus.Launcher
- name: luajit