anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / radio / qradiolink / default.nix
blob035f97fd191522ef8d17bfa5e8d918d16d007946
1 { lib
2 , fetchFromGitHub
3 , libpulseaudio
4 , libconfig
5 # Needs a gnuradio built with qt gui support
6 , gnuradio3_8
7 , thrift
8 # Not gnuradioPackages'
9 , codec2
10 , gmp
11 , gsm
12 , libopus
13 , libjpeg
14 , libsndfile
15 , libftdi
16 , limesuite
17 , soapysdr-with-plugins
18 , protobuf
19 , speex
20 , speexdsp
21 , cppzmq
22 , uhd
25 gnuradio3_8.pkgs.mkDerivation rec {
26   pname = "qradiolink";
27   version = "0.9.0-1";
29   src = fetchFromGitHub {
30     owner = "qradiolink";
31     repo = "qradiolink";
32     rev = version;
33     sha256 = "sha256-Js6DzmUG8O9c9VvjE6hc7JGuFmgc1Wq41zVJb8Us/yI=";
34   };
36   preBuild = ''
37     cd src/ext
38     protoc --cpp_out=. Mumble.proto
39     protoc --cpp_out=. QRadioLink.proto
40     cd ../..
41     qmake
42   '';
44   installPhase = ''
45     install -D qradiolink $out/bin/qradiolink
46     install -Dm644 src/res/icon.png $out/share/pixmaps/qradiolink.png
47     install -Dm644 qradiolink.desktop $out/share/applications/qradiolink.desktop
48   '';
50   buildInputs = [
51     gnuradio3_8.unwrapped.boost
52     codec2
53     gnuradio3_8.unwrapped.logLib
54     gmp
55     libpulseaudio
56     libconfig
57     gsm
58     gnuradio3_8.pkgs.osmosdr
59     libopus
60     libjpeg
61     limesuite
62     soapysdr-with-plugins
63     speex
64     speexdsp
65     gnuradio3_8.qt.qtbase
66     gnuradio3_8.qt.qtmultimedia
67     libftdi
68     libsndfile
69     cppzmq
70     gnuradio3_8.qwt
71     uhd
72   ] ++ lib.optionals (gnuradio3_8.hasFeature "gr-ctrlport") [
73     thrift
74     gnuradio3_8.unwrapped.python.pkgs.thrift
75   ];
76   nativeBuildInputs = [
77     protobuf
78     gnuradio3_8.qt.qmake
79     gnuradio3_8.qt.wrapQtAppsHook
80   ];
82   meta = with lib; {
83     description = "SDR transceiver application for analog and digital modes";
84     mainProgram = "qradiolink";
85     homepage = "http://qradiolink.org/";
86     license = licenses.agpl3Plus;
87     maintainers = [ maintainers.markuskowa ];
88     platforms = platforms.linux;
89   };