96 lines
2.6 KiB
Nix
96 lines
2.6 KiB
Nix
{
|
|
lib,
|
|
mkDerivation,
|
|
fetchFromGitHub,
|
|
fetchpatch,
|
|
cmake,
|
|
pkg-config,
|
|
doxygen,
|
|
wrapQtAppsHook,
|
|
pcre,
|
|
poco,
|
|
qtbase,
|
|
qtsvg,
|
|
qwt6_1,
|
|
nlohmann_json,
|
|
soapysdr-with-plugins,
|
|
portaudio,
|
|
alsa-lib,
|
|
muparserx,
|
|
python3,
|
|
}:
|
|
|
|
mkDerivation rec {
|
|
pname = "pothos";
|
|
version = "0.7.1";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "pothosware";
|
|
repo = "PothosCore";
|
|
rev = "pothos-${version}";
|
|
sha256 = "038c3ipvf4sgj0zhm3vcj07ymsva4ds6v89y43f5d3p4n8zc2rsg";
|
|
fetchSubmodules = true;
|
|
};
|
|
|
|
patches = [
|
|
# spuce's CMakeLists.txt uses QT5_USE_Modules, which does not seem to work on Nix
|
|
./spuce.patch
|
|
# Poco had some breaking API changes in 1.12
|
|
(fetchpatch {
|
|
name = "poco-1.12-compat.patch";
|
|
url = "https://github.com/pothosware/PothosCore/commit/092d1209b0fd0aa8a1733706c994fa95e66fd017.patch";
|
|
hash = "sha256-bZXG8kD4+1LgDV8viZrJ/DMjg8UvW7b5keJQDXurfkA=";
|
|
})
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
doxygen
|
|
wrapQtAppsHook
|
|
];
|
|
|
|
buildInputs = [
|
|
pcre
|
|
poco
|
|
qtbase
|
|
qtsvg
|
|
qwt6_1
|
|
nlohmann_json
|
|
soapysdr-with-plugins
|
|
portaudio
|
|
alsa-lib
|
|
muparserx
|
|
python3
|
|
];
|
|
|
|
postInstall = ''
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow.desktop $out/share/applications/pothos-flow.desktop
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow-16.png $out/share/icons/hicolor/16x16/apps/pothos-flow.png
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow-22.png $out/share/icons/hicolor/22x22/apps/pothos-flow.png
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow-32.png $out/share/icons/hicolor/32x32/apps/pothos-flow.png
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow-48.png $out/share/icons/hicolor/48x48/apps/pothos-flow.png
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow-64.png $out/share/icons/hicolor/64x64/apps/pothos-flow.png
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow-128.png $out/share/icons/hicolor/128x128/apps/pothos-flow.png
|
|
install -Dm644 $out/share/Pothos/Desktop/pothos-flow.xml $out/share/mime/application/pothos-flow.xml
|
|
rm -r $out/share/Pothos/Desktop
|
|
'';
|
|
|
|
dontWrapQtApps = true;
|
|
preFixup = ''
|
|
# PothosUtil does not need to be wrapped
|
|
wrapQtApp $out/bin/PothosFlow
|
|
wrapQtApp $out/bin/spuce_fir_plot
|
|
wrapQtApp $out/bin/spuce_iir_plot
|
|
wrapQtApp $out/bin/spuce_other_plot
|
|
wrapQtApp $out/bin/spuce_window_plot
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Pothos data-flow framework";
|
|
homepage = "https://github.com/pothosware/PothosCore/wiki";
|
|
license = licenses.boost;
|
|
platforms = platforms.linux;
|
|
maintainers = [ ];
|
|
};
|
|
}
|