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