dbus/README.cmake

227 lines
7.4 KiB
CMake
Raw Normal View History

2011-07-02 21:02:46 +02:00
This file describes how to compile dbus using the cmake build system
Requirements
------------
- cmake version >= 2.6.0 see http://www.cmake.org
2011-12-21 08:50:08 +01:00
- installed libexpat see http://sourceforge.net/projects/expat/
unsupported RelWithDebInfo builds could be fetched
from http://sourceforge.net/projects/kde-windows/files/expat/
2018-11-20 14:19:59 +01:00
- for generating documentation based on docbook files
- xsltproc (provided by the distribution or from http://xmlsoft.org/XSLT/xsltproc2.html) and
- docbook dtd and stylesheets (provided by the distribution or from https://sourceforge.net/projects/docbook/)
2011-07-02 21:02:46 +02:00
Building
--------
2011-12-21 08:50:08 +01:00
Win32 MinGW-w64|32
1. install mingw-w64 from http://sourceforge.net/projects/mingw-w64/
2018-11-20 14:19:59 +01:00
2. install cmake, libexpat and optional xsltproc and docbook dtd and stylesheets
2011-12-21 08:50:08 +01:00
3. get dbus sources
4. unpack dbus sources into a sub directory (referred as <dbus-src-root> later)
5. mkdir dbus-build
6. cd dbus-build
7. run
cmake -G "MinGW Makefiles" [<options, see below>] <dbus-src-root>
2011-07-02 21:02:46 +02:00
mingw32-make
mingw32-make install
Mingw32 cross compile on Linux
2. install cmake, libexpat and optional xsltproc and docbook dtd and stylesheets
e.g on openSUSE Leap 15.0:
sudo zypper ar -f https://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_15.0/
sudo zypper install mingw32-cross-gcc-c++ mingw32-libexpat-devel libxslt-tools mingw32-docbook_4 mingw32-docbool-xsl-stylesheets
2. get dbus sources
3. unpack dbus sources into a sub directory (referred as <dbus-src-root> later)
4. mkdir dbus-build
5. cd dbus-build
6. run
cmake -DCMAKE_TOOLCHAIN_FILE=<dbus-src-root>/cmake/i686-w64-mingw32.cmake \
-DCMAKE_FIND_ROOT_PATH=/usr/i686-w64-mingw32/sysroot/i686-w64-mingw32 \
[<options, see below>] <dbus-src-root>
make
make install
Win32 Microsoft nmake
2011-12-21 08:50:08 +01:00
1. install MSVC 2010 Express Version from http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
2018-11-20 14:19:59 +01:00
2. install cmake, libexpat and optional xsltproc and docbook dtd and stylesheets
2011-12-21 08:50:08 +01:00
3. get dbus sources
4. unpack dbus sources into a sub directory (referred as <dbus-src-root> later)
5. mkdir dbus-build
6. cd dbus-build
7. run
cmake -G "NMake Makefiles" [<options, see below>] <dbus-src-root>
2011-07-02 21:02:46 +02:00
nmake
nmake install
2011-12-21 08:50:08 +01:00
Win32 Visual Studio 2010 Express IDE
1. install MSVC 2010 Express Version from http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
2018-11-20 14:19:59 +01:00
2. install cmake, libexpat and optional xsltproc and docbook dtd and stylesheets
2011-12-21 08:50:08 +01:00
3. get dbus sources
4. unpack dbus sources into a sub directory (referred as <dbus-src-root> later)
5. mkdir dbus-build
6. cd dbus-build
7. run
cmake -G "Visual Studio 10" [<options, see below>] <dbus-src-root>
2011-12-21 08:50:08 +01:00
8a. open IDE with
vcexpress dbus.sln
2011-12-21 08:50:08 +01:00
8b. for immediate build run
vcexpress dbus.sln /build
2011-12-21 08:50:08 +01:00
Win32 Visual Studio 2010 Professional IDE
1. install MSVC 2010 Professional Version
2018-11-20 14:19:59 +01:00
2. install cmake, libexpat and optional xsltproc and docbook dtd and stylesheets
2011-12-21 08:50:08 +01:00
3. get dbus sources
4. unpack dbus sources into a sub directory (referred as <dbus-src-root> later)
5. mkdir dbus-build
6. cd dbus-build
7. run
cmake -G "Visual Studio 10" [<options, see below>] <dbus-src-root>
2011-12-21 08:50:08 +01:00
8a. open IDE with
devenv dbus.sln
2011-12-21 08:50:08 +01:00
8b. for immediate build run
devenv dbus.sln /build
2011-07-02 21:02:46 +02:00
Linux
2018-11-20 14:19:59 +01:00
2. install cmake, libexpat and optional xsltproc and docbook dtd and stylesheets
2011-07-02 21:02:46 +02:00
2. get dbus sources
3. unpack dbus sources into a sub directory (referred as <dbus-src-root> later)
4. mkdir dbus-build
5. cd dbus-build
6. run
cmake -G "<for available targets, see cmake --help for a list>" [<options, see below>] <dbus-src-root>
2011-07-02 21:02:46 +02:00
make
make install
For other compilers see cmake --help in the Generators section
2011-07-02 21:02:46 +02:00
Configuration flags
-------------------
2011-07-02 21:02:46 +02:00
When using the cmake build system the dbus-specific configuration flags that can be given
to the cmake program are these (use -D<key>=<value> on command line). The listed values
are the defaults (in a typical build - some are platform-specific).
2011-07-02 21:02:46 +02:00
2018-11-20 14:19:59 +01:00
// in case cmake is not able to determine the xsltproc executable (optional)
XSLTPROC_EXECUTABLE=<path to xsltproc executable)
// in case cmake is not able to determine the installation of the docbook stylesheets (optional)
DOCBOOKXSL_DIR=<path to docbook stylesheets)
// Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
2011-07-02 21:02:46 +02:00
// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
CMAKE_BUILD_TYPE:STRING=Debug
// Include path for 3rdparty packages
CMAKE_INCLUDE_PATH:PATH=
// Library path for 3rdparty packages
CMAKE_LIBRARY_PATH:PATH=
// Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=C:/Program Files/dbus
// enable unit test code
DBUS_BUILD_TESTS:BOOL=ON
// The name of the dbus daemon executable
DBUS_DAEMON_NAME:STRING=dbus-daemon
// Disable assertion checking
DBUS_DISABLE_ASSERT:BOOL=OFF
2011-07-02 21:02:46 +02:00
// Disable public API sanity checking
DBUS_DISABLE_CHECKS:BOOL=OFF
// enable -ansi -pedantic gcc flags
DBUS_ENABLE_ANSI:BOOL=OFF
// build DOXYGEN documentation (requires Doxygen)
DBUS_ENABLE_DOXYGEN_DOCS:BOOL=OFF
// enable bus daemon usage statistics
DBUS_ENABLE_STATS:BOOL=OFF
// enable restricted servers for app containers
DBUS_ENABLE_CONTAINERS:BOOL=OFF
2011-07-02 21:02:46 +02:00
// support verbose debug mode
DBUS_ENABLE_VERBOSE_MODE:BOOL=ON
// build XML documentation (requires xmlto or meinproc4)
DBUS_ENABLE_XML_DOCS:BOOL=ON
// install required system libraries
DBUS_INSTALL_SYSTEM_LIBS:BOOL=OFF
// session bus default listening address
DBUS_SESSION_BUS_LISTEN_ADDRESS:STRING=autolaunch:
// session bus fallback address for clients
DBUS_SESSION_BUS_CONNECT_ADDRESS:STRING=autolaunch:
2011-07-02 21:02:46 +02:00
// system bus default address (only useful on Unix)
DBUS_SYSTEM_BUS_DEFAULT_ADDRESS:STRING=unix:path=/var/run/dbus/system_bus_socket
2011-07-02 21:02:46 +02:00
win32 only:
// enable win32 debug port for message output
DBUS_USE_OUTPUT_DEBUG_STRING:BOOL=OFF
// use wine to run cross compiled test applications (only for cross compiling for Windows)
DBUS_USE_WINE:BOOL=OFF
2011-07-02 21:02:46 +02:00
gcc only:
// compile with coverage profiling instrumentation
DBUS_GCOV_ENABLED:BOOL=OFF
solaris only:
// enable console owner file
HAVE_CONSOLE_OWNER_FILE:BOOL=ON
// Directory to check for console ownership
DBUS_CONSOLE_OWNER_FILE:STRING=/dev/console
// Linux only:
// enable inotify as dir watch backend
DBUS_BUS_ENABLE_INOTIFY:BOOL=ON
*BSD only:
// enable kqueue as dir watch backend
DBUS_BUS_ENABLE_KQUEUE:BOOL=ON
2011-07-02 21:02:46 +02:00
x11 only:
// Build with X11 auto launch support
DBUS_BUILD_X11:BOOL=ON
MSVC only (Visual Studio >= 2012):
// Enable code analyzing for MSVC compiler: /analyze
DBUS_MSVC_ANALYZE:BOOL=OFF
2018-11-20 14:19:59 +01:00
Note: Above mentioned options starting with DBUS_ or CMAKE_ could
be extracted after configuring from the output of running
"<maketool> help-options" in the build directory.
How to compile in dbus into clients with cmake
----------------------------------------------
To compile dbus library into a client application with cmake
the following cmake commands are required:
1. call find_package to find dbus package
find_package(DBus1)
2. after specifing targets link dbus into target
add_executable(test test.c)
target_link_libraries(test ${DBus1_LIBRARIES})
Adding ${DBus1_LIBRARIES} to targets also adds required dbus
include dirs and compiler definitions by default. There is
no need to add them with include_directories and add_definitions.
To compile against dbus installed in a non standard location
specify -DDBus1_DIR=<dbus-install-root>/lib[64]/cmake/DBus1
on cmake command line.