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