dotfiles/packages/scopehal-apps/libsigrok4DSL.nix
2024-11-07 16:25:41 -07:00

78 lines
1.7 KiB
Nix

#
# libsigrok with added DreamSourceLab device support, from DSView
#
# vim: et:ts=2:sw=2:
#
{ lib
, pkgs
, pkg-config
, cmake
, libzip
, boost
, fftw
, libusb1
, python3
, fetchpatch
, glib
}:
pkgs.stdenv.mkDerivation rec {
pname = "libsigrok4DSL";
version = "1.2.2";
src = pkgs.fetchFromGitHub {
owner = "DreamSourceLab";
repo = "DSView";
rev = "v${version}";
sha256 = "sha256-QaCVu/n9PDbAiJgPDVN6SJMILeUO/KRkKcHYAstm86Q=";
};
patches = [
# Build specifically libsigrok4DSL, not the rest of dsview.
./only_libsigrok.patch
];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
libusb1
glib
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
];
postInstall = ''
mkdir -p $out/share/pkgconfig
# Convert our libsigrok to the structure scopehal likes.
mkdir -p $out/include/libsigrok4DSL
cp $out/include/*.h $out/include/libsigrok4DSL/
mkdir -p $out/include/log
cp $out/include/xlog.h $out/include/log/
# Also generate a pkg-config file.
cat << EOF > $out/share/pkgconfig/libsigrok4DSL.pc
prefix = $out
libdir = $out/lib
includedir = $out/include
Name: libsigrok4DSL
Description: libsigrok with DreamSourceLab devices
Version: ${version}
Libs: -L$out/lib -lsigrok4DSL -lglib-2.0
Cflags: -I$out/include -I${glib.dev}/include/glib-2.0 -I${glib.out}/lib/glib-2.0/include
EOF
'';
meta = with lib;
{
description = "sigrok with support for instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
homepage = "https://www.dreamsourcelab.com/";
license = licenses.gpl3Plus;
platforms = platforms.linux;
};
}