- Install MSVC of your choice, e.g.: 2008 Express (MSVC90) or 2010 Express (MSVC100), then get all updates and service packs.
- Download and install CMake (2.8.8). I'll list the software versions I used in parentheses.
- Download and install Expat (2.1.0)
- Download and install doxygen (1.8.1.1)
- Download and install NullSoft (2.46)
- Download and extract dbus (1.6.2) to folder with no spaces, e.g.: c:\dbus-1.6.2-msvc90
- Start CMake gui from start menu
- Enter the path to your source, e.g.: "C:\dbus-1.6.2-msvc90\cmake"
- Make a folder called, "build" in the same folder and enter it as the build directory, e.g.: "C:\dbus-1.6.2-msvc90\cmake\build"
- add the following variables using the "Add Entry" button. The format I use here is NAME:TYPE=value, which is the how cmake expects it at the command line, but in the gui you just fill in the boxes.
- LIBEXPAT_LIBRARIES:FILEPATH="C:\Program Files\Expat 2.1.0\Bin\libexpat.lib"
- LIBEXPAT_INCLUDE_DIR:PATH="C:\Program Files\Expat 2.1.0\Source\lib"
- (UPDATED - 2012-07-17) Optional: Edit CMakeLists.txt so that the default session address is autolaunch: instead of the nonce-tcp:, see the "D-Bus Windows help" thread in the mailing list.
- DBUS_SYSTEM_BUS_DEFAULT_ADDRESS="autolaunch:"
- Click Configure, select either MSVC90 (Visual Studio 2008) or MSVC100 (Visual Studio 2010), then generate.
- close CMake and start MSVC from the start menu.
- Load the dbus.sln from the build folder you created in step 8.
- Select configuration manager from build pull down in menu bar, and select doc, INSTALL and PACKAGE.
- Build the solution.
- Make sure that all projects built successfully.
- If there are any errors clean the the solution, quit and go back to step 1.
- Use the configuration manager to change from Debug to Release, and build the solution again.
- (UPDATED - 2012-07-03) Copy the libexpat.dll to the dbus bin folder ("C:\Program Files\dbus\bin") and the libexpat.lib file to the dbus lib folder, otherwise you will get an error saying that dbus-daemon can't find expat application and that re-installing expat might fix the problem. Setting the PATH to include expat does not fix this issue, sorry. Not sure if dbus also needs library but it can't hurt.
- (UPDATED - 2012-07-03) Test the daemon using a windows command shell, navigate to the dbus bin folder and try dbus-daemon --session --print-address > dbus_address.txt (or whatever), and then open dbus_address select and copy the address. Note for added excitement, set DBUS_VERBOSE=1 first, and the dbus-daemon will display everything that it's thinking in the terminal, which gives you the sense that it's actually working! $ cd "C:\Program Files\dbus\bin"
- (UPDATED - 2012-07-03) Open another windows shell, navigate to the dbus bin folder again and set DBUS_SESSION_BUS_ADDRESS="<paste the address from the dbus_address.txt file here>". Don't forget the quotes, or you;'ll get a string of errors. (Note: if you edited the CMakeLists.txt file in the optional step 11, then you can just use dbus-monitor, and it should work out of the box.) Now type dbus-monitor --address %DBUS_SESSION_BUS_ADDRESS% and you should see the following text in the monitor shell (and a ton of stuff if you enabled verbose in the daemon shell): $ cd "C:\Program Files\dbus\bin"
$ set DBUS_VERBOSE=1
$ dbus-daemon --session --print-address > dbus_address.txt
$ set DBUS_SESSION_BUS_ADDRESS="<paste from dbus_address.text, don't forget quotes>
$ dbus-monitor --address %DBUS_SESSION_BUS_ADDRESS%
signal sender=org.freedesktop.DBus -> dest=:1.0 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired string ":1.0"
method call sender=:1.0 -> dest=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "eavesdrop=true,type='method_call'"
method call sender=:1.0 -> dest=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "eavesdrop=true,type='method_return'"
method call sender=:1.0 -> dest=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch string "eavesdrop=true,type='error'"
Done!
Now try using nmake.
from the start menu start msvc command prompt
add cmake to the path by typing the following:
$ set PATH="C:\Program Files\Cmake-2.8.0\bin";%PATH%
change the folder where you extracted dbus, e.g. C:\dbus-1.6.0 and make a new folder called build
$ cd C:\dbus-1.6.0
$ mkdir build
$ cd build
Run cmake with the following options
$ cmake -G "NMake Makefiles" -D CMAKE_BUILD_TYPE=Release -D LIBEXPAT_LIBRARIES:FILEPATH="C:\Program Files\Expat 2.1.0\Bin\libexpat.lib" -D LIBEXPAT_INCLUDE_DIR:PATH="C:\Program Files\Expat 2.1.0\Source\lib" "C:\dbus-1.6.0\cmake"
Now build the solution
Now build the solution
$ nmake /A
then finally ...
$ nmake install
I think you can build the package this way too ...
$ nmake package
$ nmake install
I think you can build the package this way too ...
$ nmake package
No comments:
Post a Comment