Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / wildmidi / default.nix
blob23dc8dc3b05302210524c19269fdf5f3ebd92823
1 { lib, stdenv, fetchFromGitHub, writeTextFile, cmake, alsa-lib, OpenAL, freepats }:
3 let
4   defaultCfgPath = "${placeholder "out"}/etc/wildmidi/wildmidi.cfg";
5 in
6 stdenv.mkDerivation rec {
7   pname = "wildmidi";
8   version = "0.4.5";
10   src = fetchFromGitHub {
11     owner = "Mindwerks";
12     repo = "wildmidi";
13     rev = "${pname}-${version}";
14     sha256 = "sha256-5El8aDpAgjrW0/4lphZEF+Hfv9Xr7J4DMk1b/Tb+0TU=";
15   };
17   nativeBuildInputs = [ cmake ];
19   buildInputs = lib.optionals stdenv.buildPlatform.isLinux [
20     alsa-lib stdenv.cc.libc/*couldn't find libm*/
21   ] ++ lib.optionals stdenv.buildPlatform.isDarwin [
22     OpenAL
23   ];
25   preConfigure = ''
26     # https://github.com/Mindwerks/wildmidi/issues/236
27     substituteInPlace src/wildmidi.pc.in \
28       --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
29       --replace '$'{exec_prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
30   '';
32   cmakeFlags = [
33     "-DWILDMIDI_CFG=${defaultCfgPath}"
34   ];
36   postInstall = let
37     defaultCfg = writeTextFile {
38       name = "wildmidi.cfg";
39       text = ''
40         dir ${freepats}
41         source ${freepats}/freepats.cfg
42       '';
43     };
44   in ''
45     mkdir -p "$(dirname ${defaultCfgPath})"
46     ln -s ${defaultCfg} ${defaultCfgPath}
47   '';
49   meta = with lib; {
50     description = "Software MIDI player and library";
51     longDescription = ''
52       WildMIDI is a simple software midi player which has a core softsynth
53       library that can be use with other applications.
54     '';
55     homepage = "https://wildmidi.sourceforge.net/";
56     # The library is LGPLv3, the wildmidi executable is GPLv3
57     license = licenses.lgpl3;
58     platforms = platforms.unix;
59     maintainers = [ maintainers.bjornfor ];
60   };