mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-28 14:20:09 +01:00
164 lines
5.5 KiB
Text
164 lines
5.5 KiB
Text
----------------------------------------
|
|
Windows port of the freedesktop.org D-Bus
|
|
----------------------------------------
|
|
|
|
Requirements
|
|
------------
|
|
- cmake version >= 2.4.4 see http://www.cmake.org
|
|
- installed libxml2 or libexpat from http://82.149.170.66/kde-windows/win32libs
|
|
|
|
Build
|
|
-----
|
|
|
|
unix
|
|
1. install cmake and libxml or libexpat
|
|
2. get dbus sources
|
|
3. mkdir dbus-build
|
|
4. cd dbus-build
|
|
5. cmake <dbus-src-root>/cmake or cmake -DDBUS_USE_EXPAT=on <dbus-src-root>/cmake in case libexpat should de used
|
|
5. make
|
|
6. make install
|
|
|
|
win32
|
|
1. Install your prefered compiler
|
|
- Mingw from www.mingw.org
|
|
- Visual C++ 2005 Express/Studio
|
|
|
|
2. Install libxml2 or libexpat packages from
|
|
http://82.149.170.66/kde-windows/win32libs
|
|
into a subdir win32libs in your program installation eg
|
|
- german => "c:\Programme\win32libs"
|
|
- english => "c:\Program Files\win32libs"
|
|
|
|
3. download and install the most recent CMake version from http://www.cmake.org/files/
|
|
|
|
4. apply dbus-win.patch: 'patch -p0 -i dbus-win.patch'
|
|
|
|
5. open command shell and run in the created build folder which resides side by side
|
|
to the D-Bus sources:
|
|
- for mingw:
|
|
cmake -G "MinGW Makefiles" <options> ..\<dbus-source-root>\cmake
|
|
- for Visual C++
|
|
cmake ..\<dbus-source-root>\cmake
|
|
|
|
7. build
|
|
|
|
|
|
Tests
|
|
-----
|
|
(when build with the Visual C++ IDE the *.exe files are
|
|
in the bin/Debug and bin/Release folder)
|
|
|
|
- dbus library check
|
|
bin\dbus-test.exe .\test\data
|
|
|
|
- bus daemon check
|
|
bin\bus-test.exe .\test\data
|
|
|
|
- check available names
|
|
bin\test_names.exe
|
|
|
|
- check if dbus-daemon is accessable
|
|
bin\dbus-send.exe --session --type=method_call --print-reply --dest=org.freedesktop.DBus / org.freedesktop.DBus.ListNames method return sender=org.freedesktop.DBus -> dest=:1.4 array [ string "org.freedesktop.DBus"string ":1.4"]
|
|
|
|
- start dbus-daemon
|
|
* set DBUS_VERBOSE=0 (=1 for getting debug infos)
|
|
* start bin\dbus-daemon --session
|
|
* bin\dbus-send.exe --dest=org.freedesktop.DBus --print-reply --type=method_call / org.freedesktop.DBus.StartServiceByName string:org.freedesktop.DBus.TestSuiteEchoService uint32:455 method return sender=org.freedesktop.DBus -> dest=:1.8 uint32 2
|
|
|
|
|
|
|
|
Some build options
|
|
-------------
|
|
key description default value
|
|
--- ----------- -------------
|
|
DBUS_USE_EXPAT "Use expat (== ON) or libxml2 (==OFF) OFF
|
|
DBUS_DISABLE_ASSERTS "Disable assertion checking" OFF
|
|
DBUS_BUILD_TESTS "enable unit test code" ON
|
|
DBUS_ENABLE_ANSI "enable -ansi -pedantic gcc flags" OFF
|
|
DBUS_ENABLE_GCOV "compile with coverage profiling
|
|
instrumentation (gcc only)" OFF
|
|
DBUS_ENABLE_VERBOSE_MODE "support verbose debug mode" ON
|
|
DBUS_DISABLE_CHECKS "Disable public API sanity checking" OFF
|
|
DBUS_INSTALL_SYSTEM_LIBS "install required system libraries
|
|
(mingw: libxml2, libiconv, mingw10)" OFF
|
|
CMAKE_BUILD_TYPE "build type (== debug) or (== release) release
|
|
|
|
|
|
|
|
Developers
|
|
----------
|
|
|
|
Running the tests in Visual Studio:
|
|
|
|
To successfully run the tests by the IDE you must add
|
|
the FULL patch to test\data in your build directory
|
|
(e.g. c:\dbus\build\test\data)
|
|
in something like
|
|
-> Project Settings
|
|
-> Debugging
|
|
-> Command line arguments
|
|
|
|
|
|
|
|
FAQ
|
|
---
|
|
|
|
- How much work remains till DBUS win32 can be merged with the main project?
|
|
|
|
There are some patches outstanding and the most effort is required in
|
|
discussions with the main dbus team how to implement some parts. One of
|
|
the main dbus team estimated the open work to one fulltime week.
|
|
http://lists.freedesktop.org/archives/dbus/2006-November/006264.html
|
|
|
|
I assume they will answer ALL your questions, and they are very
|
|
interested in fully supporting win32.
|
|
|
|
- How far is WinDBus from being usable for production ?
|
|
dbus comes with a test suite which is used on unix to guarantate
|
|
production quality and this test suite runs mostly. There are some
|
|
test not running and we need help to get them running.
|
|
|
|
In the pratice I and some other people are using dbus for at least more
|
|
than a half year in conjunction with kde on windows without any problems.
|
|
|
|
|
|
- On UNIX D-Bus uses UNIX sockets to communicate (correct me if I'm wrong).
|
|
What is used on Windows ?
|
|
|
|
tcp sockets, there are some efforts to get named pipe running, but some
|
|
design problems of the win32 api, we are not able to solve without
|
|
bigger changes to the dbus code base let us stop this effort.
|
|
|
|
|
|
- Do you have any clue if dbus-win32 can run in a Windows CE environment?
|
|
|
|
I was told that windows ce does not have posix function
|
|
open/close/select/... and dbus code uses such function in some area.
|
|
|
|
|
|
- Do you know if the C++ binding made by OpenWengo will be easily portable to Windows?
|
|
|
|
We have already ported the OpenWengo dbus-c++ binding, see in WinDBus svn (http://sf.net/projects/windbus)
|
|
The related test applicationa are running well.
|
|
|
|
|
|
TODO
|
|
----
|
|
|
|
February 2007:
|
|
|
|
- all changes of dbus-win.patch should become part of the official D-Bus code
|
|
|
|
- all code currently disabled by DBUS_WIN_FIXME should work
|
|
|
|
- clean up:
|
|
* bus/bus-service-win.c
|
|
* bus/dir-watch.c
|
|
* dbus/dbus-spawn-win.c
|
|
* dbus/dbus-sysdeps-util-win.c
|
|
* dbus/dbus-sysdeps-win.c
|
|
|
|
|
|
see also:
|
|
http://lists.freedesktop.org/archives/dbus/2006-July/005076.html
|