nixpkgs/pkgs/applications/audio/furnace/default.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

99 lines
2.5 KiB
Nix
Raw Normal View History

2022-02-10 12:00:31 +01:00
{ stdenv
, lib
2022-03-16 14:47:04 +01:00
, gitUpdater
, testers
2022-03-16 14:47:04 +01:00
, furnace
2022-02-10 12:00:31 +01:00
, fetchFromGitHub
, cmake
, pkg-config
, makeWrapper
2022-06-30 20:18:06 +02:00
, fftw
2022-02-10 12:00:31 +01:00
, fmt_8
, libsndfile
2022-06-30 20:18:06 +02:00
, rtmidi
2022-02-10 12:00:31 +01:00
, SDL2
, zlib
, withJACK ? stdenv.hostPlatform.isUnix
, libjack2
, withGUI ? true
, Cocoa
}:
stdenv.mkDerivation rec {
pname = "furnace";
2022-09-23 11:00:20 +02:00
version = "0.6pre1.5";
2022-02-10 12:00:31 +01:00
src = fetchFromGitHub {
owner = "tildearrow";
repo = "furnace";
rev = "v${version}";
fetchSubmodules = true;
2022-09-23 11:00:20 +02:00
sha256 = "sha256-2Bl6CFZJkhdNxMZiJ392zjcVMu8BgyK58R8aE4ToskY=";
2022-02-10 12:00:31 +01:00
};
nativeBuildInputs = [
cmake
pkg-config
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
makeWrapper
];
buildInputs = [
2022-06-30 20:18:06 +02:00
fftw
2022-02-10 12:00:31 +01:00
fmt_8
libsndfile
2022-06-30 20:18:06 +02:00
rtmidi
2022-02-10 12:00:31 +01:00
SDL2
zlib
] ++ lib.optionals withJACK [
libjack2
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
Cocoa
];
cmakeFlags = [
"-DBUILD_GUI=${if withGUI then "ON" else "OFF"}"
2022-06-30 20:18:06 +02:00
"-DSYSTEM_FFTW=ON"
2022-02-10 12:00:31 +01:00
"-DSYSTEM_FMT=ON"
"-DSYSTEM_LIBSNDFILE=ON"
2022-06-30 20:18:06 +02:00
"-DSYSTEM_RTMIDI=ON"
2022-02-10 12:00:31 +01:00
"-DSYSTEM_SDL2=ON"
2022-06-30 20:18:06 +02:00
"-DSYSTEM_ZLIB=ON"
2022-02-10 12:00:31 +01:00
"-DWITH_JACK=${if withJACK then "ON" else "OFF"}"
"-DWARNINGS_ARE_ERRORS=ON"
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
# Normal CMake install phase on Darwin only installs the binary, the user is expected to use CPack to build a
# bundle. That adds alot of overhead for not much benefit (CPack is currently abit broken, and needs impure access
# to /usr/bin/hdiutil). So we'll manually assemble & install everything instead.
mkdir -p $out/{Applications/Furnace.app/Contents/{MacOS,Resources},share/{,doc,licenses}/furnace}
mv $out/{bin,Applications/Furnace.app/Contents/MacOS}/furnace
makeWrapper $out/{Applications/Furnace.app/Contents/MacOS,bin}/furnace
install -m644 {../res,$out/Applications/Furnace.app/Contents}/Info.plist
install -m644 ../res/icon.icns $out/Applications/Furnace.app/Contents/Resources/Furnace.icns
install -m644 {..,$out/share/licenses/furnace}/LICENSE
cp -r ../papers $out/share/doc/furnace/
cp -r ../demos $out/share/furnace/
'';
2022-03-16 14:47:04 +01:00
passthru = {
updateScript = gitUpdater {
rev-prefix = "v";
};
tests.version = testers.testVersion {
2022-03-16 14:47:04 +01:00
package = furnace;
};
2022-02-10 12:00:31 +01:00
};
meta = with lib; {
description = "Multi-system chiptune tracker compatible with DefleMask modules";
homepage = "https://github.com/tildearrow/furnace";
license = with licenses; [ gpl2Plus ];
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;
};
}