|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| .github/workflows/ | H | 22-Dec-2021 | - | 83 | 80 |
| cmake/ | H | 22-Dec-2021 | - | 66 | 54 |
| docs/ | H | 03-May-2022 | - | 3,897 | 2,979 |
| examples/org.freedesktop.DBus.ObjectManager/ | H | 03-May-2022 | - | 335 | 241 |
| include/sdbus-c++/ | H | 22-Dec-2021 | - | 4,656 | 2,472 |
| pkgconfig/ | H | 22-Dec-2021 | - | 12 | 10 |
| src/ | H | 03-May-2022 | - | 4,048 | 2,755 |
| tests/ | H | 03-May-2022 | - | 5,223 | 3,631 |
| tools/ | H | 03-May-2022 | - | 2,593 | 1,832 |
| .gitignore | H A D | 22-Dec-2021 | 501 | 43 | 40 |
| AUTHORS | H A D | 22-Dec-2021 | 171 | 8 | 5 |
| COPYING | H A D | 22-Dec-2021 | 25.9 KiB | 505 | 420 |
| COPYING-LGPL-Exception | H A D | 22-Dec-2021 | 1.2 KiB | 23 | 19 |
| ChangeLog | H A D | 22-Dec-2021 | 9.6 KiB | 204 | 171 |
| INSTALL | H A D | 22-Dec-2021 | 145 | 9 | 7 |
| NEWS | H A D | 22-Dec-2021 | 111 | 5 | 3 |
| README | H A D | 22-Dec-2021 | 14 | 2 | 1 |
| README.md | H A D | 22-Dec-2021 | 5.6 KiB | 108 | 65 |
README
README.md
1sdbus-c++
2=========
3
4![ci](https://github.com/Kistler-Group/sdbus-cpp/workflows/CI/badge.svg)
5![license](https://img.shields.io/github/license/Kistler-Group/sdbus-cpp)
6![release](https://img.shields.io/github/v/release/Kistler-Group/sdbus-cpp)
7
8sdbus-c++ is a high-level C++ D-Bus library for Linux designed to provide expressive, easy-to-use API in modern C++. It adds another layer of abstraction on top of sd-bus, a nice, fresh C D-Bus implementation by systemd.
9
10sdbus-c++ has been written primarily as a replacement of dbus-c++, which currently suffers from a number of (unresolved) bugs, concurrency issues and inherent design complexities and limitations. sdbus-c++ has learned from dbus-c++ and has chosen a different path, a path of simple yet powerful design that is intuitive and friendly to the user and inherently free of those bugs.
11
12Even though sdbus-c++ uses sd-bus library, it is not necessarily constrained to systemd and can perfectly be used in non-systemd environments as well.
13
14Building and installing the library
15-----------------------------------
16
17The library is built using CMake:
18
19```bash
20$ mkdir build
21$ cd build
22$ cmake .. -DCMAKE_BUILD_TYPE=Release ${OTHER_CONFIG_FLAGS}
23$ cmake --build .
24$ sudo cmake --build . --target install
25```
26
27### CMake configuration flags for sdbus-c++
28
29* `BUILD_CODE_GEN` [boolean]
30
31 Option for building the stub code generator `sdbus-c++-xml2cpp` for generating the adaptor and proxy interfaces out of the D-Bus IDL XML description. Default value: `OFF`. Use `-DBUILD_CODE_GEN=ON` flag to turn on building the code gen.
32
33* `BUILD_DOC` [boolean]
34
35 Option for including sdbus-c++ documentation files and tutorials. Default value: `ON`. With this option turned on, you may also enable/disable the following option:
36
37 * `BUILD_DOXYGEN_DOC` [boolean]
38
39 Option for building Doxygen documentation of sdbus-c++ API. If enabled, the documentation must still be built explicitly through `cmake --build . --target doc`. Default value: `OFF`. Use `-DBUILD_DOXYGEN_DOC=OFF` to disable searching for Doxygen and building Doxygen documentation of sdbus-c++ API.
40
41* `BUILD_TESTS` [boolean]
42
43 Option for building sdbus-c++ unit and integration tests, invokable by `cmake --build . --target test` (Note: before invoking `cmake --build . --target test`, make sure you copy `tests/integrationtests/files/org.sdbuscpp.integrationtests.conf` file to `/etc/dbus-1/system.d` directory). That incorporates downloading and building static libraries of Google Test. Default value: `OFF`. Use `-DBUILD_TESTS=ON` to enable building the tests. With this option turned on, you may also enable/disable the following options:
44
45 * `ENABLE_PERF_TESTS` [boolean]
46
47 Option for building sdbus-c++ performance tests. Default value: `OFF`.
48
49 * `ENABLE_STRESS_TESTS` [boolean]
50
51 Option for building sdbus-c++ stress tests. Default value: `OFF`.
52
53 * `TESTS_INSTALL_PATH` [string]
54
55 Path where the test binaries shall get installed. Default value: `/opt/test/bin`.
56
57* `BUILD_LIBSYSTEMD` [boolean]
58
59 Option for building libsystemd dependency library automatically when sdbus-c++ is built, and making libsystemd an integral part of sdbus-c++ library. Default value: `OFF`. Might be very helpful in non-systemd environments where libsystemd shared library is unavailable (see [Solving libsystemd dependency](docs/using-sdbus-c++.md#solving-libsystemd-dependency) for more information). With this option turned on, you may also provide the following configuration flag:
60
61 * `LIBSYSTEMD_VERSION` [string]
62
63 Defines version of systemd to be downloaded, built and integrated into sdbus-c++. Default value: `242`.
64
65* `CMAKE_BUILD_TYPE` [string]
66
67 This is a CMake-builtin option. Set to `Release` to build sdbus-c++ for production use. Set to `Debug` if you want to help further develop (and debug) the library :)
68
69* `BUILD_SHARED_LIBS` [boolean]
70
71 This is a global CMake flag, promoted in sdbus-c++ project to a CMake option. Use this to control whether sdbus-c++ is built as either a shared or static library. Default value: `ON`.
72
73* `BUILD_EXAMPLES` [boolean]
74
75 Build example programs which are located in the _example_ directory. Examples are not installed. Default value: `OFF`
76
77Dependencies
78------------
79
80* `C++17` - the library uses C++17 features.
81* `libsystemd` - systemd library containing sd-bus implementation. This library is part of systemd. Systemd at least v236 is needed. (In case you have a non-systemd environment, don't worry, see [Solving libsystemd dependency](docs/using-sdbus-c++.md#solving-libsystemd-dependency) for more information.)
82* `googletest` - google unit testing framework, only necessary when building tests, will be downloaded and built automatically.
83* `pkgconfig` - required for sdbus-c++ to be able to find some dependency packages.
84* `expat` - necessary when building xml2cpp code generator (`BUILD_CODE_GEN` option is ON).
85
86Licensing
87---------
88
89The library is distributed under LGPLv2.1 license, with a specific exception for macro/template/inline code in library header files.
90
91References/documentation
92------------------------
93
94* [Using sdbus-c++](docs/using-sdbus-c++.md) - *the* main, comprehensive tutorial on sdbus-c++
95* [Systemd and dbus configuration](docs/systemd-dbus-config.md)
96* [D-Bus Specification](https://dbus.freedesktop.org/docs/dbus-specification.html)
97* [sd-bus Overview](http://0pointer.net/blog/the-new-sd-bus-api-of-systemd.html)
98
99Contributing
100------------
101
102Contributions that increase the library quality, functionality, or fix issues are very welcome. To introduce a change, please submit a pull request with a description.
103
104Contact
105-------
106
107https://github.com/Kistler-Group/sdbus-cpp
108