aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/radio/dsd/default.nix
blob: a369486278be08bf921bd3ab593cc6d9db6713c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
{ stdenv, fetchFromGitHub, cmake
, mbelib, libsndfile, itpp
, portaudioSupport ? true, portaudio ? null
}:

assert portaudioSupport -> portaudio != null;

stdenv.mkDerivation rec {
  pname = "dsd";
  version = "2018-07-01";

  src = fetchFromGitHub {
    owner = "szechyjs";
    repo = "dsd";
    rev = "f175834e45a1a190171dff4597165b27d6b0157b";
    sha256 = "0w4r13sxvjwacdwxr326zr6p77a8p6ny0g6im574jliw5j3shlhr";
  };

  nativeBuildInputs = [ cmake ];
  buildInputs = [
    mbelib libsndfile itpp
  ] ++ stdenv.lib.optionals portaudioSupport [ portaudio ];

  enableParallelBuilding = true;

  doCheck = true;
  preCheck = ''
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD
  '';

  meta = with stdenv.lib; {
    description = "Digital Speech Decoder";
    longDescription = ''
      DSD is able to decode several digital voice formats from discriminator
      tap audio and synthesize the decoded speech. Speech synthesis requires
      mbelib, which is a separate package.
    '';
    homepage = https://github.com/szechyjs/dsd;
    license = licenses.gpl2;
    platforms = platforms.unix;
    maintainers = with maintainers; [ andrew-d ];
  };
}