srevinsaju/guiscrcpy

View on GitHub
snap/snapcraft.yaml

Summary

Maintainability
Test Coverage
name: guiscrcpy
version: v2023.1.1
summary: An opensource GUI for android screen mirroring
description: |
  A full fledged GUI integration for the award winning open source scrcpy, for 
  Android Screen mirroring
grade: stable 
confinement: strict 

base: core22

architectures:
- build-on: amd64

apps:
  scrcpy:
    command: usr/local/bin/scrcpy
    environment:
      LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/android:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio:/var/lib/snapd/lib/gl"
      MESA_GLSL_CACHE_DIR: "$SNAP_USER_DATA"
      LIBGL_DRIVERS_PATH: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/dri"
      SCRCPY_SERVER_PATH: "$SNAP/usr/local/share/scrcpy/scrcpy-server"

  adb:  
    command: usr/bin/adb
    environment:
      LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/android/"

  guiscrcpy:
    command: bin/guiscrcpy
    environment: 
      PATH: $SNAP/lib:$SNAP/usr/lib:$SNAP/bin:$SNAP/usr/bin:$SNAP/usr/local/bin:$PATH
      GUISCRCPY_SCRCPY: "$SNAP/usr/local/bin/scrcpy"
      GUISCRCPY_ADB: "$SNAP/usr/bin/adb"
      SCRCPY_SERVER_PATH: "$SNAP/usr/local/share/scrcpy/scrcpy-server"
      GUISCRCPY_SNAP: "TRUE"
    command-chain: &command-chain-common
    - bin/debian-multiarch-triplet-provider-launch
    - bin/classic-launch
    - bin/desktop-launch
    - bin/guiscrcpy
    desktop: share/applications/guiscrcpy.desktop

parts:

  debian-multiarch-triplet-provider-launch:
    plugin: nil
    stage-snaps:
    - debian-multiarch-triplet-provider-launch

  classic-launch:
    plugin: nil
    stage-snaps:
    - classic-launch

  # Remote part for support of various desktop technologies
  # Refer: https://github.com/ubuntu/snapcraft-desktop-helpers/blob/master/snapcraft.yaml
  desktop-qt5:
    build-packages:
    - build-essential
    - qtbase5-dev
    - dpkg-dev
    make-parameters:
    - FLAVOR=qt5
    plugin: make
    source: https://github.com/ubuntu/snapcraft-desktop-helpers.git
    source-subdir: qt

  guiscrcpy:
    after: [desktop-qt5, classic-launch, debian-multiarch-triplet-provider-launch]
    # See 'snapcraft plugins'
    plugin: python
    source: .
    stage: 
      - lib64/*
    python-packages:
      - build
    override-stage: |
      snapcraftctl stage 
      ls -al $CRAFT_STAGE

  scrcpy:
    plugin: nil
    stage-snaps:
      - scrcpy
    stage-packages:
      - freeglut3
    stage:
      - -lib/x86_64-linux-gnu/libcom_err.so.2.1
      - -usr/lib/x86_64-linux-gnu/libsensors.so.4.4.0
      - -usr/lib/x86_64-linux-gnu/libtiff.so.5.3.0
      - -usr/lib/x86_64-linux-gnu/libxml2.so.2.9.4
      - -usr/share/doc/libcom-err2/changelog.Debian.gz
      - -usr/share/doc/libsensors4/changelog.Debian.gz
      - -usr/share/doc/libtiff5/changelog.Debian.gz
      - -usr/share/doc/libxml2/changelog.Debian.gz

plugs:
  adb-support:
  desktop:
  desktop-legacy:
  x11:
  unity7:
  wayland:
  opengl:
  process-control:
  network-bind:
  network:
  adb:
    interface: content
    target: $SNAP/usr/bin

# some parts are inherited from https://github.com/sisco311/scrcpy-snap/blob/master/snap/snapcraft.yaml
# Thanks @sisco311 for the amazing snap!!