anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / radio / limesuite / default.nix
blob9190896d8e11a15bd75b0d27877a705a0b36995e
1 { lib, stdenv, fetchFromGitHub, cmake
2 , sqlite, wxGTK32, libusb1, soapysdr
3 , mesa_glu, libX11, gnuplot, fltk
4 , GLUT
5 , withGui ? false
6 }:
8 stdenv.mkDerivation rec {
9   pname = "limesuite";
10   version = "23.11.0";
12   src = fetchFromGitHub {
13     owner = "myriadrf";
14     repo = "LimeSuite";
15     rev = "v${version}";
16     sha256 = "sha256-f1cXrkVCIc1MqTvlCUBFqzHLhIVueybVxipNZRlF2gE=";
17   };
19   nativeBuildInputs = [ cmake ];
21   cmakeFlags = [
22     "-DOpenGL_GL_PREFERENCE=GLVND"
23   ] ++ lib.optional (!withGui) "-DENABLE_GUI=OFF";
25   buildInputs = [
26     libusb1
27     sqlite
28     gnuplot
29     libusb1
30     soapysdr
31   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
32     GLUT
33   ] ++ lib.optionals withGui [
34     fltk
35     libX11
36     mesa_glu
37     wxGTK32
38   ];
40   postInstall = ''
41     install -Dm444 -t $out/lib/udev/rules.d ../udev-rules/64-limesuite.rules
42     install -Dm444 -t $out/share/limesuite bin/Release/lms7suite_mcu/*
43   '';
45   meta = with lib; {
46     description = "Driver and GUI for LMS7002M-based SDR platforms";
47     homepage = "https://github.com/myriadrf/LimeSuite";
48     license = licenses.asl20;
49     maintainers = with maintainers; [ markuskowa ];
50     platforms = platforms.unix;
51     badPlatforms = lib.optionals withGui platforms.darwin; # withGui transitively depends on mesa, which is broken on darwin
52   };