1{ lib
2, stdenv
3, fetchFromGitHub
4, cmake
5, pkg-config
6, systemd
7, expat
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 sha256 = "sha256-EX/XLgqUwIRosLu3Jgtpp42Yt6Tf22Htj9JULoUL7ao=";
19 };
20
21 nativeBuildInputs = [
22 cmake
23 pkg-config
24 ];
25
26 buildInputs = [
27 systemd
28 expat
29 ];
30
31 cmakeFlags = [
32 "-DBUILD_CODE_GEN=ON"
33 ];
34
35 meta = with lib; {
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 expressive, easy-to-use API in modern C++.
41 It adds another layer of abstraction on top of sd-bus, a nice, fresh C D-Bus implementation by systemd.
42 It's been written primarily as a replacement of dbus-c++, which currently suffers from a number of (unresolved) bugs,
43 concurrency issues and inherent design complexities and limitations.
44 '';
45 mainProgram = "sdbus-c++-xml2cpp";
46 license = licenses.lgpl2Only;
47 platforms = platforms.linux;
48 maintainers = [ maintainers.ivar ];
49 };
50}