9e906bb4db803a2119780fefb3265a12f16b04a9
[platform/core/connectivity/bluetooth-frwk.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT("Tizen Bluetooth Framework" C)
3
4 SET(CMAKE_C_FLAGS "-O3 -Wall -Werror -DPLUGINDIR=\\\"/usr/lib/bluetooth-service/plugins\\\"")
5
6 SET(TEST "test-flags")
7
8 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include/)
9
10 INCLUDE(FindPkgConfig)
11 pkg_check_modules(${TEST} REQUIRED
12                         glib-2.0
13                         dbus-1
14                         gio-2.0
15                         gio-unix-2.0)
16
17 FOREACH(flag ${${TEST}_CFLAGS})
18         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
19 ENDFOREACH(flag)
20
21 SET(LIB_INSTALL_DIR "/usr/lib/")
22 SET(TEST_INSTALL_DIR "${LIB_INSTALL_DIR}bluetooth-frwk-test/")
23 SET(PLUGIN_INSTALL_DIR "${LIB_INSTALL_DIR}bluetooth-service/plugins/")
24
25 IF(platform STREQUAL "Mobile")
26 SET(MOBILE_FLAGS "mobile-flags")
27 pkg_check_modules(${MOBILE_FLAGS} REQUIRED
28                         msg-service
29                         email-service
30                         vconf)
31 FOREACH(flag ${${MOBILE_FLAGS}_CFLAGS})
32         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
33 ENDFOREACH(flag)
34
35 FOREACH(flag ${${MOBILE_FLAGS}_LDFLAGS})
36         SET(${TEST}_LDFLAGS "${${TEST}_LDFLAGS} ${flag}")
37 ENDFOREACH(flag)
38
39 ADD_DEFINITIONS(-DMOBILE)
40 ENDIF()
41
42 IF(platform STREQUAL "GEEK" OR platform STREQUAL "IVI")
43 SET(TIZEN_FLAGS "tizen-flags")
44 pkg_check_modules(${TIZEN_FLAGS} REQUIRED
45                         dlog
46                         aul
47                         syspopup-caller
48                         notification
49                         capi-base-common)
50 FOREACH(flag ${${TIZEN_FLAGS}_CFLAGS})
51         SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
52 ENDFOREACH(flag)
53
54 FOREACH(flag ${${TIZEN_FLAGS}_LDFLAGS})
55         SET(${TEST}_LDFLAGS "${${TEST}_LDFLAGS} ${flag}")
56 ENDFOREACH(flag)
57
58 ADD_DEFINITIONS(-DTIZEN)
59
60 ENDIF()
61
62 # BLUETOOTH-SERVICE
63 SET(BLUETOOTH-SERVICE "bluetooth-service")
64
65 IF(platform STREQUAL "Mobile")
66 SET(SOURCES_BLUETOOTH_SERVICE
67         src/main.c
68         src/manager.c
69         src/plugin.c
70         src/vertical.c
71         src/pairing.c
72         src/opp.c
73         src/media.c
74         src/map_agent.c
75         src/map_bmessage.c
76         src/bluetooth_map_agent.c
77         lib/bluez.c
78         lib/bluez-hdp.c
79         lib/common.c
80         lib/obex.c
81    )
82 ELSE()
83 SET(SOURCES_BLUETOOTH_SERVICE
84         src/main.c
85         src/manager.c
86         src/plugin.c
87         src/vertical.c
88         src/pairing.c
89         src/opp.c
90         src/media.c
91         lib/bluez.c
92         lib/bluez-hdp.c
93         lib/common.c
94         lib/obex.c
95    )
96 ENDIF()
97
98 ADD_EXECUTABLE(${BLUETOOTH-SERVICE} ${SOURCES_BLUETOOTH_SERVICE})
99 TARGET_LINK_LIBRARIES(${BLUETOOTH-SERVICE} ${${TEST}_LDFLAGS} -ldl)
100 SET_TARGET_PROPERTIES(${BLUETOOTH-SERVICE} PROPERTIES
101                         RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
102 INSTALL(TARGETS ${BLUETOOTH-SERVICE} DESTINATION bin)
103 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluezlib.conf
104                                         DESTINATION /etc/dbus-1/system.d)
105 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluezobex.conf
106                                         DESTINATION /etc/dbus-1/system.d)
107 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluetooth-service.conf
108                                         DESTINATION /etc/dbus-1/system.d)
109 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/org.tizen.comms.service
110                                         DESTINATION share/dbus-1/system-services)
111
112 # BLUEZ-TEST
113 SET(BLUEZ-TEST "bluez-lib-test")
114
115 SET(SOURCES_BLUEZ_TEST
116         lib/common.c
117         lib/bluez.c
118         lib/bluez-hdp.c
119         test/bluez-lib-test.c
120    )
121
122 ADD_EXECUTABLE(${BLUEZ-TEST} ${SOURCES_BLUEZ_TEST})
123 TARGET_LINK_LIBRARIES(${BLUEZ-TEST} ${${TEST}_LDFLAGS})
124 SET_TARGET_PROPERTIES(${BLUEZ-TEST} PROPERTIES
125                         RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test)
126 INSTALL(TARGETS ${BLUEZ-TEST} DESTINATION ${TEST_INSTALL_DIR})
127 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/bluez-lib-test.conf
128                                         DESTINATION /etc/dbus-1/system.d)
129
130 # OBEX-TEST
131 SET(OBEX-TEST "obex-lib-test")
132
133 SET(SOURCES_OBEX_TEST
134         lib/common.c
135         lib/obex.c
136         test/obex-lib-test.c
137    )
138
139 ADD_EXECUTABLE(${OBEX-TEST} ${SOURCES_OBEX_TEST})
140 TARGET_LINK_LIBRARIES(${OBEX-TEST} ${${TEST}_LDFLAGS})
141 SET_TARGET_PROPERTIES(${OBEX-TEST} PROPERTIES
142                         RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test)
143 INSTALL(TARGETS ${OBEX-TEST} DESTINATION ${TEST_INSTALL_DIR})
144
145 # BT-SERVICE-TEST
146 SET(BT-SERVICE-TEST "bt-serivce-lib-test")
147
148 SET(SOURCES_BT_SERVICE_TEST
149         lib/common.c
150         lib/bluetooth-service.c
151         test/bt-service-lib-test.c
152    )
153
154 ADD_EXECUTABLE(${BT-SERVICE-TEST} ${SOURCES_BT_SERVICE_TEST})
155 TARGET_LINK_LIBRARIES(${BT-SERVICE-TEST} ${${TEST}_LDFLAGS})
156 SET_TARGET_PROPERTIES(${BT-SERVICE-TEST} PROPERTIES
157                         RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test)
158 INSTALL(TARGETS ${BT-SERVICE-TEST} DESTINATION ${TEST_INSTALL_DIR})
159
160 # CAPI-BLUETOOTH
161 SET(CAPI-BLUETOOTH "capi-network-bluetooth")
162
163 SET(SOURCE_CAPI_BLUETOOTH
164         lib/common.c
165         lib/bluez.c
166         lib/bluez-hdp.c
167         capi/bluetooth.c
168         lib/obex.c
169         capi/bluetooth-obex.c
170         lib/bluetooth-service.c
171    )
172
173 ADD_LIBRARY(${CAPI-BLUETOOTH} SHARED ${SOURCE_CAPI_BLUETOOTH})
174 TARGET_LINK_LIBRARIES(${CAPI-BLUETOOTH} ${${TEST}_LDFALGS})
175
176 SET_TARGET_PROPERTIES(${CAPI-BLUETOOTH}
177      PROPERTIES
178      VERSION ${FULLVER}
179      SOVERSION ${MAJORVER}
180      CLEAN_DIRECT_OUTPUT 1
181      LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/capi
182 )
183
184 INSTALL(FILES include/bluetooth.h DESTINATION include/network)
185
186 INSTALL(TARGETS ${CAPI-BLUETOOTH} DESTINATION ${LIB_INSTALL_DIR})
187 CONFIGURE_FILE(
188     capi-network-bluetooth.pc.in
189     ${CMAKE_CURRENT_SOURCE_DIR}/${CAPI-BLUETOOTH}.pc
190     @ONLY
191 )
192 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${CAPI-BLUETOOTH}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
193
194 # BLUEZ-CAPI-TEST
195 SET(BLUEZ-CAPI-TEST "bluez-capi-test")
196
197 SET(SOURCE_BLUEZ_CAPI_TEST
198         test/bluez-capi-test.c
199    )
200
201 ADD_EXECUTABLE(${BLUEZ-CAPI-TEST} ${SOURCE_BLUEZ_CAPI_TEST})
202 TARGET_LINK_LIBRARIES(${BLUEZ-CAPI-TEST} ${CAPI-BLUETOOTH} ${${TEST}_LDFLAGS})
203 SET_TARGET_PROPERTIES(${BLUEZ-CAPI-TEST} PROPERTIES
204                         RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/test)
205
206 IF(platform STREQUAL "GEEK")
207         ADD_DEFINITIONS("-DGEEK")
208         # geek plugin
209         SET(PLUGIN_BLUETOOTH_MOBILE "bluetooth-geek")
210
211         SET(SOURCE_PLUGIN_BLUETOOTH_MOBILE
212                 plugins/bluetooth-geek.c
213                 plugins/brcm_patchram_plus.c
214            )
215
216         ADD_LIBRARY(${PLUGIN_BLUETOOTH_MOBILE} SHARED ${SOURCE_PLUGIN_BLUETOOTH_MOBILE})
217         TARGET_LINK_LIBRARIES(${PLUGIN_BLUETOOTH_MOBILE} ${CAPI-BLUETOOTH} ${${TEST}_LDFLAGS})
218         SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES PREFIX "")
219         SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES
220                         LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/plugins)
221         INSTALL(TARGETS ${PLUGIN_BLUETOOTH_MOBILE} DESTINATION ${PLUGIN_INSTALL_DIR})
222 ENDIF()
223
224 IF(platform STREQUAL "IVI")
225         # CAPI-BLUETOOTH
226         SET(PLUGIN_BLUETOOTH_MOBILE "bluetooth-mobile")
227
228         SET(SOURCE_PLUGIN_BLUETOOTH_MOBILE
229                 plugins/bluetooth-mobile.c
230            )
231
232         ADD_LIBRARY(${PLUGIN_BLUETOOTH_MOBILE} SHARED ${SOURCE_PLUGIN_BLUETOOTH_MOBILE})
233         TARGET_LINK_LIBRARIES(${PLUGIN_BLUETOOTH_MOBILE} ${${TEST}_LDFLAGS})
234         SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES PREFIX "")
235         SET_TARGET_PROPERTIES(${PLUGIN_BLUETOOTH_MOBILE} PROPERTIES
236                         LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/plugins)
237 ENDIF()
238 INSTALL(TARGETS ${BLUEZ-CAPI-TEST} DESTINATION ${TEST_INSTALL_DIR})