about summary refs log tree commit diff
path: root/pkgs/applications/radio
diff options
context:
space:
mode:
authorRobert James Hernandez <rob@sarcasticadmin.com>2023-09-29 16:33:29 +0000
committerRobert James Hernandez <rob@sarcasticadmin.com>2023-09-29 16:46:47 +0000
commitd70fb0855e76c1fd4d417c8388dd3412ef73cb39 (patch)
tree26f3ac34f9d173d89025476dd4404d736abab02c /pkgs/applications/radio
parentba0d5f213bd389c0d59398a0e53a2830d2f85261 (diff)
downloadnixlib-d70fb0855e76c1fd4d417c8388dd3412ef73cb39.tar
nixlib-d70fb0855e76c1fd4d417c8388dd3412ef73cb39.tar.gz
nixlib-d70fb0855e76c1fd4d417c8388dd3412ef73cb39.tar.bz2
nixlib-d70fb0855e76c1fd4d417c8388dd3412ef73cb39.tar.lz
nixlib-d70fb0855e76c1fd4d417c8388dd3412ef73cb39.tar.xz
nixlib-d70fb0855e76c1fd4d417c8388dd3412ef73cb39.tar.zst
nixlib-d70fb0855e76c1fd4d417c8388dd3412ef73cb39.zip
direwolf: set hamlib, gpsd, and extraScripts as optional
direwolf includes a set of extra scripts which showcase various
capabilities of the pkg. However, they depend on languages that are not
critical to building direwolf itself.
Diffstat (limited to 'pkgs/applications/radio')
-rw-r--r--pkgs/applications/radio/direwolf/default.nix26
1 files changed, 16 insertions, 10 deletions
diff --git a/pkgs/applications/radio/direwolf/default.nix b/pkgs/applications/radio/direwolf/default.nix
index 0cd513b2bb02..f72b190c8702 100644
--- a/pkgs/applications/radio/direwolf/default.nix
+++ b/pkgs/applications/radio/direwolf/default.nix
@@ -4,11 +4,14 @@
 , cmake
 , alsa-lib
 , gpsd
+, gpsdSupport ? false
 , hamlib
+, hamlibSupport ? true
 , perl
 , python3
 , espeak
 , udev
+, extraScripts ? false
 }:
 
 stdenv.mkDerivation rec {
@@ -26,13 +29,14 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  buildInputs = [
-    espeak
-    gpsd
-    hamlib
-    perl
-    python3
-  ] ++ (lib.optionals stdenv.isLinux [ alsa-lib udev ]);
+  buildInputs = lib.optionals stdenv.isLinux [ alsa-lib udev ]
+    ++ lib.optionals gpsdSupport [ gpsd ]
+    ++ lib.optionals hamlibSupport [ hamlib ]
+    ++ lib.optionals extraScripts [ python3 perl espeak ];
+
+  preConfigure = lib.optionals (!extraScripts) ''
+    echo "" > scripts/CMakeLists.txt
+  '';
 
   postPatch = ''
     substituteInPlace conf/CMakeLists.txt \
@@ -43,14 +47,16 @@ stdenv.mkDerivation rec {
     substituteInPlace src/decode_aprs.c \
       --replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt \
       --replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt
-    patchShebangs scripts/dwespeak.sh
-    substituteInPlace scripts/dwespeak.sh \
-      --replace espeak ${espeak}/bin/espeak
     substituteInPlace cmake/cpack/direwolf.desktop.in \
       --replace 'Terminal=false' 'Terminal=true' \
       --replace 'Exec=@APPLICATION_DESKTOP_EXEC@' 'Exec=direwolf'
     substituteInPlace src/dwgpsd.c \
       --replace 'GPSD_API_MAJOR_VERSION > 11' 'GPSD_API_MAJOR_VERSION > 14'
+  ''
+  + lib.optionalString extraScripts ''
+    patchShebangs scripts/dwespeak.sh
+    substituteInPlace scripts/dwespeak.sh \
+      --replace espeak ${espeak}/bin/espeak
   '';
 
   meta = with lib; {