app-id: net.shadps4.shadPS4
runtime: org.kde.Platform
runtime-version: '6.8'
sdk: org.kde.Sdk
command: shadps4
desktop-file-name-suffix: ' Nightly'

finish-args:
  # gamepad and 3D hardware support
  - --device=all
  - --allow=bluetooth
  # Wayland + fallback
  - --socket=wayland
  - --socket=fallback-x11
  - --share=ipc
  # Audio
  - --socket=pulseaudio
  - --talk-name=org.kde.StatusNotifierWatcher
  # Reading the game list is very slow through the XDG portal
  # More filesystem overrides may need to be added by users
  # depending on where they store their games but these
  # are reasonable defaults for direct access.
  - --share=network
  - --filesystem=home
  - --filesystem=/media
  - --filesystem=/run/media

sdk-extensions:
  - org.freedesktop.Sdk.Extension.llvm18

add-extensions:
  org.freedesktop.Platform.ffmpeg-full:
    directory: lib/ffmpeg
    add-ld-path: .
    version: '24.08'
    no-autodownload: false
    autodelete: false

cleanup-commands:
  - mkdir -p ${FLATPAK_DEST}/lib/ffmpeg

modules:
  - name: rapidjson
    buildsystem: cmake-ninja
    config-opts:
      - -DRAPIDJSON_BUILD_DOC=OFF
      - -DRAPIDJSON_BUILD_EXAMPLES=OFF
      - -DRAPIDJSON_BUILD_TESTS=OFF
      - -DRAPIDJSON_BUILD_THIRDPARTY_GTEST=OFF
    sources:
      - type: archive
        url: https://api.github.com/repos/Tencent/rapidjson/zipball/v1.1.0
        dest-filename: rapidjson.zip
        sha256: 7fb9f29b86f6842a6f67ebdf6b56b3fc25671b3bca50448e1505f47f37eb19d5
        x-checker-data:
          type: json
          url: https://api.github.com/repos/tencent/rapidjson/releases/latest
          version-query: .tag_name
          url-query: .zipball_url
    cleanup:
      - '*'

  - name: shadps4
    buildsystem: cmake-ninja
    builddir: true
    build-options:
      append-path: /usr/lib/sdk/llvm18/bin
      prepend-ld-library-path: /usr/lib/sdk/llvm18/lib
    config-opts:
      - -DENABLE_UPDATER=OFF
      - -DENABLE_QT_GUI=ON
      - -DCMAKE_C_COMPILER=clang
      - -DCMAKE_CXX_COMPILER=clang++
      - -DCMAKE_BUILD_TYPE=RelWithDebInfo
      - -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO=ON
    sources:
      # We're using a git source here rather than a zipball because zip/tarballs
      # don't include submodules, which shadps4 depends on (in the externals directory)
      - type: git
        url: https://github.com/shadps4-emu/shadPS4
        commit: fc50567fc2e5be7f061f22981e6f98082bc9fe27
        x-checker-data:
          type: json
          url: https://api.github.com/repos/shadps4-emu/shadps4/commits/main
          commit-query: .sha