id: "net.rpcs3.RPCS3"
runtime: "org.kde.Platform"
runtime-version: "5.15"
sdk: "org.kde.Sdk"
command: "rpcs3"
rename-desktop-file: "rpcs3.desktop"
rename-appdata-file: "rpcs3.appdata.xml"
rename-icon: "rpcs3"
finish-args:
  - "--share=ipc"
  - "--socket=wayland"
  - "--socket=fallback-x11"
  - "--socket=pulseaudio"
  - "--share=network"
  - "--device=all"
  - "--filesystem=host:ro"
  - "--talk-name=org.a11y.Bus"
add-extensions:
  org.freedesktop.Platform.ffmpeg-full:
    directory: "lib/ffmpeg"
    add-ld-path: "."
    version: "20.08"
    autodownload: true
    autodelete: false
cleanup-commands:
  - "mkdir -p ${FLATPAK_DEST}/lib/ffmpeg"
modules:
  - "shared-modules/glu/glu-9.json"
  - "shared-modules/glew/glew.json"
  - "shared-modules/libusb/libusb.json"

  - name: "libevdev"
    buildsystem: "meson"
    config-opts:
      - "-Dtests=disabled"
      - "-Ddocumentation=disabled"
    cleanup:
      - "/bin"
      - "/include"
      - "/lib/pkgconfig"
      - "/share"
    sources:
      - type: "git"
        url: "https://gitlab.freedesktop.org/libevdev/libevdev.git"
        tag: "libevdev-1.10.0"
        commit: "e6f3141eb626f703796bd537469221c8261489b5"

  - name: "rpcs3-llvm"
    buildsystem: "cmake-ninja"
    builddir: true
    build-options:
      cxxflags: "-msse -msse2 -mcx16"
      ldflags: "-fuse-ld=lld"
      env:
        AR: "llvm-ar"
        CC: "clang"
        CXX: "clang++"
        RANLIB: "llvm-ranlib"
    config-opts:
      - "-DCMAKE_BUILD_TYPE=Release"
      - "-DBUILD_SHARED_LIBS=OFF"
      - "-DLLVM_CCACHE_BUILD=ON"
      - "-DLLVM_TARGETS_TO_BUILD='X86'"
      - "-DLLVM_BUILD_RUNTIME=OFF"
      - "-DLLVM_BUILD_TOOLS=OFF"
      - "-DLLVM_INCLUDE_DOCS=OFF"
      - "-DLLVM_INCLUDE_EXAMPLES=OFF"
      - "-DLLVM_INCLUDE_TESTS=OFF"
      - "-DLLVM_INCLUDE_TOOLS=OFF"
      - "-DLLVM_INCLUDE_UTILS=OFF"
      - "-DLLVM_USE_INTEL_JITEVENTS=ON"
      - "-DLLVM_ENABLE_Z3_SOLVER=OFF"
      - "-DCMAKE_CXX_STANDARD=17"
    cleanup:
      - "*"
    sources:
      - type: "git"
        url: "https://github.com/RPCS3/llvm-mirror.git"
        commit: "cb7748dfa0d615e9f5ea9f31e0ce40fe9aeac595"

  - name: "rpcs3"
    buildsystem: "cmake-ninja"
    build-options:
      ldflags: "-fuse-ld=lld"
      env:
        AR: "llvm-ar"
        CC: "clang"
        CXX: "clang++"
        RANLIB: "llvm-ranlib"
    config-opts:
      - "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
      - "-DBUILD_LLVM_SUBMODULE=OFF"
      - "-DUSE_NATIVE_INSTRUCTIONS=OFF"
      - "-DUSE_PRECOMPILED_HEADERS=OFF"
      - "-DUSE_SYSTEM_FFMPEG=ON"
      - "-DUSE_SYSTEM_LIBPNG=ON"
      - "-DUSE_SYSTEM_ZLIB=ON"
      - "-DUSE_SYSTEM_CURL=ON"
      - "-DUSE_SYS_LIBUSB=ON"
    post-install:
      - |
        set -eux;

        sed -i 's|<id>RPCS3</id>|<id>net.rpcs3.RPCS3</id>|' ${FLATPAK_DEST}/share/metainfo/rpcs3.appdata.xml;

        COMM_TAG="$(grep 'version{.*}' rpcs3/rpcs3_version.cpp | awk -F[\{,] '{printf "%d.%d.%d", $2, $3, $4}')";
        COMM_COUNT="$(git rev-list --count HEAD)";
        COMM_HASH="$(git rev-parse --short=8 HEAD)";
        sed -i 's|</component>|<content_rating type="oars-1.1"/><releases><release date="'$(date '+%Y-%m-%d')'" version="'"${COMM_TAG}"'-'"${COMM_COUNT}"'-'"${COMM_HASH}"'"/></releases></component>|' ${FLATPAK_DEST}/share/metainfo/rpcs3.appdata.xml;
    sources:
      - type: "git"
        url: "https://github.com/RPCS3/rpcs3.git"
        commit: "bd269bccaf68caff66324580c0417ca68fc5805c"