app-id: com.github.sunshinestream.sunshine
runtime: org.freedesktop.Platform
runtime-version: "21.08"
sdk: org.freedesktop.Sdk
command: sunshine
separate-locales: false
finish-args:
  - --share=ipc
  - --socket=x11
  - --socket=wayland
  - --socket=pulseaudio
  - --share=network
  - --device=all
  - --persist=.
  - --system-talk-name=org.freedesktop.Avahi
  - --env=PULSE_PROP_media.category=Manager

cleanup:
  - /include
  - /lib/cmake
  - /lib/pkgconfig
  - /lib/*.la
  - /lib/*.a
  - /share

modules:
#  - name: cuda
#    buildsystem: simple
#    only-arches:
#      - x86_64
#      - aarch64
#    cleanup:
#      - '*'
#    build-commands:
#      - chmod u+x ./cuda.run
#      - ./cuda.run --silent --toolkit --toolkitpath=/app --no-opengl-libs --no-man-page --no-drm
#      - rm ./cuda.run
#      - rm -r /app/nsight-systems-2021.3.2
#    sources:
#      - type: file
#        only-arches:
#          - x86_64
#        url: https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run
#        sha256: bbd87ca0e913f837454a796367473513cddef555082e4d86ed9a38659cc81f0a
#        dest-filename: cuda.run
#      - type: file
#        only-arches:
#          - aarch64
#        url: https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux_sbsa.run
#        sha256: f2c4a52e06329606c8dfb7c5ea3f4cb4c0b28f9d3fdffeeb734fcc98daf580d8
#        dest-filename: cuda.run

  - name: boost
    buildsystem: simple
    build-commands:
      - ./bootstrap.sh --prefix=/app --with-libraries=system,thread,log
      - ./b2 install variant=release link=static,shared runtime-link=shared cxxflags="$CXXFLAGS" linkflags="$LDFLAGS" -j $FLATPAK_BUILDER_N_JOBS
    sources:
      - type: archive
        url: https://boostorg.jfrog.io/artifactory/main/release/1.79.0/source/boost_1_79_0.tar.bz2
        sha256: 475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39

  - name: ffmpeg
    config-opts:
      - --enable-gpl
      - --disable-static
      - --enable-shared
      - --disable-doc
      - --disable-programs
      - --disable-decoders
      - --enable-libfontconfig
      - --enable-libfreetype
      - --enable-libopus
      - --enable-libvorbis
      - --enable-libvpx
      - --enable-libx264
      - --enable-libx265
      - --enable-nvenc
      - --enable-encoder=h264_v4l2m2m
      - --enable-encoder=hevc_v4l2m2m
      # - --enable-nonfree
      # - --enable-cuda-nvcc
      # - --enable-libnpp
      # - --extra-cflags=-I/app/include
      # - --extra-ldflags=-L/app/lib64
    cleanup:
      - /share/ffmpeg/examples
    sources:
      - type: archive
        url: https://ffmpeg.org/releases/ffmpeg-4.4.2.tar.xz
        sha256: af419a7f88adbc56c758ab19b4c708afbcae15ef09606b82b855291f6a6faa93
    modules:
      - name: vmaf
        buildsystem: meson
        subdir: libvmaf
        cleanup:
          - /bin
        sources:
          - type: archive
            url: https://github.com/Netflix/vmaf/archive/refs/tags/v2.3.1.tar.gz
            sha256: 8d60b1ddab043ada25ff11ced821da6e0c37fd7730dd81c24f1fc12be7293ef2
      - name: x264
        config-opts:
          - --disable-cli
          - --enable-shared
        sources:
          - type: archive
            url: https://code.videolan.org/videolan/x264/-/archive/stable/x264-stable.tar.bz2
            sha256: 8fedb184045722d8cc39353099373a5b7350171d0964d01fff8eced21b959b29
      - name: x265
        buildsystem: cmake-ninja
        builddir: true
        subdir: source
        config-opts:
          - -DCMAKE_BUILD_TYPE=RelWithDebInfo
          - -DENABLE_CLI=OFF
        sources:
          - type: archive
            url: https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.5.tar.gz
            sha256: e70a3335cacacbba0b3a20ec6fecd6783932288ebc8163ad74bcc9606477cae8
      - name: nv-codec-headers
        no-autogen: true
        make-install-args:
          - PREFIX=/app
        cleanup:
          - '*'
        sources:
          - type: archive
            url: https://github.com/FFmpeg/nv-codec-headers/archive/refs/tags/n11.1.5.1.tar.gz
            sha256: d095fbd56aa93772471a323be0ebe65504a0f43f06c76a30b6d25da77b06ae9c

  - name: avahi
    cleanup:
      - /bin
      - /lib/avahi
      - /share/applications/*.desktop
      - /share/avahi
    config-opts:
      - --with-distro=none
      - --disable-gobject
      - --disable-introspection
      - --disable-qt3
      - --disable-qt4
      - --disable-qt5
      - --disable-gtk
      - --disable-core-docs
      - --disable-manpages
      - --disable-libdaemon
      - --disable-python
      - --disable-pygobject
      - --disable-mono
      - --disable-monodoc
      - --disable-autoipd
      - --disable-doxygen-doc
      - --disable-doxygen-dot
      - --disable-doxygen-xml
      - --disable-doxygen-html
      - --disable-manpages
      - --disable-xmltoman
    sources:
      - type: archive
        url: https://avahi.org/download/avahi-0.8.tar.gz
        sha256: 060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda
    modules:
      - name: libevent
        cleanup:
          - /bin
        sources:
          - type: archive
            url: https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
            sha256: 92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb

  - name: libevdev
    buildsystem: meson
    cleanup:
      - /bin
    sources:
      - type: archive
        url: https://www.freedesktop.org/software/libevdev/libevdev-1.12.1.tar.xz
        sha256: 1dbba41bc516d3ca7abc0da5b862efe3ea8a7018fa6e9b97ce9d39401b22426c
    modules:
      - name: libcheck
        buildsystem: cmake
        cleanup:
          - /bin
        sources:
          - type: archive
            url: https://github.com/libcheck/check/archive/refs/tags/0.15.2.tar.gz
            sha256: 998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e

  - name: sunshine
    buildsystem: cmake
    no-make-install: false
    builddir: true
    build-options:
      cxxflags: -I${C_INCLUDE_PATH}/libevdev-1.0
    config-opts:
      - -DCMAKE_BUILD_TYPE=Release
      - -DCMAKE_INSTALL_PREFIX='/app'
      - -DSUNSHINE_ASSETS_DIR=assets
      - -DSUNSHINE_CONFIG_DIR=config
      - -DSUNSHINE_EXECUTABLE_PATH=/app/bin/sunshine
      - -DSUNSHINE_ENABLE_WAYLAND=ON
      - -DSUNSHINE_ENABLE_X11=ON
      - -DSUNSHINE_ENABLE_DRM=ON
      - -DSUNSHINE_ENABLE_CUDA=ON
    sources:
      - type: git
        url: https://github.com/@GITHUB_OWNER@/@GITHUB_REPO@.git
        branch: @GITHUB_BRANCH@
