Emeric Vigier | 2f62582 | 2012-08-06 11:09:52 -0400 | [diff] [blame^] | 1 | project(bus) |
| 2 | |
| 3 | add_definitions(-DDBUS_COMPILATION) |
| 4 | |
| 5 | SET(EFENCE "") |
| 6 | SET(BUS_DIR ${CMAKE_SOURCE_DIR}/../bus) |
| 7 | |
| 8 | set (config_DATA |
| 9 | session.conf |
| 10 | system.conf |
| 11 | ) |
| 12 | |
| 13 | # config files for installation |
| 14 | FOREACH(file ${config_DATA}) |
| 15 | CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/${file}.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${file}" IMMEDIATE @ONLY) |
| 16 | ENDFOREACH(file) |
| 17 | |
| 18 | # copy services for local daemon start to local service dir data/dbus-1/services |
| 19 | SET (SERVICE_FILES test/data/valid-service-files) |
| 20 | FILE(GLOB FILES "${CMAKE_SOURCE_DIR}/../${SERVICE_FILES}/*.service.in" ) |
| 21 | FOREACH(FILE ${FILES}) |
| 22 | GET_FILENAME_COMPONENT(FILENAME ${FILE} NAME_WE) |
| 23 | SET (TARGET ${CMAKE_BINARY_DIR}/data/dbus-1/services/${FILENAME}.service) |
| 24 | IF (CONFIG_VERBOSE) |
| 25 | MESSAGE("FROM: ${FILE}\nTO: ${TARGET}\n") |
| 26 | ENDIF (CONFIG_VERBOSE) |
| 27 | configure_file(${FILE} ${TARGET} ) |
| 28 | ENDFOREACH(FILE) |
| 29 | |
| 30 | if(DBUS_USE_EXPAT) |
| 31 | SET (XML_SOURCES ${BUS_DIR}/config-loader-expat.c) |
| 32 | else(DBUS_USE_EXPAT) |
| 33 | SET (XML_SOURCES ${BUS_DIR}/config-loader-libxml.c) |
| 34 | endif (DBUS_USE_EXPAT) |
| 35 | |
| 36 | # after next cvs update |
| 37 | #set (DIR_WATCH_SOURCE ${BUS_DIR}/dir-watch-default.c) |
| 38 | set (DIR_WATCH_SOURCE ) |
| 39 | |
| 40 | set (BUS_SOURCES |
| 41 | ${BUS_DIR}/activation.c |
| 42 | ${BUS_DIR}/activation.h |
| 43 | ${BUS_DIR}/bus.c |
| 44 | ${BUS_DIR}/bus.h |
| 45 | ${BUS_DIR}/config-parser.c |
| 46 | ${BUS_DIR}/config-parser.h |
| 47 | ${BUS_DIR}/config-parser-common.c |
| 48 | ${BUS_DIR}/config-parser-common.h |
| 49 | # ${BUS_DIR}/config-parser-trivial.c |
| 50 | ${BUS_DIR}/connection.c |
| 51 | ${BUS_DIR}/connection.h |
| 52 | ${BUS_DIR}/desktop-file.c |
| 53 | ${BUS_DIR}/desktop-file.h |
| 54 | ${BUS_DIR}/dir-watch-default.c |
| 55 | ${BUS_DIR}/dir-watch.h |
| 56 | ${BUS_DIR}/dispatch.c |
| 57 | ${BUS_DIR}/dispatch.h |
| 58 | ${BUS_DIR}/driver.c |
| 59 | ${BUS_DIR}/driver.h |
| 60 | ${BUS_DIR}/expirelist.c |
| 61 | ${BUS_DIR}/expirelist.h |
| 62 | ${BUS_DIR}/policy.c |
| 63 | ${BUS_DIR}/policy.h |
| 64 | ${BUS_DIR}/selinux.h |
| 65 | ${BUS_DIR}/selinux.c |
| 66 | ${BUS_DIR}/services.c |
| 67 | ${BUS_DIR}/services.h |
| 68 | ${BUS_DIR}/signals.c |
| 69 | ${BUS_DIR}/signals.h |
| 70 | ${BUS_DIR}/test.c |
| 71 | ${BUS_DIR}/test.h |
| 72 | ${BUS_DIR}/utils.c |
| 73 | ${BUS_DIR}/utils.h |
| 74 | ${XML_SOURCES} |
| 75 | ${DIR_WATCH_SOURCE} |
| 76 | ) |
| 77 | |
| 78 | include_directories(${XML_INCLUDE_DIR}) |
| 79 | |
| 80 | add_executable(dbus-daemon ${BUS_SOURCES} ${BUS_DIR}/main.c) |
| 81 | target_link_libraries(dbus-daemon ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY}) |
| 82 | set_target_properties(dbus-daemon PROPERTIES OUTPUT_NAME ${DBUS_DAEMON_NAME}) |
| 83 | set_target_properties(dbus-daemon PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS}) |
| 84 | |
| 85 | install_targets(/bin dbus-daemon) |
| 86 | install_files(/etc/dbus-1 FILES ${config_DATA}) |
| 87 | |
| 88 | if (DBUS_SERVICE) |
| 89 | set (dbus_service_SOURCES |
| 90 | ${BUS_DIR}/bus-service-win.c |
| 91 | # TODO: add additional files |
| 92 | # ${BUS_DIR}/service-main.c |
| 93 | # ${BUS_SOURCES} |
| 94 | ) |
| 95 | |
| 96 | add_executable(dbus-service ${dbus_service_SOURCES} ) |
| 97 | target_link_libraries(dbus-service ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY}) |
| 98 | set_target_properties(dbus-service PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS}) |
| 99 | install_targets(/bin dbus-service ) |
| 100 | endif (DBUS_SERVICE) |
| 101 | |
| 102 | if (DBUS_BUILD_TESTS) |
| 103 | add_executable(bus-test ${BUS_SOURCES} ${BUS_DIR}/test-main.c) |
| 104 | target_link_libraries(bus-test ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY}) |
| 105 | set_target_properties(bus-test PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS}) |
| 106 | add_test(bus-test ${EXECUTABLE_OUTPUT_PATH}/bus-test ${CMAKE_BINARY_DIR}/test/data) |
| 107 | endif (DBUS_BUILD_TESTS) |
| 108 | |
| 109 | if(MSVC) |
| 110 | project_source_group(${GROUP_CODE} bus_test_SOURCES dummy) |
| 111 | endif(MSVC) |
| 112 | |
| 113 | ## mop up the gcov files |
| 114 | #clean-local: |
| 115 | # /bin/rm *.bb *.bbg *.da *.gcov || true |
| 116 | |
| 117 | #install-data-hook: |
| 118 | # $(mkinstalldirs) $(DESTDIR)/$(localstatedir)/run/dbus |
| 119 | # $(mkinstalldirs) $(DESTDIR)/$(configdir)/system.d |
| 120 | # $(mkinstalldirs) $(DESTDIR)/$(datadir)/dbus-1/services |
| 121 | |
| 122 | ##install_file(${configdir}/system.d FILE |
| 123 | |
| 124 | |
| 125 | set(LAUNCH_HELPER_SOURCES ${XML_SOURCES} |
| 126 | ${BUS_DIR}/config-parser-common.c |
| 127 | ${BUS_DIR}/config-parser-trivial.c |
| 128 | ${BUS_DIR}/desktop-file.c |
| 129 | ${BUS_DIR}/utils.c |
| 130 | ${BUS_DIR}/activation-helper.c |
| 131 | |
| 132 | ) |
| 133 | |
| 134 | if(NOT WIN32) |
| 135 | # TODO PENDING(kdab) fix build on windows (activation-helper.c) |
| 136 | add_executable(dbus-daemon-launch-helper ${LAUNCH_HELPER_SOURCES} ${BUS_DIR}/activation-helper-bin.c ) |
| 137 | target_link_libraries(dbus-daemon-launch-helper ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY} ) |
| 138 | |
| 139 | add_executable(dbus-daemon-launch-helper-test ${LAUNCH_HELPER_SOURCES} ${BUS_DIR}/activation-helper-bin.c) |
| 140 | set_target_properties(dbus-daemon-launch-helper-test PROPERTIES COMPILE_FLAGS "-DACTIVATION_LAUNCHER_TEST") |
| 141 | target_link_libraries(dbus-daemon-launch-helper-test ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY} ) |
| 142 | |
| 143 | add_executable(bus-test-launch-helper ${LAUNCH_HELPER_SOURCES} ${BUS_DIR}/test-launch-helper.c) |
| 144 | set_target_properties(bus-test-launch-helper PROPERTIES COMPILE_FLAGS "-DACTIVATION_LAUNCHER_TEST -DACTIVATION_LAUNCHER_DO_OOM") |
| 145 | target_link_libraries(bus-test-launch-helper ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY} ) |
| 146 | add_test(bus-test-launch-helper ${EXECUTABLE_OUTPUT_PATH}/bus-test-launch-helper ) |
| 147 | |
| 148 | endif(NOT WIN32) |
| 149 | |
| 150 | #### Init scripts fun |
| 151 | #SCRIPT_IN_FILES=messagebus.in |
| 152 | # rc.messagebus.in |
| 153 | |
| 154 | ## Red Hat start |
| 155 | #if DBUS_INIT_SCRIPTS_RED_HAT |
| 156 | |
| 157 | #initddir=$(sysconfdir)/rc.d/init.d |
| 158 | |
| 159 | #initd_SCRIPTS= |
| 160 | # messagebus |
| 161 | |
| 162 | #endif |
| 163 | # ## Red Hat end |
| 164 | |
| 165 | ## Slackware start |
| 166 | #if DBUS_INIT_SCRIPTS_SLACKWARE |
| 167 | |
| 168 | #initddir=$(sysconfdir)/rc.d/ |
| 169 | |
| 170 | #initd_SCRIPTS= |
| 171 | # rc.messagebus |
| 172 | |
| 173 | #endif |
| 174 | ## Slackware end |
| 175 | |
| 176 | #MAN_IN_FILES=dbus-daemon.1.in |
| 177 | #man_MANS = dbus-daemon.1 |
| 178 | |
| 179 | #### Extra dist |
| 180 | |
| 181 | #EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES) |