mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-01-06 18:50:15 +01:00
121 lines
3.7 KiB
Text
121 lines
3.7 KiB
Text
DBus Installation
|
|
=================
|
|
|
|
Quick start
|
|
===========
|
|
|
|
This branch of dbus can be built by using Meson or CMake.
|
|
The Meson build system is the recommended build system for the master
|
|
branch (versions >= 1.15.0), except when building on Windows, for which
|
|
CMake is recommended (this recommendation might change to Meson in future).
|
|
|
|
Meson only supports out-of-tree builds, and must be passed a directory to put
|
|
built and generated sources into. We'll call that directory "build" here. It's
|
|
recommended to create a separate build directory for each configuration you
|
|
might want to use.
|
|
|
|
Basic configuration is done with:
|
|
|
|
``` sh
|
|
meson build/
|
|
```
|
|
|
|
This will create the build directory. If any dependencies are missing, you can
|
|
install them, or try to remove the dependency with a Meson configuration option
|
|
(see below).
|
|
|
|
Older versions of dbus required Autotools or CMake, with Autotools
|
|
recommended for Unix systems and CMake recommended for Windows systems.
|
|
|
|
Configuration flags
|
|
===================
|
|
|
|
When using Meson, to review the options which Meson chose, run:
|
|
|
|
``` sh
|
|
meson configure build/
|
|
```
|
|
|
|
With additional arguments meson configure can be used to change options for a
|
|
previously configured build directory. All options passed to this command are in
|
|
the form `-D "option"="value"`. For example:
|
|
|
|
``` sh
|
|
meson configure build/ -Dprefix=/tmp/install
|
|
```
|
|
|
|
See `meson_options.txt` for details of dbus-specific options, and
|
|
<https://mesonbuild.com/Builtin-options.html> for details of generic
|
|
Meson options.
|
|
|
|
When using CMake, inspect README.cmake to see the possible
|
|
configuration options and environment variables.
|
|
|
|
Building
|
|
========
|
|
|
|
To build with meson, here is a quick guide:
|
|
|
|
``` sh
|
|
cd dbus
|
|
meson setup build/ && cd build/
|
|
meson compile
|
|
meson test
|
|
```
|
|
|
|
Full build instructions can be found on mesonbuild website:
|
|
https://mesonbuild.com/Running-Meson.html
|
|
|
|
Building with CMake
|
|
-------------------
|
|
|
|
The CMake equivalent is:
|
|
|
|
``` sh
|
|
cd <dbus-src-root>
|
|
cmake -G <makefile-generator-name> [-D<option>] -B dbus-build-dir
|
|
cmake --build <dbus-build-dir>
|
|
cmake --build <dbus-build-dir> -t check
|
|
```
|
|
|
|
The installation of the build with CMake is performed with:
|
|
|
|
``` sh
|
|
cmake --build <dbus-build-dir> -t install [DESTDIR=<install-dir>]
|
|
```
|
|
|
|
When using makefile generator `-t install/fast` can also be used,
|
|
which prevents rebuilding.
|
|
|
|
CMake will automatically determine whether to build some features
|
|
based on what tools and/or libraries are installed on the host system.
|
|
The default build behaviour can be overridden using the
|
|
-DENABLE_<XXX> arguments to cmake.
|
|
A typical scenario in which it is desirable to override automatic
|
|
detection, is during packaging of binary builds, where a predictable
|
|
dependancy chain is required. For more details on cmake installation,
|
|
consult http://www.cmake.org/cmake/help/help.html.
|
|
|
|
External software dependencies
|
|
==============================
|
|
|
|
Required:
|
|
|
|
- expat
|
|
|
|
Optional:
|
|
|
|
- libapparmor (for AppArmor LSM integration on Linux)
|
|
- libaudit (for AppArmor/SELinux audit logging on Linux)
|
|
- libcap-ng (for capabilities management on Linux)
|
|
- libselinux (for SELinux LSM integration on Linux)
|
|
- libsystemd (for logging, socket activation and session tracking on Linux)
|
|
- libX11 (for X11 autolaunching on Unix platforms)
|
|
- doxygen (for API documentation)
|
|
- xsltproc (for Spec & other XML documentation)
|
|
- Docbook XSL stylesheets (for Spec & other XML documentation)
|
|
- ducktype (for additional documentation)
|
|
- qhelpgenerator (for additional documentation)
|
|
- yelp-build (for additional documentation)
|
|
- GLib (for improved test coverage)
|
|
- Python 3 (for improved test coverage)
|