{ lib, stdenv, fetchFromGitHub, cmake , sqlite, wxGTK32, libusb1, soapysdr , mesa_glu, libX11, gnuplot, fltk , GLUT , withGui ? !stdenv.isDarwin # withGui transitively depends on mesa, which is broken on darwin }: stdenv.mkDerivation rec { pname = "limesuite"; version = "23.10.0"; src = fetchFromGitHub { owner = "myriadrf"; repo = "LimeSuite"; rev = "v${version}"; sha256 = "sha256-o58UNc4r+MQbH00727YTV17M7D29BbH8CgUXCORKk7E="; }; nativeBuildInputs = [ cmake ]; cmakeFlags = [ "-DOpenGL_GL_PREFERENCE=GLVND" ] ++ lib.optional (!withGui) "-DENABLE_GUI=OFF"; buildInputs = [ libusb1 sqlite gnuplot libusb1 soapysdr ] ++ lib.optionals stdenv.isDarwin [ GLUT ] ++ lib.optionals withGui [ fltk libX11 mesa_glu wxGTK32 ]; postInstall = '' install -Dm444 -t $out/lib/udev/rules.d ../udev-rules/64-limesuite.rules install -Dm444 -t $out/share/limesuite bin/Release/lms7suite_mcu/* ''; meta = with lib; { description = "Driver and GUI for LMS7002M-based SDR platforms"; homepage = "https://github.com/myriadrf/LimeSuite"; license = licenses.asl20; maintainers = with maintainers; [ markuskowa ]; platforms = platforms.unix; }; }