From c346aeba91e3f554646643e33f461cd6cced1e53 Mon Sep 17 00:00:00 2001
From: XargonWan <xargonwan@gmail.com>
Date: Thu, 7 Apr 2022 00:02:00 +0900
Subject: [PATCH] Initial Yuzu support

---
 com.xargon.retrodeck.yml | 348 ++++++++++++++++++++-------------------
 1 file changed, 180 insertions(+), 168 deletions(-)

diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml
index 62287a69..a0deb0ab 100644
--- a/com.xargon.retrodeck.yml
+++ b/com.xargon.retrodeck.yml
@@ -33,6 +33,20 @@ cleanup:
   - /lib/libfreeimage.a
   - /lib/libogg.a
   - /lib/libvpx.a
+  # Yuzu
+  - /include
+  - /bin/glslangValidator
+  - /bin/zip*
+  - /bin/zstd*
+  - /lib/pkg-config
+  - /share/doc
+  - /share/man
+  - /src
+  - '*.a'
+  - '*.la'
+cleanup-commands:
+  # Yuzu
+  - /app/cleanup-BaseApp.sh
 
 modules:
 
@@ -178,7 +192,6 @@ modules:
   # External manifests start
 
   # RetroArch - https://github.com/flathub/org.libretro.RetroArch
-  # nope: remember to put ' /org.libretro.RetroArch/' as submodules prefix
 
   - name: retroarch
     config-opts:
@@ -310,173 +323,172 @@ modules:
 
   # Yuzu - https://github.com/flathub/org.yuzu_emu.yuzu
 
-  #- shared-modules/libusb/libusb.json
-  #- name: libzip
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz
-  #      sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 10649
-  #        url-template: https://github.com/nih-at/libzip/archive/v$version.tar.gz
-  #- name: zstd
-  #  buildsystem: simple
-  #  build-commands:
-  #    - make -j $FLATPAK_BUILDER_N_JOBS
-  #    - make PREFIX=/ DESTDIR="${FLATPAK_DEST}" install
-  #  sources:
-  #    - type: archive
-  #      url: >-
-  #        https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
-  #      sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 12083
-  #        url-template: >-
-  #          https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz
-  #- name: fmt
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DFMT_TEST=OFF'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip
-  #      sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 11526
-  #        url-template: >-
-  #          https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip
-  #- name: glslang
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=Release'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/KhronosGroup/glslang/archive/11.8.0.tar.gz
-  #      sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0
-  #      x-checker-data:
-  #        type: anitya
-  #        stable-only: true
-  #        project-id: 205796
-  #        url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz
-  #- name: catch2
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=Release'
-  #    - '-DCATCH_BUILD_TESTING=OFF'
-  #  builddir: true
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz
-  #      sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a
-  #      x-checker-data:
-  #        type: anitya
-  #        stable-only: true
-  #        project-id: 7680
-  #        url-template: https://github.com/catchorg/Catch2/archive/v$version.tar.gz
-  #- name: nlohmann-json
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=Release'
-  #    - '-DJSON_BuildTests=OFF'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/nlohmann/json/archive/v3.10.5.tar.gz
-  #      sha256: 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 141453
-  #        url-template: https://github.com/nlohmann/json/archive/v$version.tar.gz
-  #- name: boost
-  #  buildsystem: simple
-  #  build-commands:
-  #    - ./bootstrap.sh --with-libraries=context,container,system,headers
-  #    - ./b2 -j $FLATPAK_BUILDER_N_JOBS install --prefix=/app
-  #  sources:
-  #    - type: archive
-  #      url: >-
-  #        https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2
-  #      sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 6845
-  #        url-template: >-
-  #          https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_0.tar.bz2
-  #- name: nv-codec-headers
-  #  make-install-args:
-  #    - PREFIX=/app
-  #  no-autogen: true
-  #  cleanup:
-  #    - '*'
-  #  sources:
-  #    - type: git
-  #      url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
-  #      tag: n11.1.5.1
-  #      commit: 84483da70d903239d4536763fde8c7e6c4e80784
-  #      x-checker-data:
-  #        type: git
-  #        tag-pattern: ^n([\d.]+)$
-  #- name: yuzu
-  #  buildsystem: cmake-ninja
-  #  builddir: true
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
-  #    - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
-  #    - '-DENABLE_QT_TRANSLATION=ON'
-  #    - '-DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON'
-  #    - '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON'
-  #    - '-DYUZU_USE_QT_WEB_ENGINE=ON'
-  #    - '-DYUZU_USE_BUNDLED_FFMPEG=ON'
-  #    - '-DDISPLAY_VERSION=963'
-  #    - '-DBUILD_TAG=mainline-963'
-  #    - '-DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline'
-  #  build-options:
-  #    env:
-  #      TITLEBARFORMATIDLE: yuzu {}
-  #      TITLEBARFORMATRUNNING: yuzu {} | {}
-  #      LDFLAGS: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed'
-  #  cleanup:
-  #    - /share/man
-  #    - /share/pixmaps
-  #  post-install:
-  #    - install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher
-  #    - >-
-  #      install -Dm644 ../org.yuzu_emu.yuzu.metainfo.xml
-  #      /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml
-  #    - desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop
-  #    - >-
-  #      desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key
-  #      Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop
-  #    - >-
-  #      install -Dm644 ../dist/yuzu.svg
-  #      /app/share/icons/hicolor/scalable/apps/yuzu.svg
-  #    - >-
-  #      mv /app/share/mime/packages/yuzu.xml
-  #      /app/share/mime/packages/org.yuzu_emu.yuzu.xml
-  #    - >-
-  #      sed 's/yuzu/org.yuzu_emu.yuzu/g' -i
-  #      /app/share/mime/packages/org.yuzu_emu.yuzu.xml
-  #  sources:
-  #    - type: git
-  #      url: https://github.com/yuzu-emu/yuzu-mainline.git
-  #      tag: mainline-0-963
-  #      commit: 15bf148daf441e69265ea99771e0f1d327c5c10e
-  #      disable-shallow-clone: true
-  #      x-checker-data:
-  #        type: git
-  #        tag-pattern: ^(mainline-0-\d+)$
-  #    - type: file
-  #      path: org.yuzu_emu.yuzu.metainfo.xml
-  #    - type: file
-  #      path: yuzu-launcher.sh
-  #    - type: file
-  #      path: compatibility_list.json
-
+  - name: libzip
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
+    sources:
+      - type: archive
+        url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz
+        sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f
+        x-checker-data:
+          type: anitya
+          project-id: 10649
+          url-template: https://github.com/nih-at/libzip/archive/v$version.tar.gz
+  - name: zstd
+    buildsystem: simple
+    build-commands:
+      - make -j $FLATPAK_BUILDER_N_JOBS
+      - make PREFIX=/ DESTDIR="${FLATPAK_DEST}" install
+    sources:
+      - type: archive
+        url: >-
+          https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
+        sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0
+        x-checker-data:
+          type: anitya
+          project-id: 12083
+          url-template: >-
+            https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz
+  - name: fmt
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DFMT_TEST=OFF'
+    sources:
+      - type: archive
+        url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip
+        sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d
+        x-checker-data:
+          type: anitya
+          project-id: 11526
+          url-template: >-
+            https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip
+  - name: glslang
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+    sources:
+      - type: archive
+        url: https://github.com/KhronosGroup/glslang/archive/11.8.0.tar.gz
+        sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0
+        x-checker-data:
+          type: anitya
+          stable-only: true
+          project-id: 205796
+          url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz
+  - name: catch2
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+      - '-DCATCH_BUILD_TESTING=OFF'
+    builddir: true
+    sources:
+      - type: archive
+        url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz
+        sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a
+        x-checker-data:
+          type: anitya
+          stable-only: true
+          project-id: 7680
+          url-template: https://github.com/catchorg/Catch2/archive/v$version.tar.gz
+  - name: nlohmann-json
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+      - '-DJSON_BuildTests=OFF'
+    sources:
+      - type: archive
+        url: https://github.com/nlohmann/json/archive/v3.10.5.tar.gz
+        sha256: 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4
+        x-checker-data:
+          type: anitya
+          project-id: 141453
+          url-template: https://github.com/nlohmann/json/archive/v$version.tar.gz
+  - name: boost
+    buildsystem: simple
+    build-commands:
+      - ./bootstrap.sh --with-libraries=context,container,system,headers
+      - ./b2 -j $FLATPAK_BUILDER_N_JOBS install --prefix=/app
+    sources:
+      - type: archive
+        url: >-
+          https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2
+        sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc
+        x-checker-data:
+          type: anitya
+          project-id: 6845
+          url-template: >-
+            https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_0.tar.bz2
+  - name: nv-codec-headers
+    make-install-args:
+      - PREFIX=/app
+    no-autogen: true
+    cleanup:
+      - '*'
+    sources:
+      - type: git
+        url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
+        tag: n11.1.5.1
+        commit: 84483da70d903239d4536763fde8c7e6c4e80784
+        x-checker-data:
+          type: git
+          tag-pattern: ^n([\d.]+)$
+  - name: yuzu
+    buildsystem: cmake-ninja
+    builddir: true
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
+      - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
+      - '-DENABLE_QT_TRANSLATION=ON'
+      - '-DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON'
+      - '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON'
+      - '-DYUZU_USE_QT_WEB_ENGINE=ON'
+      - '-DYUZU_USE_BUNDLED_FFMPEG=ON'
+      - '-DDISPLAY_VERSION=969'
+      - '-DBUILD_TAG=mainline-969'
+      - '-DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline'
+    build-options:
+      env:
+        TITLEBARFORMATIDLE: yuzu {}
+        TITLEBARFORMATRUNNING: yuzu {} | {}
+        LDFLAGS: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed'
+    cleanup:
+      - /share/man
+      - /share/pixmaps
+    post-install:
+      - install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher
+      - >-
+        install -Dm644 ../org.yuzu_emu.yuzu.metainfo.xml
+        /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml
+      - desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop
+      - >-
+        desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key
+        Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop
+      - >-
+        install -Dm644 ../dist/yuzu.svg
+        /app/share/icons/hicolor/scalable/apps/yuzu.svg
+      - >-
+        mv /app/share/mime/packages/yuzu.xml
+        /app/share/mime/packages/org.yuzu_emu.yuzu.xml
+      - >-
+        sed 's/yuzu/org.yuzu_emu.yuzu/g' -i
+        /app/share/mime/packages/org.yuzu_emu.yuzu.xml
+    sources:
+      - type: git
+        url: https://github.com/yuzu-emu/yuzu-mainline.git
+        tag: mainline-0-969
+        commit: d179e12137cd8ff88b0eade7d13de801661f869b
+        disable-shallow-clone: true
+        x-checker-data:
+          type: git
+          tag-pattern: ^(mainline-0-\d+)$
+      - type: file
+        path: org.yuzu_emu.yuzu.metainfo.xml
+      - type: file
+        path: yuzu-launcher.sh
+      - type: file
+        path: compatibility_list.json
+        
   # Yuzu - END