88519c6309
Inherit spdlog for GR 3.10 and log4cpp for lower GR versions. Inherit both of these in the scope of the GR packages attribute set. Also use the inherited log4cpp in qradiolink, gqrx & gnss-sdr.
85 lines
2.2 KiB
Nix
85 lines
2.2 KiB
Nix
{ lib
|
|
, fetchFromGitHub
|
|
, cmake
|
|
, pkg-config
|
|
, qt5
|
|
, gnuradio3_8Minimal
|
|
, thrift
|
|
, mpir
|
|
, fftwFloat
|
|
, alsa-lib
|
|
, libjack2
|
|
# drivers (optional):
|
|
, rtl-sdr
|
|
, hackrf
|
|
, pulseaudioSupport ? true, libpulseaudio
|
|
, portaudioSupport ? false, portaudio
|
|
}:
|
|
|
|
assert pulseaudioSupport -> libpulseaudio != null;
|
|
assert portaudioSupport -> portaudio != null;
|
|
# audio backends are mutually exclusive
|
|
assert !(pulseaudioSupport && portaudioSupport);
|
|
|
|
gnuradio3_8Minimal.pkgs.mkDerivation rec {
|
|
pname = "gqrx";
|
|
version = "2.15.8";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "gqrx-sdr";
|
|
repo = "gqrx";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-RxwkiJdPHWyhU3azSpWV2M0tG5GInQBpc/ls16V1B94=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
qt5.wrapQtAppsHook
|
|
];
|
|
buildInputs = [
|
|
gnuradio3_8Minimal.unwrapped.log4cpp
|
|
mpir
|
|
fftwFloat
|
|
alsa-lib
|
|
libjack2
|
|
gnuradio3_8Minimal.unwrapped.boost
|
|
qt5.qtbase
|
|
qt5.qtsvg
|
|
gnuradio3_8Minimal.pkgs.osmosdr
|
|
rtl-sdr
|
|
hackrf
|
|
] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [
|
|
thrift
|
|
gnuradio3_8Minimal.unwrapped.python.pkgs.thrift
|
|
] ++ lib.optionals pulseaudioSupport [ libpulseaudio ]
|
|
++ lib.optionals portaudioSupport [ portaudio ];
|
|
|
|
cmakeFlags =
|
|
let
|
|
audioBackend =
|
|
if pulseaudioSupport
|
|
then "Pulseaudio"
|
|
else if portaudioSupport
|
|
then "Portaudio"
|
|
else "Gr-audio";
|
|
in [
|
|
"-DLINUX_AUDIO_BACKEND=${audioBackend}"
|
|
];
|
|
|
|
meta = with lib; {
|
|
description = "Software defined radio (SDR) receiver";
|
|
longDescription = ''
|
|
Gqrx is a software defined radio receiver powered by GNU Radio and the Qt
|
|
GUI toolkit. It can process I/Q data from many types of input devices,
|
|
including Funcube Dongle Pro/Pro+, rtl-sdr, HackRF, and Universal
|
|
Software Radio Peripheral (USRP) devices.
|
|
'';
|
|
homepage = "https://gqrx.dk/";
|
|
# Some of the code comes from the Cutesdr project, with a BSD license, but
|
|
# it's currently unknown which version of the BSD license that is.
|
|
license = licenses.gpl3Plus;
|
|
platforms = platforms.linux; # should work on Darwin / macOS too
|
|
maintainers = with maintainers; [ bjornfor fpletz ];
|
|
};
|
|
}
|