socalabs-sn76489: init at 1.1.0 (#376530)

This commit is contained in:
Sandro
2026-01-10 22:52:58 +00:00
committed by GitHub
@@ -0,0 +1,153 @@
{
stdenv,
fetchFromGitHub,
lib,
cmake,
pkg-config,
alsa-lib,
copyDesktopItems,
makeDesktopItem,
libX11,
libXcomposite,
libXcursor,
libXinerama,
libXrandr,
libXtst,
libXdmcp,
libXext,
xvfb,
freetype,
fontconfig,
expat,
libGL,
libjack2,
curl,
ninja,
writableTmpDirAsHomeHook,
nix-update-script,
# Disable VST building by default, since it is unfree
enableVST2 ? false,
}:
let
version = "1.1.0";
in
stdenv.mkDerivation {
pname = "socalabs-sn76489";
inherit version;
src = fetchFromGitHub {
owner = "FigBug";
repo = "SN76489";
tag = "v${version}";
hash = "sha256-m+bmS2ZTA4yH1+UTow+wMYugx/VloPCHEQJp1P6pxvc=";
fetchSubmodules = true;
preFetch = ''
# can't clone using ssh
export GIT_CONFIG_COUNT=1
export GIT_CONFIG_KEY_0=url.https://github.com/.insteadOf
export GIT_CONFIG_VALUE_0=git@github.com:
'';
};
desktopItems = [
(makeDesktopItem {
type = "Application";
name = "socalabs-sn76489";
desktopName = "Socalabs SN76489";
comment = "Socalabs Texas Instruments SN76489 Emulation Plugin";
icon = "SN76489";
exec = "SN76489";
categories = [
"Audio"
"AudioVideo"
];
})
];
nativeBuildInputs = [
writableTmpDirAsHomeHook
cmake
pkg-config
copyDesktopItems
ninja
];
buildInputs = [
alsa-lib
libX11
libXcomposite
libXcursor
libXinerama
libXrandr
libXtst
libXdmcp
libXext
xvfb
libGL
libjack2
freetype
fontconfig
expat
curl
];
cmakeFlags = [
(lib.cmakeBool "JUCE_COPY_PLUGIN_AFTER_BUILD" false)
"--preset ninja-gcc"
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'FORMATS Standalone VST VST3 AU LV2' 'FORMATS Standalone ${lib.optionalString enableVST2 "VST"} VST3 LV2'
'';
strictDeps = true;
preBuild = ''
cd ../Builds/ninja-gcc
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/vst3 $out/lib/lv2 $out/bin
${lib.optionalString enableVST2 ''
mkdir -p $out/lib/vst
cp -r SN76489_artefacts/Release/VST/libSN76489.so $out/lib/vst
''}
cp -r SN76489_artefacts/Release/LV2/SN76489.lv2 $out/lib/lv2
cp -r SN76489_artefacts/Release/VST3/SN76489.vst3 $out/lib/vst3
install -Dm555 SN76489_artefacts/Release/Standalone/SN76489 $out/bin
install -Dm444 $src/plugin/Resources/logo.png $out/share/pixmaps/SN76489.png
runHook postInstall
'';
NIX_LDFLAGS = (
toString [
"-lX11"
"-lXext"
"-lXcomposite"
"-lXcursor"
"-lXinerama"
"-lXrandr"
"-lXtst"
"-lXdmcp"
]
);
passthru.updateScript = nix-update-script { };
meta = {
description = "Socalabs Texas Instruments SN76489 Emulation Plugin";
homepage = "https://socalabs.com/synths/sn76489/";
mainProgram = "SN76489";
platforms = lib.platforms.linux;
license = [ lib.licenses.lgpl21 ] ++ lib.optional enableVST2 lib.licenses.unfree;
maintainers = [ lib.maintainers.l1npengtul ];
};
}