summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: f5e03bc4432a6a882d63cb87af75e092693d6c9f (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
# Maintainer: aik2 <aik2 at aik2 dot site>

pkgname='plugdata-git'
_name='plugdata'
pkgdesc='Plugin wrapper around Pure Data with a new JUCE GUI, allowing patching in DAWs'
pkgver=r10469.4b5c0a8
pkgrel=1
groups=('vst-plugins' 'lv2-plugins' 'vst3-plugins' 'pro-audio')
depends=('freetype2' 'libx11' 'libxrandr' 'libxext' 'libxinerama' 'libxrender' 'libxcursor' 'libxi' 'alsa-lib' 'curl' 'jack' 'fontconfig' 'libxkbcommon' 'wayland' 'libdecor' 'freeglut' 'mesa' 'glfw-x11' 'glew' 'openssl')
makedepends=('git' 'cmake' 'ninja' 'gcc' 'python' 'pkgconf' 'unzip')
optdepends=()
provides=($_name)
conflicts=($_name)
arch=('x86_64')
url='https://github.com/plugdata-team/plugdata/'
license=('GPL3')
source=("git+https://github.com/plugdata-team/plugdata.git#branch=develop"
    "${_name}.desktop"
    "${_name}.png")
sha512sums=('SKIP'
    '1a64e0abbc5e2e9417bf3e2d7f0186b8137a92cebf2123adff550dba53468588c46200f5f40056fad745d583282e1bdd903da14dc064846f91309dc570bc25e3'
    '6ed1228803ea10d51e793f6c8f008b87465314a1f6484121745e42f84fe7b443a8319fcdba862b17af2a1a8b04b7275c0d69eb7a07d0841676f671d25e0790b4')

pkgver() {
    cd "${srcdir}/${_name}"
    printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
}

prepare() {
    cd "${srcdir}/${_name}"
    git submodule update --init --recursive --depth=1

    # Disable VDPAU in FFmpeg to avoid linking issues
    sed -i 's/--disable-vaapi/--disable-vaapi --disable-vdpau/' Libraries/pd-else/Source/Shared/ffmpeg/build_ffmpeg.sh
}

build() {
    cd "${srcdir}/${_name}"
    CXX=g++ cmake -Bbuild -GNinja \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_SKIP_RPATH=TRUE \
        -DENABLE_WAYLAND=1
    cmake --build build --config Release
}

package() {
    # Desktop entry & pixmaps
    install -Dm644 "${_name}.desktop" "${pkgdir}/usr/share/applications/${_name}.desktop"
    install -Dm644 "${_name}.png" "${pkgdir}/usr/share/pixmaps/${_name}.png"

    cd "${srcdir}/${_name}"

    # Plugin formats (LV2/VST3 are directories; CLAP is flat files + resources.bin)
    mkdir -p "${pkgdir}/usr/lib/lv2/"
    find ./Plugins -name '*.lv2' -type d -exec cp -ar {} "${pkgdir}/usr/lib/lv2/" \;
    mkdir -p "${pkgdir}/usr/lib/vst3/"
    find ./Plugins -name '*.vst3' -type d -exec cp -ar {} "${pkgdir}/usr/lib/vst3/" \;
    mkdir -p "${pkgdir}/usr/lib/clap/"
    cp -ar Plugins/CLAP/. "${pkgdir}/usr/lib/clap/"

    # Standalone binary; keep it in /usr/lib so resources.bin sits beside it
    mkdir -p "${pkgdir}/usr/lib/${_name}/"
    mkdir -p "${pkgdir}/usr/bin/"
    cp -ar Plugins/Standalone/. "${pkgdir}/usr/lib/${_name}/"
    ln -sr "${pkgdir}/usr/lib/${_name}/${_name}" "${pkgdir}/usr/bin/${_name}"

    # Each plugin format ships its own resources.bin (~21MB) that it looks up
    # relative to itself. Install one canonical copy and symlink all others to
    # avoid duplicating ~126MB across the six locations.
    install -Dm644 "Plugins/Standalone/${_name}-resources.bin" \
        "${pkgdir}/usr/share/${_name}/${_name}-resources.bin"
    find "${pkgdir}" -name "${_name}-resources.bin" \
        ! -path "${pkgdir}/usr/share/*" | while read -r f; do
        ln -srf "${pkgdir}/usr/share/${_name}/${_name}-resources.bin" "$f"
    done
}