summaryrefslogtreecommitdiffstats
path: root/cmake/bus
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2007-03-03 14:32:17 +0000
committerRalf Habacker <ralf.habacker@freenet.de>2007-03-03 14:32:17 +0000
commit36ebfd411b358fb4797d31d23f945e8f6844d15a (patch)
tree9c8982d1da82fdffea8d2a741dba82e927874869 /cmake/bus
parent4ceb86d29a68ebe52b20c8c090bc90c68a58f8c8 (diff)
* cmake: new directory, contains cmake build support.
See http://www.cmake.org for more informations. Currently only unix will be buildable because some win32 required files are still missing.
Diffstat (limited to 'cmake/bus')
-rw-r--r--cmake/bus/CMakeLists.txt178
-rw-r--r--cmake/bus/service.cmake3
-rw-r--r--cmake/bus/session.conf.cmake30
-rw-r--r--cmake/bus/system.conf.cmake62
4 files changed, 273 insertions, 0 deletions
diff --git a/cmake/bus/CMakeLists.txt b/cmake/bus/CMakeLists.txt
new file mode 100644
index 00000000..79629e96
--- /dev/null
+++ b/cmake/bus/CMakeLists.txt
@@ -0,0 +1,178 @@
+
+include_directories(${CMAKE_SOURCE_DIR}/..)
+include_directories( ${CMAKE_INCLUDE_PATH} )
+
+add_definitions(-DDBUS_COMPILATION)
+
+SET(EFENCE "")
+SET(BUS_DIR ${CMAKE_SOURCE_DIR}/../bus)
+
+set (config_DATA
+ session.conf
+ system.conf
+)
+
+# config files for installation
+FOREACH(file ${config_DATA})
+ CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/${file}.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${file}" IMMEDIATE @ONLY)
+ENDFOREACH(file)
+
+# copy services for local daemon start to local service dir data/dbus-1/services
+SET (SERVICE_FILES test/data/valid-service-files)
+FILE(GLOB FILES "${CMAKE_SOURCE_DIR}/../${SERVICE_FILES}/*.service.in" )
+FOREACH(FILE ${FILES})
+ GET_FILENAME_COMPONENT(FILENAME ${FILE} NAME_WE)
+ SET (TARGET ${CMAKE_BINARY_DIR}/data/dbus-1/services/${FILENAME}.service)
+ IF (CONFIG_VERBOSE)
+ MESSAGE("FROM: ${FILE}\nTO: ${TARGET}\n")
+ ENDIF (CONFIG_VERBOSE)
+ configure_file(${FILE} ${TARGET} )
+ENDFOREACH(FILE)
+
+if(DBUS_USE_EXPAT)
+ SET (XML_SOURCES ${BUS_DIR}/config-loader-expat.c)
+else(DBUS_USE_EXPAT)
+ SET (XML_SOURCES ${BUS_DIR}/config-loader-libxml.c)
+endif (DBUS_USE_EXPAT)
+
+# after next cvs update
+#set (DIR_WATCH_SOURCE ${BUS_DIR}/dir-watch-default.c)
+set (DIR_WATCH_SOURCE )
+
+set (BUS_SOURCES
+ ${BUS_DIR}/activation.c
+ ${BUS_DIR}/activation.h
+ ${BUS_DIR}/bus.c
+ ${BUS_DIR}/bus.h
+ ${BUS_DIR}/config-parser.c
+ ${BUS_DIR}/config-parser.h
+ ${BUS_DIR}/connection.c
+ ${BUS_DIR}/connection.h
+ ${BUS_DIR}/desktop-file.c
+ ${BUS_DIR}/desktop-file.h
+ ${BUS_DIR}/dir-watch.c
+ ${BUS_DIR}/dir-watch.h
+ ${BUS_DIR}/dispatch.c
+ ${BUS_DIR}/dispatch.h
+ ${BUS_DIR}/driver.c
+ ${BUS_DIR}/driver.h
+ ${BUS_DIR}/expirelist.c
+ ${BUS_DIR}/expirelist.h
+ ${BUS_DIR}/policy.c
+ ${BUS_DIR}/policy.h
+ ${BUS_DIR}/selinux.h
+ ${BUS_DIR}/selinux.c
+ ${BUS_DIR}/services.c
+ ${BUS_DIR}/services.h
+ ${BUS_DIR}/signals.c
+ ${BUS_DIR}/signals.h
+ ${BUS_DIR}/test.c
+ ${BUS_DIR}/test.h
+ ${BUS_DIR}/utils.c
+ ${BUS_DIR}/utils.h
+ ${XML_SOURCES}
+ ${DIR_WATCH_SOURCE}
+)
+
+set (dbus_daemon_SOURCES
+ ${BUS_SOURCES}
+ ${BUS_DIR}/main.c
+)
+
+include_directories(${XML_INCLUDE_DIR})
+SET (LIBS ${XML_LIBRARY})
+
+add_executable(dbus-daemon ${dbus_daemon_SOURCES})
+target_link_libraries(dbus-daemon dbus-1 ${LIBS})
+install_targets(/bin dbus-daemon )
+install_files(/etc FILES ${config_DATA})
+
+if (DBUS_SERVICE)
+ set (dbus_service_SOURCES
+ ${BUS_DIR}/bus-service-win.c
+ # TODO: add additional files
+ # ${BUS_DIR}/service-main.c
+ # ${BUS_SOURCES}
+ )
+
+ add_executable(dbus-service ${dbus_service_SOURCES} )
+ target_link_libraries(dbus-service dbus-1 ${LIBS})
+ install_targets(/bin dbus-service )
+
+endif (DBUS_SERVICE)
+
+## note that TESTS has special meaning (stuff to use in make check)
+## so if adding tests not to be run in make check, don't add them to
+## TESTS
+#if DBUS_BUILD_TESTS
+#TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus
+#TESTS=bus-test
+#else
+#TESTS=
+#endif
+
+## we use noinst_PROGRAMS not check_PROGRAMS so that we build
+## even when not doing "make check"
+#noinst_PROGRAMS=$(TESTS)
+
+set (bus_test_SOURCES
+ ${BUS_SOURCES}
+ ${BUS_DIR}/test-main.c
+)
+
+if (DBUS_BUILD_TESTS)
+ add_executable(bus-test ${bus_test_SOURCES})
+ target_link_libraries(bus-test dbus-1 ${LIBS} )
+ install_targets(/bin bus-test)
+ add_test(bus-test ${EXECUTABLE_OUTPUT_PATH}/bus-test ${CMAKE_SOURCE_DIR}/../test/data)
+endif (DBUS_BUILD_TESTS)
+
+if(MSVC)
+ project_source_group(${GROUP_CODE} bus_test_SOURCES dummy)
+endif(MSVC)
+
+## mop up the gcov files
+#clean-local:
+# /bin/rm *.bb *.bbg *.da *.gcov || true
+
+#install-data-hook:
+# $(mkinstalldirs) $(DESTDIR)/$(localstatedir)/run/dbus
+# $(mkinstalldirs) $(DESTDIR)/$(configdir)/system.d
+# $(mkinstalldirs) $(DESTDIR)/$(datadir)/dbus-1/services
+
+##install_file(${configdir}/system.d FILE
+
+
+
+#### Init scripts fun
+#SCRIPT_IN_FILES=messagebus.in
+# rc.messagebus.in
+
+## Red Hat start
+#if DBUS_INIT_SCRIPTS_RED_HAT
+
+#initddir=$(sysconfdir)/rc.d/init.d
+
+#initd_SCRIPTS=
+# messagebus
+
+#endif
+# ## Red Hat end
+
+## Slackware start
+#if DBUS_INIT_SCRIPTS_SLACKWARE
+
+#initddir=$(sysconfdir)/rc.d/
+
+#initd_SCRIPTS=
+# rc.messagebus
+
+#endif
+## Slackware end
+
+#MAN_IN_FILES=dbus-daemon.1.in
+#man_MANS = dbus-daemon.1
+
+#### Extra dist
+
+#EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES)
diff --git a/cmake/bus/service.cmake b/cmake/bus/service.cmake
new file mode 100644
index 00000000..25d17ff1
--- /dev/null
+++ b/cmake/bus/service.cmake
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.freedektop.DBus.ServiceName
+Exec=notepad
diff --git a/cmake/bus/session.conf.cmake b/cmake/bus/session.conf.cmake
new file mode 100644
index 00000000..6bba91e9
--- /dev/null
+++ b/cmake/bus/session.conf.cmake
@@ -0,0 +1,30 @@
+<!-- This configuration file controls the per-user-login-session message bus.
+ Add a session-local.conf and edit that rather than changing this
+ file directly. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <!-- Our well-known bus type, don't change this -->
+ <type>session</type>
+
+ <listen>@DBUS_SESSION_BUS_DEFAULT_ADDRESS@</listen>
+
+ <standard_session_servicedirs />
+
+ <policy context="default">
+ <!-- Allow everything to be sent -->
+ <allow send_destination="*"/>
+ <!-- Allow everything to be received -->
+ <allow eavesdrop="true"/>
+ <!-- Allow anyone to own anything -->
+ <allow own="*"/>
+ </policy>
+
+ <!-- This is included last so local configuration can override what's
+ in this standard file -->
+ <include ignore_missing="yes">session-local.conf</include>
+
+ <include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</include>
+
+</busconfig>
diff --git a/cmake/bus/system.conf.cmake b/cmake/bus/system.conf.cmake
new file mode 100644
index 00000000..ee85ecc4
--- /dev/null
+++ b/cmake/bus/system.conf.cmake
@@ -0,0 +1,62 @@
+<!-- This configuration file controls the systemwide message bus.
+ Add a system-local.conf and edit that rather than changing this
+ file directly. -->
+
+<!-- Note that there are any number of ways you can hose yourself
+ security-wise by screwing up this file; in particular, you
+ probably don't want to listen on any more addresses, add any more
+ auth mechanisms, run as a different user, etc. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+ <!-- Our well-known bus type, do not change this -->
+ <type>system</type>
+
+ <!-- Run as special user -->
+ <user>@DBUS_USER@</user>
+
+ <!-- Fork into daemon mode -->
+ <fork/>
+
+ <!-- Write a pid file -->
+ <pidfile>@DBUS_SYSTEM_PID_FILE@</pidfile>
+
+ <!-- Only allow socket-credentials-based authentication -->
+ <auth>EXTERNAL</auth>
+
+ <!-- Only listen on a local socket. (abstract=/path/to/socket
+ means use abstract namespace, don't really create filesystem
+ file; only Linux supports this. Use path=/whatever on other
+ systems.) -->
+ <listen>@DBUS_SYSTEM_BUS_DEFAULT_ADDRESS@</listen>
+
+ <policy context="default">
+ <!-- Deny everything then punch holes -->
+ <deny send_interface="*"/>
+ <deny receive_interface="*"/>
+ <deny own="*"/>
+ <!-- But allow all users to connect -->
+ <allow user="*"/>
+ <!-- Allow anyone to talk to the message bus -->
+ <!-- FIXME I think currently these allow rules are always implicit
+ even if they aren't in here -->
+ <allow send_destination="org.freedesktop.DBus"/>
+ <allow receive_sender="org.freedesktop.DBus"/>
+ <!-- valid replies are always allowed -->
+ <allow send_requested_reply="true"/>
+ <allow receive_requested_reply="true"/>
+ </policy>
+
+ <!-- Config files are placed here that among other things, punch
+ holes in the above policy for specific services. -->
+ <includedir>system.d</includedir>
+
+ <!-- This is included last so local configuration can override what's
+ in this standard file -->
+ <include ignore_missing="yes">system-local.conf</include>
+
+ <include if_selinux_enabled="yes" selinux_root_relative="yes">contexts/dbus_contexts</include>
+
+</busconfig>