1{ lib
2, stdenv
3, fetchFromGitHub
4, cmake
5, expat
6, pkg-config
7, systemd
8}:
9
10stdenv.mkDerivation rec {
11 pname = "sdbus-cpp";
12 version = "1.2.0";
13
14 src = fetchFromGitHub {
15 owner = "kistler-group";
16 repo = "sdbus-cpp";
17 rev = "v${version}";
18 hash = "sha256-EX/XLgqUwIRosLu3Jgtpp42Yt6Tf22Htj9JULoUL7ao=";
19 };
20
21 nativeBuildInputs = [
22 cmake
23 pkg-config
24 ];
25
26 buildInputs = [
27 expat
28 systemd
29 ];
30
31 cmakeFlags = [
32 "-DBUILD_CODE_GEN=ON"
33 ];
34
35 meta = {
36 homepage = "https://github.com/Kistler-Group/sdbus-cpp";
37 changelog = "https://github.com/Kistler-Group/sdbus-cpp/blob/v${version}/ChangeLog";
38 description = "High-level C++ D-Bus library designed to provide easy-to-use yet powerful API";
39 longDescription = ''
40 sdbus-c++ is a high-level C++ D-Bus library for Linux designed to provide
41 expressive, easy-to-use API in modern C++.
42 It adds another layer of abstraction on top of sd-bus, a nice, fresh C
43 D-Bus implementation by systemd.
44 It's been written primarily as a replacement of dbus-c++, which currently
45 suffers from a number of (unresolved) bugs, concurrency issues and
46 inherent design complexities and limitations.
47 '';
48 license = lib.licenses.lgpl2Only;
49 maintainers = [ lib.maintainers.ivar ];
50 platforms = lib.platforms.linux;
51 mainProgram = "sdbus-c++-xml2cpp";
52 };
53}