highs: 1.8.0 -> 1.8.1 (#360451)
[NixPkgs.git] / pkgs / applications / radio / soapysdr / default.nix
blobde3420fb7c79c851537af3957b20458a120499fa
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   cmake,
6   pkg-config,
7   makeWrapper,
8   libusb-compat-0_1,
9   ncurses,
10   usePython ? false,
11   python ? null,
12   swig,
13   extraPackages ? [ ],
14   buildPackages,
15   testers,
18 stdenv.mkDerivation (finalAttrs: {
19   pname = "soapysdr";
20   version = "0.8.2-pre";
22   src = fetchFromGitHub {
23     owner = "pothosware";
24     repo = "SoapySDR";
26     # Instead of applying several patches for Python 3.12 compat, just take the latest, from:
27     # use old get python lib for v2 (#437)
28     rev = "8c6cb7c5223fad995e355486527589c63aa3b21e";
29     hash = "sha256-CKasL1mlpeuxXyPe6VDdAvb1l5a1cwWgyP7XX1aM73I=";
30   };
32   nativeBuildInputs = [
33     cmake
34     pkg-config
35     makeWrapper
36   ];
37   buildInputs =
38     [
39       libusb-compat-0_1
40       ncurses
41     ]
42     ++ lib.optionals usePython [
43       python
44       swig
45     ];
47   propagatedBuildInputs = lib.optionals usePython [ python.pkgs.numpy ];
49   cmakeFlags = lib.optionals usePython [ "-DUSE_PYTHON_CONFIG=ON" ];
51   postFixup = lib.optionalString (extraPackages != [ ]) (
52     # Join all plugins via symlinking
53     lib.pipe extraPackages [
54       (map (pkg: ''
55         ${buildPackages.xorg.lndir}/bin/lndir -silent ${pkg} $out
56       ''))
57       lib.concatStrings
58     ]
59     + ''
60       # Needed for at least the remote plugin server
61       for file in $out/bin/*; do
62           wrapProgram "$file" --prefix SOAPY_SDR_PLUGIN_PATH : ${lib.escapeShellArg (lib.makeSearchPath finalAttrs.passthru.searchPath extraPackages)}
63       done
64     ''
65   );
67   passthru = {
68     tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
69     searchPath = "lib/SoapySDR/modules${lib.versions.majorMinor finalAttrs.version}";
70   };
72   meta = with lib; {
73     homepage = "https://github.com/pothosware/SoapySDR";
74     description = "Vendor and platform neutral SDR support library";
75     license = licenses.boost;
76     maintainers = with maintainers; [
77       markuskowa
78       numinit
79     ];
80     mainProgram = "SoapySDRUtil";
81     pkgConfigModules = [ "SoapySDR" ];
82     platforms = platforms.unix;
83   };