name: clementine
version: '1.3.1.31+git'
summary: modern music player
description: |
  Clementine is a modern music player and library organizer

grade: stable
confinement: strict
base: core18

parts:

  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
    stage-packages:
      - libqt5gui5
      - libqt5svg5
      - libgdk-pixbuf2.0-0
      - locales-all
      - xdg-user-dirs
      - fcitx-frontend-qt5
      - libxkbcommon0
      - ttf-ubuntu-font-family
      - dmz-cursor-theme
      - light-themes
      - gnome-themes-standard
      - shared-mime-info
      - adwaita-icon-theme
      - oxygen-icon-theme
      - breeze-icon-theme
      - try: [appmenu-qt5]

  alsa-lib:
    plugin: autotools
    source: https://www.alsa-project.org/files/pub/lib/alsa-lib-1.1.5.tar.bz2
    configflags:
      - --prefix=/usr
      - --sysconfdir=/etc
      - --libexec=/usr/lib
      - --libdir=/usr/lib
      - --localstatedir=/var
      - --with-configdir=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/share/alsa
      - --with-plugindir=/snap/$SNAPCRAFT_PROJECT_NAME/current/usr/lib/alsa-lib
      - --disable-static
    stage:
      - usr/include
      - usr/lib
    prime:
      - -usr/bin
      - -usr/include
      - -usr/lib/pkgconfig
      - -usr/share/alsa/alsa.conf
      - -usr/share/alsa/pcm
      - -usr/share/alsa/topology/broadwell

  clementine:
    plugin: cmake
    source-type: git
    source: https://github.com/clementine-player/Clementine
    after:
      - alsa-lib
      - desktop-qt5
    override-build: |
      cmake ../src -DCMAKE_INSTALL_PREFIX=/usr
      make -j $(getconf _NPROCESSORS_ONLN)
      make DESTDIR=$SNAPCRAFT_PART_INSTALL install
      sed -i 's|Icon=clementine|Icon=/usr/share/icons/hicolor/scalable/apps/clementine\.svg|' $SNAPCRAFT_PART_INSTALL/usr/share/applications/clementine.desktop
      sed -i 's|TryExec=.*|TryExec=/snap/bin/clementine|' $SNAPCRAFT_PART_INSTALL/usr/share/applications/clementine.desktop

    build-packages:
      - cmake
      - make
      - gcc
      - g++
      - protobuf-compiler
      - gettext
      - libglib2.0-dev
      - libgnutls28-dev
      - libdbus-1-dev
      - libprotobuf-dev
      - libboost-dev
      - libsqlite3-dev
      - libasound2-dev
      - libpulse-dev
      - libtag1-dev
      - qtbase5-dev
      - qtbase5-dev-tools
      - qtbase5-private-dev
      - qttools5-dev
      - libqt5x11extras5-dev
      - libqt5opengl5-dev
      - libgstreamer1.0-dev
      - libgstreamer-plugins-base1.0-dev
      - libcdio-dev
      - libgpod-dev
      - libmtp-dev
      - libplist-dev
      - libusbmuxd-dev
      - libchromaprint-dev
      - libfftw3-dev
      - liblastfm5-dev
      - libglew-dev
      - libcrypto++-dev
      - libsparsehash-dev

    stage-packages:
      - libstdc++6
      - libgcc1
      - libprotobuf10
      - libpcre16-3
      - libqt5core5a
      - libqt5gui5
      - libqt5widgets5
      - libqt5concurrent5
      - libqt5network5
      - libqt5dbus5
      - libqt5sql5
      - libqt5x11extras5
      - libqt5opengl5
      - libqt5xml5
      - libqt5sql5-sqlite
      - libsqlite3-0
      - libgpm2
      - libasound2
      - libasound2-plugins
      - libpulse0
      - libcdio17
      - libgpod4
      - libmtp9
      - libplist3
      - libusbmuxd4
      - libtag1v5
      - libchromaprint1
      - zlib1g
      - libx11-6
      - libxcomposite1
      - libxcursor1
      - libxinerama1
      - libxrandr2
      - libdb5.3
      - libglu1
      - libslang2
      - libatk1.0-0
      - libatk-bridge2.0-0
      - libatk1.0-data
      - libatk-adaptor
      - libprojectm2v5
      - libcrypto++6
      - liblastfm5-1
      - libgstreamer1.0-0
      - libgstreamer-plugins-base1.0-0
      - gstreamer1.0-alsa
      - gstreamer1.0-pulseaudio
      - gstreamer1.0-plugins-base
      - gstreamer1.0-plugins-good
      - gstreamer1.0-plugins-bad
      - gstreamer1.0-plugins-ugly
      - gstreamer1.0-libav
      - dbus-x11
      - projectm-data

apps:
  clementine:
    command: desktop-launch $SNAP/usr/bin/clementine
    desktop: usr/share/applications/clementine.desktop
    environment:
      ALSA_CONFIG_PATH: /snap/$SNAPCRAFT_PROJECT_NAME/current/usr/share/alsa/alsa.conf
      LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio
    plugs:
      - home
      - udisks2
      - network
      - network-manager-observe
      - network-bind
      - desktop
      - desktop-legacy
      - x11
      - wayland
      - alsa
      - pulseaudio
      - removable-media
      - optical-drive
      - raw-usb
      - media-hub
      - screen-inhibit-control
      - unity7
    slots:
      - mpris

  clementine-tagreader:
    command: clementine-tagreader
    plugs:
      - network
      - network-manager-observe
      - network-bind