anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / audio / csound / default.nix
blobc6359103593ffdfe502ddaf69e174d8f78f5c5d0
1 { lib, stdenv, fetchFromGitHub, cmake, libsndfile, libsamplerate, flex, bison, boost, gettext
2 , Accelerate
3 , AudioUnit
4 , CoreAudio
5 , CoreMIDI
6 , portaudio
7 , alsa-lib ? null
8 , libpulseaudio ? null
9 , libjack2 ? null
10 , liblo ? null
11 , ladspa-sdk ? null
12 , fluidsynth ? null
13 # , gmm ? null  # opcodes don't build with gmm 5.1
14 , eigen ? null
15 , curl ? null
16 , tcltk ? null
17 , fltk ? null
20 stdenv.mkDerivation rec {
21   pname = "csound";
22   version = "6.18.1";
24   hardeningDisable = [ "format" ];
26   src = fetchFromGitHub {
27     owner = "csound";
28     repo = "csound";
29     rev = version;
30     sha256 = "sha256-O7s92N54+zIl07eIdK/puoSve/qJ3O01fTh0TP+VdZA=";
31   };
33   cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
34     ++ lib.optional stdenv.hostPlatform.isDarwin "-DCS_FRAMEWORK_DEST=${placeholder "out"}/lib"
35     # Ignore gettext in CMAKE_PREFIX_PATH on cross to prevent find_program picking up the wrong gettext
36     ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DCMAKE_IGNORE_PATH=${lib.getBin gettext}/bin";
38   nativeBuildInputs = [ cmake flex bison gettext ];
39   buildInputs = [ libsndfile libsamplerate boost ]
40     ++ lib.optionals stdenv.hostPlatform.isDarwin [
41       Accelerate AudioUnit CoreAudio CoreMIDI portaudio
42     ] ++ lib.optionals stdenv.hostPlatform.isLinux (builtins.filter (optional: optional != null) [
43       alsa-lib libpulseaudio libjack2
44       liblo ladspa-sdk fluidsynth eigen
45       curl tcltk fltk
46     ]);
48   postInstall = lib.optional stdenv.hostPlatform.isDarwin ''
49     mkdir -p $out/Library/Frameworks
50     ln -s $out/lib/CsoundLib64.framework $out/Library/Frameworks
51   '';
53   meta = with lib; {
54     description = "Sound design, audio synthesis, and signal processing system, providing facilities for music composition and performance on all major operating systems and platforms";
55     homepage = "https://csound.com/";
56     license = licenses.lgpl21Plus;
57     maintainers = [maintainers.marcweber];
58     platforms = platforms.unix;
59   };