summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 59a40b727f1e91b6b4930863d652665c06993802 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Maintainer: OSAMC <https://github.com/osam-cologne/archlinux-proaudio>
# Contributor: Florian Hülsmann <fh@cbix.de>

_name=VSTPlugins-UhhyouPlugins
pkgname=uhhyou-plugins
pkgver=0.61.0
pkgrel=1
pkgdesc='A collection of synthesizer and effect VST3 plugins'
arch=(aarch64 x86_64)
url='https://ryukau.github.io/VSTPlugins/'
license=(GPL3)
groups=(pro-audio vst3-plugins)
depends=(cairo gcc-libs glibc libxcb xcb-util xcb-util-cursor)
makedepends=(cmake fontconfig git gtkmm3 libx11 libxkbcommon-x11 pango vst3sdk
             xcb-util-keysyms)
optdepends=('vst3-host: for running VST3 plugins')
_pocketfft_ref=128707f
_vcl_ref=4c90584
source=(
  "$pkgname-$pkgver.tar.gz::https://github.com/ryukau/VSTPlugins/archive/refs/tags/UhhyouPlugins$pkgver.tar.gz"
  "pocketfft-$_pocketfft_ref.tar.gz::https://gitlab.mpcdf.mpg.de/mtr/pocketfft/-/archive/$_pocketfft_ref/pocketfft-$_pocketfft_ref.tar.gz"
  "vcl-$_vcl_ref.tar.gz::https://github.com/vectorclass/version2/archive/$_vcl_ref.tar.gz"
)
sha256sums=('a7f3c968985b1e0e3075fddb7a68b4a683db7c3e0f57107372f4622d2f2ef343'
            'd1877fcdb44e619dd593d33412fe4328e70515863ab3a5de214bc59aa6a4f039'
            'd2a36ccedf4585b33fdba6cb38000aaa022c5b5306efeff2ad58cca52999c827')

prepare() {
  cd $_name$pkgver
  # link submodules
  rm -r lib/pocketfft && ln -s "$srcdir"/pocketfft-$_pocketfft_ref lib/pocketfft
  rm -r lib/vcl && ln -s "$srcdir"/version2-$_vcl_ref* lib/vcl
  # copy and patch vst3sdk
  rm -rf lib/vst3sdk
  if [[ -d /usr/src/vst3sdk ]]; then
    cp -r /usr/src/vst3sdk lib
  else
    cp -r /usr/share/vst3sdk lib
  fi
  cd lib/vst3sdk/vstgui4
  git apply ../../../ci/linux_patch/cairographicscontext.patch
}

build() {
  cmake -B $pkgname-build -S $_name$pkgver \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DSMTG_RUN_VST_VALIDATOR=Off \
    -DSMTG_CREATE_PLUGIN_LINK=Off \
    -Wno-dev
  cmake --build $pkgname-build -j$(nproc --ignore=1)
}

check() {
  for _plugin in $pkgname-build/VST3/Release/*.vst3; do
    # many plugins seem to use a lot of memory during validation so let's only test basics
    $pkgname-build/bin/Release/validator -suite "General Tests" $_plugin
  done
}

package() {
  depends+=(libfontconfig.so libgobject-2.0.so libpango-1.0.so libpangocairo-1.0.so
    libpangoft2-1.0.so libxkbcommon.so libxkbcommon-x11.so ttf-croscore)
  cd  $pkgname-build/VST3/Release
  for plugin in *.vst3; do
    # install executable
    install -vDm755 $plugin/Contents/$CARCH-linux/*.so -t \
      "$pkgdir"/usr/lib/vst3/$plugin/Contents/$CARCH-linux
    # install resources
    if [[ -f $plugin/Contents/moduleinfo.json ]]; then
      install -vDm644 $plugin/Contents/moduleinfo.json \
        -t "$pkgdir"/usr/lib/vst3/$plugin/Contents/Resources
    else
      install -vDm644 $plugin/Contents/Resources/moduleinfo.json \
        -t "$pkgdir"/usr/lib/vst3/$plugin/Contents/Resources
    fi
    [ -f $plugin/Contents/Resources/Snapshots/*.png ] &&
      install -vDm644 $plugin/Contents/Resources/Snapshots/*.png -t \
        "$pkgdir"/usr/lib/vst3/$plugin/Contents/Resources/Snapshots
  done
  # install docs
  cd "$srcdir"/$_name$pkgver/docs
  find . -type f \( -name \*.html -o -name \*.svg -o -name \*.png \) -exec \
    install -vDm644 {} -T "$pkgdir"/usr/share/doc/$pkgname/{} \;
}