gssdp-tools: re-add as separate derivation

This commit is contained in:
Jan Tojnar 2021-10-20 19:46:57 +02:00
parent b30e56bddf
commit 767f2007ff
4 changed files with 100 additions and 0 deletions

View file

@ -11,6 +11,7 @@
, libsoup
, glib
, gnome
, gssdp-tools
}:
stdenv.mkDerivation rec {
@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
doCheck = true;
postFixup = ''
# Move developer documentation to devdoc output.
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
find -L "$out/share/doc" -type f -regex '.*\.devhelp2?' -print0 \
| while IFS= read -r -d ''' file; do
@ -61,6 +63,10 @@ stdenv.mkDerivation rec {
updateScript = gnome.updateScript {
packageName = pname;
};
tests = {
inherit gssdp-tools;
};
};
meta = with lib; {

View file

@ -0,0 +1,42 @@
diff --git a/libgssdp/gssdp-client-private.h b/libgssdp/gssdp-client-private.h
index ac31247..241c054 100644
--- a/libgssdp/gssdp-client-private.h
+++ b/libgssdp/gssdp-client-private.h
@@ -10,7 +10,11 @@
#ifndef GSSDP_CLIENT_PRIVATE_H
#define GSSDP_CLIENT_PRIVATE_H
+#ifdef GSSDP_TOOLS
+#include <libgssdp/gssdp-client.h>
+#else
#include "gssdp-client.h"
+#endif
G_BEGIN_DECLS
diff --git a/tools/meson.build b/tools/meson.build
index 40eb8e3..5db545b 100644
--- a/tools/meson.build
+++ b/tools/meson.build
@@ -1,3 +1,10 @@
+project('gssdp-tools', 'c', version: '@version@')
+gnome = import('gnome')
+
+gssdp = dependency('gssdp-1.2')
+gtk = dependency('gtk4', version : '>= 4')
+libsoup = dependency('libsoup-2.4', version : '>= 2.26.1')
+
resource = gnome.compile_resources(
'org.gupnp.GSSDP.DeviceSniffer',
'gssdp-device-sniffer.gresource.xml',
@@ -12,7 +19,9 @@ sniffer = executable(
'main-window.h',
resource
],
- dependencies : [gssdp, gtk],
+ dependencies : [gssdp, gtk, libsoup],
+ c_args: ['-DGSSDP_TOOLS'],
+ include_directories : [include_directories('..')],
install: true,
export_dynamic : true,
gui_app : true

View file

@ -0,0 +1,50 @@
{ stdenv
, lib
, substituteAll
, meson
, ninja
, pkg-config
, wrapGAppsHook4
, gssdp
, gtk4
, libsoup
}:
stdenv.mkDerivation rec {
pname = "gssdp-tools";
inherit (gssdp) version src;
patches = [
# Allow building tools separately from the library.
# This is needed to break the depenency cycle.
(substituteAll {
src = ./standalone-tools.patch;
inherit version;
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
gssdp
gtk4
libsoup
];
preConfigure = ''
cd tools
'';
meta = with lib; {
description = "Device Sniffer tool based on GSSDP framework";
homepage = "http://www.gupnp.org/";
license = licenses.lgpl2Plus;
maintainers = gssdp.meta.maintainers;
platforms = platforms.all;
};
}

View file

@ -5934,6 +5934,8 @@ with pkgs;
gssdp = callPackage ../development/libraries/gssdp { };
gssdp-tools = callPackage ../development/libraries/gssdp/tools.nix { };
grype = callPackage ../tools/security/grype { };
gt5 = callPackage ../tools/system/gt5 { };