1project(dbus-lib) 2 3SET(DBUS_DIR ${CMAKE_SOURCE_DIR}/../dbus) 4 5configure_file(${DBUS_DIR}/dbus-arch-deps.h.in ${CMAKE_CURRENT_BINARY_DIR}/dbus-arch-deps.h ) 6 7add_definitions(-DDBUS_COMPILATION) 8 9set (dbusinclude_HEADERS 10 ${DBUS_DIR}/dbus.h 11 ${DBUS_DIR}/dbus-address.h 12 ${DBUS_DIR}/dbus-bus.h 13 ${DBUS_DIR}/dbus-connection.h 14 ${DBUS_DIR}/dbus-errors.h 15 ${DBUS_DIR}/dbus-macros.h 16 ${DBUS_DIR}/dbus-memory.h 17 ${DBUS_DIR}/dbus-message.h 18 ${DBUS_DIR}/dbus-misc.h 19 ${DBUS_DIR}/dbus-pending-call.h 20 ${DBUS_DIR}/dbus-protocol.h 21 ${DBUS_DIR}/dbus-server.h 22 ${DBUS_DIR}/dbus-shared.h 23 ${DBUS_DIR}/dbus-signature.h 24 ${DBUS_DIR}/dbus-syntax.h 25 ${DBUS_DIR}/dbus-threads.h 26 ${DBUS_DIR}/dbus-types.h 27 dbus-arch-deps.h 28) 29 30### source code that goes in the installed client library 31### and is specific to library functionality 32set (DBUS_LIB_SOURCES 33 ${DBUS_DIR}/dbus-address.c 34 ${DBUS_DIR}/dbus-auth.c 35 ${DBUS_DIR}/dbus-bus.c 36 ${DBUS_DIR}/dbus-connection.c 37 ${DBUS_DIR}/dbus-credentials.c 38 ${DBUS_DIR}/dbus-errors.c 39 ${DBUS_DIR}/dbus-keyring.c 40 ${DBUS_DIR}/dbus-marshal-header.c 41 ${DBUS_DIR}/dbus-marshal-byteswap.c 42 ${DBUS_DIR}/dbus-marshal-recursive.c 43 ${DBUS_DIR}/dbus-marshal-validate.c 44 ${DBUS_DIR}/dbus-message.c 45 ${DBUS_DIR}/dbus-misc.c 46 ${DBUS_DIR}/dbus-nonce.c 47 ${DBUS_DIR}/dbus-object-tree.c 48 ${DBUS_DIR}/dbus-pending-call.c 49 ${DBUS_DIR}/dbus-resources.c 50 ${DBUS_DIR}/dbus-server.c 51 ${DBUS_DIR}/dbus-server-socket.c 52 ${DBUS_DIR}/dbus-server-debug-pipe.c 53 ${DBUS_DIR}/dbus-sha.c 54 ${DBUS_DIR}/dbus-signature.c 55 ${DBUS_DIR}/dbus-syntax.c 56 ${DBUS_DIR}/dbus-timeout.c 57 ${DBUS_DIR}/dbus-threads.c 58 ${DBUS_DIR}/dbus-transport.c 59 ${DBUS_DIR}/dbus-transport-socket.c 60 ${DBUS_DIR}/dbus-watch.c 61) 62 63 64if(UNIX) 65 set (DBUS_LIB_SOURCES ${DBUS_LIB_SOURCES} 66 ${DBUS_DIR}/dbus-transport-unix.c 67 ${DBUS_DIR}/dbus-server-unix.c 68 ) 69else(UNIX) 70 set (DBUS_LIB_SOURCES ${DBUS_LIB_SOURCES} 71 ${DBUS_DIR}/dbus-transport-win.c 72 ${DBUS_DIR}/dbus-server-win.c 73 ) 74endif(UNIX) 75 76set (DBUS_LIB_HEADERS 77 ${DBUS_DIR}/dbus-auth.h 78 ${DBUS_DIR}/dbus-connection-internal.h 79 ${DBUS_DIR}/dbus-credentials.h 80 ${DBUS_DIR}/dbus-keyring.h 81 ${DBUS_DIR}/dbus-marshal-header.h 82 ${DBUS_DIR}/dbus-marshal-byteswap.h 83 ${DBUS_DIR}/dbus-marshal-recursive.h 84 ${DBUS_DIR}/dbus-marshal-validate.h 85 ${DBUS_DIR}/dbus-message-internal.h 86 ${DBUS_DIR}/dbus-message-private.h 87 ${DBUS_DIR}/dbus-misc.h 88 ${DBUS_DIR}/dbus-object-tree.h 89 ${DBUS_DIR}/dbus-protocol.h 90 ${DBUS_DIR}/dbus-resources.h 91 ${DBUS_DIR}/dbus-server-debug-pipe.h 92 ${DBUS_DIR}/dbus-server-protected.h 93 ${DBUS_DIR}/dbus-server-unix.h 94 ${DBUS_DIR}/dbus-sha.h 95 ${DBUS_DIR}/dbus-timeout.h 96 ${DBUS_DIR}/dbus-threads.h 97 ${DBUS_DIR}/dbus-threads-internal.h 98 ${DBUS_DIR}/dbus-transport.h 99 ${DBUS_DIR}/dbus-transport-protected.h 100 ${DBUS_DIR}/dbus-watch.h 101 ${CMAKE_BINARY_DIR}/config.h 102) 103if(UNIX) 104 set (DBUS_LIB_HEADERS ${DBUS_LIB_HEADERS} 105 ${DBUS_DIR}/dbus-transport-unix.h 106 ) 107else(UNIX) 108 set (DBUS_LIB_HEADERS ${DBUS_LIB_HEADERS} 109 ${DBUS_DIR}/dbus-transport-win.h 110 ) 111endif(UNIX) 112 113 114### source code that goes in the installed client library 115### AND is generic utility functionality used by the 116### daemon or test programs (all symbols in here should 117### be underscore-prefixed) 118set (DBUS_SHARED_SOURCES 119 ${DBUS_DIR}/dbus-dataslot.c 120 ${DBUS_DIR}/dbus-file.c 121 ${DBUS_DIR}/dbus-hash.c 122 ${DBUS_DIR}/dbus-internals.c 123 ${DBUS_DIR}/dbus-list.c 124 ${DBUS_DIR}/dbus-marshal-basic.c 125 ${DBUS_DIR}/dbus-memory.c 126 ${DBUS_DIR}/dbus-mempool.c 127 ${DBUS_DIR}/dbus-string.c 128 ${DBUS_DIR}/dbus-sysdeps.c 129 ${DBUS_DIR}/dbus-pipe.c 130) 131 132set (DBUS_SHARED_HEADERS 133 ${DBUS_DIR}/dbus-dataslot.h 134 ${DBUS_DIR}/dbus-file.h 135 ${DBUS_DIR}/dbus-hash.h 136 ${DBUS_DIR}/dbus-internals.h 137 ${DBUS_DIR}/dbus-list.h 138 ${DBUS_DIR}/dbus-marshal-basic.h 139 ${DBUS_DIR}/dbus-mempool.h 140 ${DBUS_DIR}/dbus-string.h 141 ${DBUS_DIR}/dbus-string-private.h 142 ${DBUS_DIR}/dbus-pipe.h 143 ${DBUS_DIR}/dbus-sysdeps.h 144) 145 146### source code that is generic utility functionality used 147### by the bus daemon or test apps, but is NOT included 148### in the D-BUS client library (all symbols in here 149### should be underscore-prefixed but don't really need 150### to be unless they move to DBUS_SHARED_SOURCES later) 151set (DBUS_UTIL_SOURCES 152 ${DBUS_DIR}/dbus-auth-script.c 153 ${DBUS_DIR}/dbus-auth-util.c 154 ${DBUS_DIR}/dbus-credentials-util.c 155 ${DBUS_DIR}/dbus-mainloop.c 156 ${DBUS_DIR}/dbus-marshal-byteswap-util.c 157 ${DBUS_DIR}/dbus-marshal-recursive-util.c 158 ${DBUS_DIR}/dbus-marshal-validate-util.c 159 ${DBUS_DIR}/dbus-message-factory.c 160 ${DBUS_DIR}/dbus-message-util.c 161 ${DBUS_DIR}/dbus-shell.c 162 ${DBUS_DIR}/dbus-socket-set.c 163 ${DBUS_DIR}/dbus-socket-set-poll.c 164 ${DBUS_DIR}/dbus-string-util.c 165 ${DBUS_DIR}/dbus-sysdeps-util.c 166) 167 168if (DBUS_BUILD_TESTS) 169 set (DBUS_UTIL_SOURCES 170 ${DBUS_UTIL_SOURCES} 171 ${DBUS_DIR}/dbus-test.c 172 ) 173endif (DBUS_BUILD_TESTS) 174 175set (DBUS_UTIL_HEADERS 176 ${DBUS_DIR}/dbus-auth-script.h 177 ${DBUS_DIR}/dbus-mainloop.h 178 ${DBUS_DIR}/dbus-message-factory.h 179 ${DBUS_DIR}/dbus-shell.h 180 ${DBUS_DIR}/dbus-socket-set.h 181 ${DBUS_DIR}/dbus-spawn.h 182 ${DBUS_DIR}/dbus-test.h 183) 184 185### platform specific settings 186if (WIN32) 187 set (DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES} 188 ${DBUS_DIR}/dbus-file-win.c 189 ${DBUS_DIR}/dbus-sysdeps-win.c 190 ${DBUS_DIR}/dbus-pipe-win.c 191 ${DBUS_DIR}/dbus-sysdeps-thread-win.c 192 ) 193 set (DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS} 194 ${DBUS_DIR}/dbus-sockets-win.h 195 ${DBUS_DIR}/dbus-sysdeps-win.h 196 ) 197 set (DBUS_UTIL_SOURCES ${DBUS_UTIL_SOURCES} 198 ${DBUS_DIR}/dbus-spawn-win.c 199 ${DBUS_DIR}/dbus-sysdeps-util-win.c 200 ) 201 if(WINCE) 202 set (DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES} 203 ${DBUS_DIR}/dbus-sysdeps-wince-glue.c 204 ) 205 set (DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS} 206 ${DBUS_DIR}/dbus-sysdeps-wince-glue.h 207 ) 208 endif(WINCE) 209else (WIN32) 210 set (DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES} 211 ${DBUS_DIR}/dbus-file-unix.c 212 ${DBUS_DIR}/dbus-pipe-unix.c 213 ${DBUS_DIR}/dbus-sysdeps-unix.c 214 ${DBUS_DIR}/dbus-sysdeps-pthread.c 215 ${DBUS_DIR}/dbus-userdb.c 216 ${DBUS_DIR}/sd-daemon.c 217 ) 218 set (DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS} 219 ${DBUS_DIR}/dbus-server-unix.h 220 ${DBUS_DIR}/dbus-transport-unix.h 221 ${DBUS_DIR}/dbus-sysdeps-unix.h 222 ${DBUS_DIR}/dbus-userdb.h 223 ${DBUS_DIR}/sd-daemon.h 224 ) 225 set (DBUS_UTIL_SOURCES ${DBUS_UTIL_SOURCES} 226 ${DBUS_DIR}/dbus-spawn.c 227 ${DBUS_DIR}/dbus-userdb-util.c 228 ${DBUS_DIR}/dbus-sysdeps-util-unix.c 229 ) 230endif (WIN32) 231 232set(libdbus_SOURCES 233 ${DBUS_LIB_SOURCES} 234 ${DBUS_SHARED_SOURCES} 235) 236 237set(libdbus_HEADERS 238 ${DBUS_LIB_HEADERS} 239 ${DBUS_SHARED_HEADERS} 240) 241if (MSVC) 242 set (BUILD_FILEVERSION ${DBUS_MAJOR_VERSION},${DBUS_MINOR_VERSION},${DBUS_MICRO_VERSION},${DBUS_PATCH_VERSION}) 243 set (BUILD_TIMESTAMP ${DBUS_BUILD_TIMESTAMP}) 244 245 configure_file(${DBUS_DIR}/versioninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/versioninfo.rc) 246 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/afxres.h "") 247 list(APPEND libdbus_SOURCES versioninfo.rc) 248 set_source_files_properties(versioninfo.rc COMPILE_FLAGS "-D__LINE__=1") 249endif (MSVC) 250 251if(MSVC_IDE) 252 project_source_group(${GROUP_CODE} DBUS_LIB_SOURCES DBUS_LIB_HEADERS) 253 project_source_group(${GROUP_CODE} DBUS_SHARED_SOURCES DBUS_SHARED_HEADERS) 254 project_source_group(${GROUP_CODE} DBUS_UTIL_SOURCES DBUS_UTIL_SOURCES) 255endif(MSVC_IDE) 256 257### Client library 258 259add_library(dbus-1 SHARED 260 ${libdbus_SOURCES} 261 ${libdbus_HEADERS} 262) 263if(WIN32) 264 if(WINCE) 265 target_link_libraries(dbus-1 ws2) 266 else(WINCE) 267 target_link_libraries(dbus-1 ws2_32 advapi32 netapi32) 268 endif(WINCE) 269else(WIN32) 270 target_link_libraries(dbus-1 ${CMAKE_THREAD_LIBS_INIT}) 271endif(WIN32) 272 273install_targets(/lib dbus-1 ) 274install_files(/include/dbus FILES ${dbusinclude_HEADERS}) 275 276### Internal library, used for the daemon, tools and tests, compiled statically. 277 278add_library(dbus-internal ${DBUS_INTERNAL_ADD_LIBRARY_OPTIONS} 279 ${DBUS_LIB_SOURCES} 280 ${DBUS_LIB_HEADERS} 281 ${DBUS_SHARED_SOURCES} 282 ${DBUS_SHARED_HEADERS} 283 ${DBUS_UTIL_SOURCES} 284 ${DBUS_UTIL_HEADERS} 285) 286target_link_libraries(dbus-internal) 287set_target_properties(dbus-internal PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_LIBRARY_DEFINITIONS}) 288if(WIN32) 289 if(WINCE) 290 target_link_libraries(dbus-internal ws2) 291 else(WINCE) 292 target_link_libraries(dbus-internal ws2_32 advapi32 netapi32) 293 endif(WINCE) 294else(WIN32) 295 target_link_libraries(dbus-internal ${CMAKE_THREAD_LIBS_INIT}) 296endif(WIN32) 297 298if (DBUS_BUILD_TESTS) 299 set (TESTS_ENVIRONMENT "DBUS_TEST_DATA=${CMAKE_SOURCE_DIR}/test/data DBUS_TEST_HOMEDIR=${CMAKE_BUILD_DIR}/dbus") 300 ADD_EXECUTABLE(dbus-test ${CMAKE_SOURCE_DIR}/../dbus/dbus-test-main.c) 301 target_link_libraries(dbus-test ${DBUS_INTERNAL_LIBRARIES}) 302 add_test(dbus-test ${EXECUTABLE_OUTPUT_PATH}/dbus-test ${CMAKE_SOURCE_DIR}/../test/data) 303 set_target_properties(dbus-test PROPERTIES COMPILE_FLAGS ${DBUS_INTERNAL_CLIENT_DEFINITIONS}) 304ENDIF (DBUS_BUILD_TESTS) 305 306if (UNIX) 307# set version info 308ENDIF (UNIX) 309 310 311## mop up the gcov files 312#clean-local: 313#/bin/rm *.bb *.bbg *.da *.gcov .libs/*.da .libs/*.bbg || true 314