From d802e9910dc19b7ee8b6620a7d7bfb27099bdadb Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 14 Aug 2025 17:14:45 +0300 Subject: [PATCH] gnuradioMinimal.pkgs.osmosdr: make it possible to disable features --- .../gnuradio-modules/osmosdr/default.nix | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/pkgs/development/gnuradio-modules/osmosdr/default.nix b/pkgs/development/gnuradio-modules/osmosdr/default.nix index 8b67512adbec..edfd4ac5aad6 100644 --- a/pkgs/development/gnuradio-modules/osmosdr/default.nix +++ b/pkgs/development/gnuradio-modules/osmosdr/default.nix @@ -26,6 +26,7 @@ libbladeRF, rtl-sdr, soapysdr-with-plugins, + features ? { }, }: mkDerivation (finalAttrs: { @@ -61,12 +62,8 @@ mkDerivation (finalAttrs: { fftwFloat gmp icu - airspy - hackrf - libbladeRF - rtl-sdr - soapysdr-with-plugins ] + ++ finalAttrs.finalPackage.passthru.enabledFeaturesDeps ++ lib.optionals (gnuradio.hasFeature "gr-blocks") [ libsndfile ] @@ -83,7 +80,8 @@ mkDerivation (finalAttrs: { ]; cmakeFlags = [ (if (gnuradio.hasFeature "python-support") then "-DENABLE_PYTHON=ON" else "-DENABLE_PYTHON=OFF") - ]; + ] + ++ finalAttrs.finalPackage.passthru.enabledFeaturesCmakeFlags; nativeBuildInputs = [ cmake pkg-config @@ -92,6 +90,25 @@ mkDerivation (finalAttrs: { python.pkgs.mako python ]; + passthru = { + featuresDeps = { + # Other features don't have dependencies but can still be disabled in the + # `features` argument. + airspy = [ airspy ]; + bladerf = [ libbladeRF ]; + hackrf = [ hackrf ]; + rtl = [ rtl-sdr ]; + soapy = [ soapysdr-with-plugins ]; + }; + enabledFeaturesDeps = lib.pipe finalAttrs.finalPackage.passthru.featuresDeps [ + (lib.filterAttrs (name: deps: features.${name} or true)) + lib.attrValues + lib.flatten + ]; + enabledFeaturesCmakeFlags = lib.mapAttrsToList ( + feat: val: lib.cmakeBool "ENABLE_${lib.toUpper feat}" val + ) features; + }; meta = { description = "Gnuradio block for OsmoSDR and rtl-sdr";