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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
{
stdenv,
fetchurl,
carla,
cmake,
dbus,
fftwFloat,
file,
freetype,
jansson,
lib,
libGL,
libx11,
libxcursor,
libxext,
libxrandr,
libarchive,
libjack2,
liblo,
libsamplerate,
libsndfile,
makeWrapper,
pkg-config,
python3,
speexdsp,
libglvnd,
headless ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "cardinal";
version = "26.02";
src = fetchurl {
url = "https://github.com/DISTRHO/Cardinal/releases/download/${finalAttrs.version}/cardinal+deps-${finalAttrs.version}.tar.xz";
hash = "sha256-4xjRCYN6Y7YtFc4gCd8F7CQxB02PLZQ6DN59rZVPYh0=";
};
prePatch = ''
patchShebangs ./dpf/utils/generate-ttl.sh
substituteInPlace plugins/Cardinal/src/Carla.cpp \
--replace-fail "/usr/lib/carla" "${carla}/bin" \
--replace-fail "/usr/share/carla/resources" "${carla}/share"
substituteInPlace plugins/Cardinal/src/Ildaeil.cpp \
--replace-fail "/usr/lib/carla" "${carla}/bin" \
--replace-fail "/usr/share/carla/resources" "${carla}/share"
'';
dontUseCmakeConfigure = true;
enableParallelBuilding = true;
strictDeps = true;
nativeBuildInputs = [
cmake
file
pkg-config
makeWrapper
python3
];
buildInputs = [
dbus
fftwFloat
freetype
jansson
libGL
libx11
libxcursor
libxext
libxrandr
libarchive
liblo
libsamplerate
libsndfile
speexdsp
libglvnd
];
hardeningDisable = [ "format" ];
makeFlags = [
"SYSDEPS=true"
"PREFIX=$(out)"
]
++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "CROSS_COMPILING=true"
++ lib.optional headless "HEADLESS=true";
postInstall = ''
wrapProgram $out/bin/Cardinal \
--suffix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libjack2 ]}
wrapProgram $out/bin/CardinalMini \
--suffix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libjack2 ]}
# this doesn't work and is mainly just a test tool for the developers anyway.
rm -f $out/bin/CardinalNative
'';
meta = {
description = "Plugin wrapper around VCV Rack";
homepage = "https://github.com/DISTRHO/cardinal";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [
magnetophon
PowerUser64
];
mainProgram = "Cardinal";
platforms = lib.platforms.linux;
};
})
|