id: net.rpcs3.RPCS3
runtime: org.kde.Platform
runtime-version: 5.15-22.08
sdk: org.kde.Sdk
sdk-extensions:
  - org.freedesktop.Sdk.Extension.llvm14
command: rpcs3
rename-desktop-file: rpcs3.desktop
rename-appdata-file: rpcs3.metainfo.xml
rename-icon: rpcs3
finish-args:
  - --device=all
  - --filesystem=home:ro
  - --filesystem=/media
  - --filesystem=/run/media
  - --share=ipc
  - --socket=fallback-x11
  - --socket=pulseaudio
  - --socket=wayland
  - --share=network
  - --talk-name=org.freedesktop.ScreenSaver
  - --talk-name=org.mate.ScreenSaver
add-extensions:
  org.freedesktop.Platform.ffmpeg-full:
    directory: lib/ffmpeg
    add-ld-path: .
    version: '22.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

  - name: libevdev
    buildsystem: meson
    config-opts:
      - -Dtests=disabled
      - -Ddocumentation=disabled
    cleanup:
      - /bin
      - /include
      - /lib/pkgconfig
      - /share
    sources:
      - type: archive
        url: https://www.freedesktop.org/software/libevdev/libevdev-1.13.0.tar.xz
        sha256: 9edf2006cc86a5055279647c38ec923d11a821ee4dc2c3033e8d20e8ee237cd9
        x-checker-data:
          type: anitya
          project-id: 20540
          stable-only: true
          url-template: https://www.freedesktop.org/software/libevdev/libevdev-$version.tar.xz

  - name: rpcs3
    buildsystem: cmake-ninja
    builddir: true
    build-options:
      append-ld-library-path: /usr/lib/sdk/llvm14/lib
      append-path: /usr/lib/sdk/llvm14/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_SUBMODULE=ON
      - -DUSE_NATIVE_INSTRUCTIONS=OFF
      - -DUSE_PRECOMPILED_HEADERS=OFF
      - -DUSE_SYSTEM_CURL=ON
      - -DUSE_SYSTEM_FFMPEG=ON
      - -DUSE_SYSTEM_LIBPNG=ON
      - -DUSE_SYSTEM_ZLIB=ON
      - -DITTAPI_SOURCE_DIR=/run/build/rpcs3/ittapi
      - -Wno-dev
    post-install:
      - |-
        set -eux

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

        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)";
        sed -i 's|</component>|<content_rating type="oars-1.1"/><releases><release date="'$(git show -s --format=%cs)'" version="'"${COMM_TAG}"'-'"${COMM_COUNT}"'-'"${COMM_HASH}"'"/></releases></component>|' ${FLATPAK_DEST}/share/metainfo/rpcs3.metainfo.xml
    sources:
      - type: git
        url: https://github.com/RPCS3/rpcs3.git
        branch: master
        commit: c8620070b9f7fadad0e3659dc31ef19be4ebad76
      - type: git
        url: https://github.com/intel/ittapi.git
        branch: master
        commit: 2428ed97aa977c66b30940081e7d3e9b1a3c7402
        dest: ittapi/ittapi
        disable-shallow-clone: true