# Maintainer: Balló György <ballogyor+arch at gmail dot com>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Maxwell Pray a.k.a. Synthead <synthead@gmail.com>

pkgbase=guvcview
pkgname=(guvcview guvcview-common guvcview-qt)
pkgver=2.0.6
pkgrel=5
pkgdesc="Simple interface for capturing and viewing video from v4l2 devices"
arch=('x86_64')
url="http://guvcview.sourceforge.net/"
license=('GPL3')
depends=('ffmpeg' 'gsl' 'gtk3' 'qt5-base' 'portaudio')
makedepends=('intltool')
options=('!emptydirs')
source=("https://downloads.sourceforge.net/$pkgbase/$pkgbase-src-$pkgver.tar.gz"
        0001-Update-AppStream-metadata-to-a-newer-version.patch)
sha256sums=('95381cef5ee139e15f90b79d1425cc22bbaae43f87452cdce6674636aff37e85'
            'd9c65a9bf53eb28c48f9a9126035f5ebe520923124eae507d1cb2994e2a0d08f')

prepare() {
  cd $pkgbase-src-$pkgver

  # Update AppStream metadata to a newer version
  patch -Np1 -i ../0001-Update-AppStream-metadata-to-a-newer-version.patch

  autoreconf -fi
  cp -a ../$pkgbase{,-qt}-src-$pkgver
}

build() {
  # GTK+ version
  cd $pkgbase-src-$pkgver
  ./configure --prefix=/usr --disable-debian-menu
  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
  make

  # Qt version
  cd ../$pkgbase-qt-src-$pkgver
  ./configure --prefix=/usr --disable-debian-menu --disable-gtk3 --enable-qt5
  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
  make
}

package_guvcview-common() {
  pkgdesc="Common files for guvcview"
  depends=('ffmpeg' 'gsl' 'libusb' 'portaudio')

  cd $pkgbase-src-$pkgver
  make DESTDIR="$pkgdir" install
  make -C guvcview DESTDIR="$pkgdir" uninstall
  make -C data DESTDIR="$pkgdir" uninstall-man1 uninstall-appdataDATA uninstall-desktopDATA
  install -Dm644 data/icons/guvcview.png "$pkgdir"/usr/share/icons/hicolor/128x128/apps/guvcview.png
}

package_guvcview() {
  pkgdesc="Simple GTK+ interface for capturing and viewing video from v4l2 devices"
  depends=('guvcview-common' 'gtk3')

  cd $pkgbase-src-$pkgver
  make -C guvcview DESTDIR="$pkgdir" install
  make -C data DESTDIR="$pkgdir" install-man1 install-appdataDATA install-desktopDATA
  sed -i 's/^Icon=.*/Icon=guvcview/' "$pkgdir"/usr/share/applications/guvcview.desktop
}

package_guvcview-qt() {
  pkgdesc="Simple Qt interface for capturing and viewing video from v4l2 devices"
  depends=('guvcview-common' 'qt5-base')

  cd $pkgbase-qt-src-$pkgver
  make -C guvcview DESTDIR="$pkgdir" install
  make -C data DESTDIR="$pkgdir" install-man1 install-appdataDATA install-desktopDATA
  mv "$pkgdir"/usr/bin/guvcview{,-qt}
  mv "$pkgdir"/usr/share/man/man1/guvcview{,-qt}.1
  mv "$pkgdir"/usr/share/applications/guvcview{,-qt}.desktop
  sed -i 's/Exec=guvcview/Exec=guvcview-qt/
          s/^Icon=.*/Icon=guvcview/' "$pkgdir"/usr/share/applications/guvcview-qt.desktop
  mv "$pkgdir"/usr/share/metainfo/guvcview{,-qt}.appdata.xml
  sed -i 's/net.sourceforge.guvcview/net.sourceforge.guvcview-qt/
          s/guvcview.desktop/guvcview-qt.desktop/' "$pkgdir"/usr/share/metainfo/guvcview-qt.appdata.xml
}
