nixpkgs/pkgs/tools/audio/fmtoy/default.nix
2022-06-02 22:35:46 +02:00

73 lines
1.6 KiB
Nix

{ stdenv
, lib
, fetchFromGitHub
, unstableGitUpdater
, dos2unix
, pkg-config
, zlib
, alsa-lib
, libjack2
}:
stdenv.mkDerivation rec {
pname = "fmtoy";
version = "unstable-2021-12-24";
src = fetchFromGitHub {
owner = "vampirefrog";
repo = "fmtoy";
rev = "0de6703b3373eb5bf19fd3deaae889286f330c21";
sha256 = "0sr6klkmjd2hd2kyb9y0x986d6lsy8bziizfc6cmhkqcq92fh45c";
};
postPatch = ''
dos2unix Makefile
# Don't hardcode compilers
sed -i -e '/CC=/d' -e '/CXX=/d' Makefile
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
# Remove Linux-only program & its dependencies
sed -i -e '/PROGS/ s/fmtoy_jack//' Makefile
substituteInPlace Makefile \
--replace '$(shell pkg-config alsa jack --cflags)' ""
'';
nativeBuildInputs = [
dos2unix
] ++ lib.optionals stdenv.hostPlatform.isLinux [
pkg-config
];
buildInputs = [
zlib
] ++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
libjack2
];
enableParallelBuilding = true;
installPhase = ''
runHook preInstall
for prog in $(grep 'PROGS=' Makefile | cut -d= -f2-); do
install -Dm755 $prog $out/bin/$prog
done
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater {
url = "https://github.com/vampirefrog/fmtoy.git";
};
meta = with lib; {
homepage = "https://github.com/vampirefrog/fmtoy";
description = "Tools for FM voices for Yamaha YM chips (OPL, OPM and OPN series)";
# Unknown license situation
# https://github.com/vampirefrog/fmtoy/issues/1
license = licenses.unfree;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;
};
}