Last active
May 25, 2023 17:01
-
-
Save 0xc1c4da/dde33944696de119ab4d98177ab1c873 to your computer and use it in GitHub Desktop.
WIP Nix Package for Plugdata
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ lib, stdenv, cmake, pkg-config, fetchFromGitHub, ensureNewerSourcesForZipFilesHook, | |
xorg, freetype, alsa-lib, curl, webkitgtk, pcre, pcre2, freeglut, | |
util-linux, libselinux, libsepol, libthai, libdatrie, libxkbcommon, libepoxy, | |
libsoup, libsysprof-capture, sqlite, libpsl, python3 }: | |
# Test with | |
# nix-shell -E 'with import <nixpkgs> { }; callPackage ./default.nix { }' | |
# echo "src = $src" && cd $(mktemp -d) && unpackPhase && cd * | |
# mkdir build && cd build | |
# cmake -DENABLE_TESTING=0 -G"Unix Makefiles" .. | |
# cmake --build . --config Release | |
# ../Plugins/Standalone/plugdata | |
# Works! | |
# Build Issues | |
# nix-build -E 'with import <nixpkgs> {}; callPackage ./default.nix {}' | |
# JUCE Assertion failure in juce_Font.cpp:477 | |
# JUCE Assertion failure in juce_Font.cpp:477 | |
# JUCE Assertion failure in juce_File.cpp:977 | |
# JUCE Assertion failure in juce_File.cpp:977 | |
# JUCE Assertion failure in juce_File.cpp:977 | |
# JUCE Assertion failure in juce_File.cpp:977 | |
# JUCE Assertion failure in juce_TemporaryFile.cpp:114 | |
# JUCE Assertion failure in juce_TemporaryFile.cpp:114 | |
# JUCE Assertion failure in FileSystemWatcher.cxx:365 | |
# JUCE Assertion failure in juce_TemporaryFile.cpp:114 | |
# JUCE Assertion failure in juce_TemporaryFile.cpp:114 | |
# JUCE Assertion failure in juce_TemporaryFile.cpp:114 | |
# JUCE Assertion failure in juce_Thread.cpp:43 | |
# Some issue creating files? They already exist and/or can't be created | |
# https://github.com/juce-framework/JUCE/blob/master/modules/juce_core/files/juce_File.cpp#L977 | |
# https://github.com/juce-framework/JUCE/blob/master/modules/juce_core/files/juce_TemporaryFile.cpp#L114 | |
# https://github.com/juce-framework/JUCE/blob/master/modules/juce_core/threads/juce_Thread.cpp#L43 | |
# gcc7Stdenv / stdenv / ccacheStdenv | |
stdenv.mkDerivation rec { | |
name = "plugdata"; | |
version = "0.7.1"; | |
src = fetchFromGitHub { | |
owner = "plugdata-team"; | |
repo = name; | |
rev = "v${version}"; | |
sha256 = "sha256-156y/L2mNh/09UhsRk0etQyhr8K2Ry61SnFAKlXssLc="; | |
fetchSubmodules = true; | |
}; | |
nativeBuildInputs = [ cmake pkg-config ensureNewerSourcesForZipFilesHook ]; | |
buildInputs = [ | |
xorg.libX11 xorg.libXrandr xorg.libXext xorg.libXinerama xorg.libXrender xorg.libXcursor xorg.libXdmcp xorg.libXtst xorg.libXcomposite | |
freetype alsa-lib curl webkitgtk pcre pcre2 freeglut | |
util-linux libselinux libsepol libthai libdatrie libxkbcommon libepoxy | |
libsoup libsysprof-capture sqlite libpsl | |
python3 | |
]; | |
configurePhase = '' | |
mkdir build && cd build | |
cmake -DENABLE_TESTING=0 -G"Unix Makefiles" .. | |
''; | |
buildPhase = '' | |
cmake --build . --config Release | |
''; | |
installPhase = '' | |
mkdir -p $out/bin && mkdir -p $out/lib/{vst3,lv2,clap} | |
mv ../Plugins/Standalone/* $out/bin | |
mv ../Plugins/VST3/* $out/lib/vst3/* | |
mv ../Plugins/LV2/* $out/lib/lv2/* | |
mv ../Plugins/CLAP/* $out/lib/clap/* | |
''; | |
meta = with lib; { | |
description = "plugdata is a free/open-source visual programming environment for audio experimentation, prototyping and education, based on pure-data."; | |
homepage = "https://plugdata.org"; | |
license = licenses.gpl3Plus; | |
platforms = [ "x86_64-linux" ]; | |
maintainers = with maintainers; [ ]; | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment