Moved docbook sources used by cmake into doc subdir and adapted cmake build system.
[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 if(DBUS_USE_EXPAT)
33     SET (XML_SOURCES ${BUS_DIR}/config-loader-expat.c)
34 else(DBUS_USE_EXPAT)
35     SET (XML_SOURCES ${BUS_DIR}/config-loader-libxml.c)
36 endif (DBUS_USE_EXPAT)
37
38 # after next cvs update
39 #set (DIR_WATCH_SOURCE ${BUS_DIR}/dir-watch-default.c)
40 set (DIR_WATCH_SOURCE )
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-default.c                          
57         ${BUS_DIR}/dir-watch.h                          
58         ${BUS_DIR}/dispatch.c                           
59         ${BUS_DIR}/dispatch.h                           
60         ${BUS_DIR}/driver.c                             
61         ${BUS_DIR}/driver.h                             
62         ${BUS_DIR}/expirelist.c                         
63         ${BUS_DIR}/expirelist.h                         
64         ${BUS_DIR}/policy.c                             
65         ${BUS_DIR}/policy.h                             
66         ${BUS_DIR}/selinux.h                            
67         ${BUS_DIR}/selinux.c                            
68         ${BUS_DIR}/services.c                           
69         ${BUS_DIR}/services.h                           
70         ${BUS_DIR}/signals.c                            
71         ${BUS_DIR}/signals.h                            
72         ${BUS_DIR}/test.c                                       
73         ${BUS_DIR}/test.h                                       
74         ${BUS_DIR}/utils.c                                      
75         ${BUS_DIR}/utils.h                                      
76         ${XML_SOURCES}
77         ${DIR_WATCH_SOURCE}
78 )
79 if(DBUS_ENABLE_STATS)
80         list(APPEND BUS_SOURCES
81                 ${BUS_DIR}/stats.c
82                 ${BUS_DIR}/stats.h
83         )
84 endif()
85
86 include_directories(${XML_INCLUDE_DIR})
87
88 add_executable(dbus-daemon ${BUS_SOURCES} ${BUS_DIR}/main.c)
89 target_link_libraries(dbus-daemon ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY})
90 set_target_properties(dbus-daemon PROPERTIES OUTPUT_NAME ${DBUS_DAEMON_NAME})
91 set_target_properties(dbus-daemon PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS})
92
93 install_targets(/bin dbus-daemon)
94 install_files(/etc/dbus-1 FILES ${config_DATA})
95 install(DIRECTORY .  DESTINATION etc/dbus-1/session.d  FILES_MATCHING PATTERN "*.conf")
96
97 if (DBUS_SERVICE)
98         set (dbus_service_SOURCES 
99                 ${BUS_DIR}/bus-service-win.c
100         # TODO: add additional files
101         #       ${BUS_DIR}/service-main.c
102         #       ${BUS_SOURCES} 
103         )
104
105         add_executable(dbus-service ${dbus_service_SOURCES} )
106         target_link_libraries(dbus-service ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY})
107         set_target_properties(dbus-service PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS})
108         install_targets(/bin dbus-service )
109 endif (DBUS_SERVICE)
110
111 if (DBUS_BUILD_TESTS)   
112         add_executable(bus-test ${BUS_SOURCES} ${BUS_DIR}/test-main.c)
113         target_link_libraries(bus-test ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY})
114         set_target_properties(bus-test PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS})
115         add_test(bus-test ${EXECUTABLE_OUTPUT_PATH}/bus-test ${CMAKE_BINARY_DIR}/test/data)
116 endif (DBUS_BUILD_TESTS)
117
118 if(MSVC)
119         project_source_group(${GROUP_CODE} bus_test_SOURCES dummy)
120 endif(MSVC)
121
122 ## mop up the gcov files
123 #clean-local:
124 #       /bin/rm *.bb *.bbg *.da *.gcov || true
125
126 #install-data-hook:
127 #       $(mkinstalldirs) $(DESTDIR)/$(localstatedir)/run/dbus
128 #       $(mkinstalldirs) $(DESTDIR)/$(configdir)/system.d
129 #       $(mkinstalldirs) $(DESTDIR)/$(datadir)/dbus-1/services
130
131 ##install_file(${configdir}/system.d FILE
132
133
134 set(LAUNCH_HELPER_SOURCES ${XML_SOURCES}
135     ${BUS_DIR}/config-parser-common.c
136     ${BUS_DIR}/config-parser-trivial.c
137     ${BUS_DIR}/desktop-file.c
138     ${BUS_DIR}/utils.c
139     ${BUS_DIR}/activation-helper.c
140
141 )
142
143 if(NOT WIN32)
144 # TODO PENDING(kdab) fix build on windows (activation-helper.c)
145    add_executable(dbus-daemon-launch-helper ${LAUNCH_HELPER_SOURCES} ${BUS_DIR}/activation-helper-bin.c )
146    target_link_libraries(dbus-daemon-launch-helper ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY} )
147    
148    add_executable(dbus-daemon-launch-helper-test ${LAUNCH_HELPER_SOURCES}     ${BUS_DIR}/activation-helper-bin.c)
149    set_target_properties(dbus-daemon-launch-helper-test PROPERTIES COMPILE_FLAGS "-DACTIVATION_LAUNCHER_TEST")
150    target_link_libraries(dbus-daemon-launch-helper-test ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY} )
151    
152    add_executable(bus-test-launch-helper ${LAUNCH_HELPER_SOURCES}  ${BUS_DIR}/test-launch-helper.c)
153    set_target_properties(bus-test-launch-helper PROPERTIES COMPILE_FLAGS "-DACTIVATION_LAUNCHER_TEST -DACTIVATION_LAUNCHER_DO_OOM")
154    target_link_libraries(bus-test-launch-helper ${DBUS_INTERNAL_LIBRARIES} ${XML_LIBRARY} )
155    add_test(bus-test-launch-helper ${EXECUTABLE_OUTPUT_PATH}/bus-test-launch-helper )
156
157 endif(NOT WIN32)
158
159 #### Init scripts fun
160 #SCRIPT_IN_FILES=messagebus.in
161 #               rc.messagebus.in
162
163 ## Red Hat start
164 #if DBUS_INIT_SCRIPTS_RED_HAT
165
166 #initddir=$(sysconfdir)/rc.d/init.d
167
168 #initd_SCRIPTS=         
169 #       messagebus
170
171 #endif
172 # ## Red Hat end
173
174 ## Slackware start
175 #if DBUS_INIT_SCRIPTS_SLACKWARE
176
177 #initddir=$(sysconfdir)/rc.d/
178
179 #initd_SCRIPTS=         
180 #       rc.messagebus
181
182 #endif
183 ## Slackware end
184
185 #MAN_IN_FILES=dbus-daemon.1.in
186 #man_MANS = dbus-daemon.1
187
188 #### Extra dist 
189
190 #EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES)