90 lines
2.2 KiB
Nix
90 lines
2.2 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, pkg-config
|
|
, makeWrapper
|
|
, SDL
|
|
, SDL_image
|
|
, SDL_ttf
|
|
, gtk2
|
|
, glib
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "hivelytracker";
|
|
version = "unstable-2020-08-19";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "pete-gordon";
|
|
repo = "hivelytracker";
|
|
rev = "c8e3c7a5ee9f4a07cb4a941caecf7e4c4f4d40e0";
|
|
sha256 = "1nqianlf1msir6wqwapi7ys1vbmf6aik58wa54b6cn5v6kwxh75a";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
makeWrapper
|
|
];
|
|
|
|
buildInputs = [
|
|
SDL
|
|
SDL_image
|
|
SDL_ttf
|
|
gtk2
|
|
glib
|
|
];
|
|
|
|
makeFlags = [
|
|
"-C sdl"
|
|
"-f Makefile.linux"
|
|
"PREFIX=$(out)"
|
|
];
|
|
|
|
# TODO: try to exclude gtk and glib from darwin builds
|
|
NIX_CFLAGS_COMPILE = [
|
|
"-I${SDL}/include/SDL"
|
|
"-I${SDL_image}/include/SDL"
|
|
"-I${SDL_ttf}/include/SDL"
|
|
"-I${gtk2.dev}/include/gtk-2.0"
|
|
"-I${glib.dev}/include/glib-2.0"
|
|
];
|
|
|
|
# Also build the hvl2wav tool
|
|
postBuild = ''
|
|
make -C hvl2wav
|
|
'';
|
|
|
|
postInstall = ''
|
|
# https://github.com/pete-gordon/hivelytracker/issues/43
|
|
# Ideally we should patch the sources, but the program can't open
|
|
# files passed as arguments anyway, so this works well enough until the
|
|
# issue is fixed.
|
|
wrapProgram $out/bin/hivelytracker \
|
|
--run "cd $out/share/hivelytracker"
|
|
|
|
# Also install the hvl2wav tool
|
|
install -Dm755 hvl2wav/hvl2wav $out/bin/hvl2wav
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "http://www.hivelytracker.co.uk/";
|
|
downloadPage = "http://www.hivelytracker.co.uk/downl.php";
|
|
description = "Chip music tracker based upon the AHX format";
|
|
longDescription = ''
|
|
Hively Tracker is a tracker program based upon the AHX format created in
|
|
the mid '90s by Dexter and Pink of Abyss. The format was relatively
|
|
popular, and many songs were created and used in scene productions and
|
|
games. AHX was designed to create a very SID-like sound on the Amiga.
|
|
|
|
HivelyTracker can import and export modules and instruments in the AHX
|
|
format, but it also improves on AHX in several ways and therefore has
|
|
its own instrument and module formats.
|
|
'';
|
|
license = licenses.bsd3;
|
|
platforms = platforms.all;
|
|
maintainers = with maintainers; [ fgaz ];
|
|
broken = stdenv.isDarwin; # TODO: try to use xcbuild
|
|
};
|
|
}
|
|
|