guix_mirror_bot pushed a commit to branch master
in repository guix.

commit 728af8117e79bf900e2d38b8d92f0184803bda55
Author: Jordan Moore <[email protected]>
AuthorDate: Sat May 24 18:45:24 2025 -0400

    gnu: Add limesuite-ng.
    
    * gnu/packages/radio.scm (limesuite-ng): New variable.
    
    Change-Id: I3df16ede6ba42249e201b3331d03a9ec15adaeda
    Signed-off-by: Ian Eure <[email protected]>
---
 gnu/packages/radio.scm | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm
index 175ed05f8c..25f9d53fed 100644
--- a/gnu/packages/radio.scm
+++ b/gnu/packages/radio.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2024 Andy Tai <[email protected]>
 ;;; Copyright © 2024 Noisytoot <[email protected]>
 ;;; Copyright © 2025 Rutherther <[email protected]>
+;;; Copyright © 2025 Jordan Moore <[email protected]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1913,6 +1914,97 @@ mode) providing weak signal keyboard to keyboard 
messaging to amateur radio
 operators.")
     (license license:gpl3)))
 
+(define-public limesuite-ng
+  (package
+    (name "limesuite-ng")
+    (version "25.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/myriadrf/LimeSuiteNG.git";)
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1riawgl7x89n6384y1j6brak3yzslap1vsnr5i33rwqf7hbrl4kh"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      #~(list
+         ;; Do not build pcie drivers, as they require
+         ;; kernel specific headers.
+         "-DBUILD_DRIVERS_LIMEPCIE=false"
+         ;; Specify the udev rules installation path into
+         ;; the ouput profile.
+         (string-append "-DUDEV_RULES_INSTALL_PATH="
+                        #$output "/lib/udev/rules.d")
+         ;; Do not reload udev rules after build.
+         "-DUDEV_RULES_RELOAD_ON_INSTALL=false")
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; The test binary requires different build options, so we
+          ;; re-issue a cmake configure + build before running the tests.
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (with-directory-excursion "../source"
+                  (substitute* "tests/CMakeLists.txt"
+                    ;; Provide google test locally instead of remote fetch.
+                    (("fetchcontent_makeavailable\\(googletest\\)")
+                     "find_package(GTest REQUIRED)"))
+                  ;; Configure the test build.
+                  (invoke "cmake"
+                          "-B"
+                          "../tests"
+                          "-DCMAKE_BUILD_TYPE=Debug"
+                          "-DBUILD_SHARED_LIBS=OFF"
+                          "-DENABLE_UNIT_TESTS=on"
+                          "-DBUILD_GUI=off"))
+                ;; Build and run the test binary.
+                (with-directory-excursion "../tests"
+                  (invoke "cmake"
+                          "--build"
+                          "tests"
+                          "--parallel"
+                          (number->string (parallel-job-count))
+                          "--config"
+                          "Debug"
+                          "--target"
+                          "gtest-runner")
+                  (invoke "./bin/gtest-runner"))))))))
+    (native-inputs (list pkg-config))
+    (inputs (list boost
+                  fftw
+                  glew
+                  gmp
+                  gnuplot
+                  gnuradio
+                  googletest
+                  libusb
+                  mesa
+                  pybind11
+                  python
+                  python-numpy
+                  soapysdr
+                  wxwidgets
+                  ;; GnuRadio-specific dependencies we need for the plugin,
+                  ;; if one is not present, then it will silently omit the
+                  ;; GnuRadio plugin from the build. Necessary dependencies
+                  ;; can be found in the path 
`cmake/Modules/GnuradioConfig.cmake`
+                  ;; in the GnuRadio source code checkout and by grepping for
+                  ;; "Gnuradio_NOT_FOUND_MESSAGE" in CMake build logs.
+                  spdlog
+                  volk))
+    (home-page "https://github.com/myriadrf/LimeSuiteNG";)
+    (synopsis "C++ library and tools for LimeSDR devices (LMS7002M)")
+    (description
+     "Lime Suite NG is a collection of software supporting several hardware
+     platforms based on the LMS7002M transceiver under the LimeSDR name.
+     It provides a C++ API, command-line tools, a GUI, and plugins for
+     multiple SDR tools.")
+    (license license:expat)))
+
 (define-public xnec2c
   (package
     (name "xnec2c")

Reply via email to