c9aff12ad8478da279d15ffab31d1af29f51da20
[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 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 set(DBUS_LIBRARIES dbus-1 dbus-internal)
81
82 add_executable(dbus-daemon ${BUS_SOURCES} ${BUS_DIR}/main.c)
83 target_link_libraries(dbus-daemon ${DBUS_LIBRARIES} ${XML_LIBRARY})
84 if(WIN32 AND NOT DBUS_DISABLE_EXECUTABLE_DEBUG_POSTFIX)
85     set_target_properties(dbus-daemon PROPERTIES DEBUG_POSTFIX "d")
86 endif(WIN32 AND NOT DBUS_DISABLE_EXECUTABLE_DEBUG_POSTFIX)
87
88 install_targets(/bin dbus-daemon)
89 install_files(/etc FILES ${config_DATA})
90
91 if (DBUS_SERVICE)
92         set (dbus_service_SOURCES 
93                 ${BUS_DIR}/bus-service-win.c
94         # TODO: add additional files
95         #       ${BUS_DIR}/service-main.c
96         #       ${BUS_SOURCES} 
97         )
98
99         add_executable(dbus-service ${dbus_service_SOURCES} )
100         target_link_libraries(dbus-service ${DBUS_LIBRARIES} ${XML_LIBRARY})
101         install_targets(/bin dbus-service )
102         if(WIN32)
103            set_target_properties(dbus-service PROPERTIES DEBUG_POSTFIX d)
104     endif(WIN32)
105 endif (DBUS_SERVICE)
106
107 ## note that TESTS has special meaning (stuff to use in make check)
108 ## so if adding tests not to be run in make check, don't add them to 
109 ## TESTS
110 #if DBUS_BUILD_TESTS
111 #TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus
112 #TESTS=bus-test 
113 #else
114 #TESTS=
115 #endif
116
117 ## we use noinst_PROGRAMS not check_PROGRAMS so that we build 
118 ## even when not doing "make check"
119 #noinst_PROGRAMS=$(TESTS) 
120
121 if (DBUS_BUILD_TESTS)   
122         add_executable(bus-test ${BUS_SOURCES} ${BUS_DIR}/test-main.c)
123         target_link_libraries(bus-test ${DBUS_LIBRARIES} ${XML_LIBRARY})
124         add_test(bus-test ${EXECUTABLE_OUTPUT_PATH}/bus-test ${CMAKE_BINARY_DIR}/test/data)
125 endif (DBUS_BUILD_TESTS)
126
127 if(MSVC)
128         project_source_group(${GROUP_CODE} bus_test_SOURCES dummy)
129 endif(MSVC)
130
131 ## mop up the gcov files
132 #clean-local:
133 #       /bin/rm *.bb *.bbg *.da *.gcov || true
134
135 #install-data-hook:
136 #       $(mkinstalldirs) $(DESTDIR)/$(localstatedir)/run/dbus
137 #       $(mkinstalldirs) $(DESTDIR)/$(configdir)/system.d
138 #       $(mkinstalldirs) $(DESTDIR)/$(datadir)/dbus-1/services
139
140 ##install_file(${configdir}/system.d FILE
141
142
143 set(LAUNCH_HELPER_SOURCES ${XML_SOURCES}
144     ${BUS_DIR}/config-parser-common.c
145     ${BUS_DIR}/config-parser-trivial.c
146     ${BUS_DIR}/desktop-file.c
147     ${BUS_DIR}/utils.c
148     ${BUS_DIR}/activation-helper.c
149
150 )
151
152 if(NOT WIN32)
153 # TODO PENDING(kdab) fix build on windows (activation-helper.c)
154    add_executable(dbus-daemon-launch-helper ${LAUNCH_HELPER_SOURCES} ${BUS_DIR}/activation-helper-bin.c )
155    target_link_libraries(dbus-daemon-launch-helper ${DBUS_LIBRARIES} ${XML_LIBRARY} )
156    
157    add_executable(dbus-daemon-launch-helper-test ${LAUNCH_HELPER_SOURCES}     ${BUS_DIR}/activation-helper-bin.c)
158    set_target_properties(dbus-daemon-launch-helper-test PROPERTIES COMPILE_FLAGS "-DACTIVATION_LAUNCHER_TEST")
159    target_link_libraries(dbus-daemon-launch-helper-test ${DBUS_LIBRARIES} ${XML_LIBRARY} )
160    
161    add_executable(bus-test-launch-helper ${LAUNCH_HELPER_SOURCES}  ${BUS_DIR}/test-launch-helper.c)
162    set_target_properties(bus-test-launch-helper PROPERTIES COMPILE_FLAGS "-DACTIVATION_LAUNCHER_TEST -DACTIVATION_LAUNCHER_DO_OOM")
163    target_link_libraries(bus-test-launch-helper ${DBUS_LIBRARIES} ${XML_LIBRARY} )
164    add_test(bus-test-launch-helper ${EXECUTABLE_OUTPUT_PATH}/bus-test-launch-helper )
165
166 endif(NOT WIN32)
167
168 #### Init scripts fun
169 #SCRIPT_IN_FILES=messagebus.in
170 #               rc.messagebus.in
171
172 ## Red Hat start
173 #if DBUS_INIT_SCRIPTS_RED_HAT
174
175 #initddir=$(sysconfdir)/rc.d/init.d
176
177 #initd_SCRIPTS=         
178 #       messagebus
179
180 #endif
181 # ## Red Hat end
182
183 ## Slackware start
184 #if DBUS_INIT_SCRIPTS_SLACKWARE
185
186 #initddir=$(sysconfdir)/rc.d/
187
188 #initd_SCRIPTS=         
189 #       rc.messagebus
190
191 #endif
192 ## Slackware end
193
194 #MAN_IN_FILES=dbus-daemon.1.in
195 #man_MANS = dbus-daemon.1
196
197 #### Extra dist 
198
199 #EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES)