6a111cc8b6a9a872b696f18f6ba04e997ffb90cd
[platform/core/messaging/email-service.git] / email-core / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(email-core)
3
4 SET(CMAKE_SKIP_BUILD_RPATH TRUE)
5
6 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
7         SET(CMAKE_BUILD_TYPE "Debug")
8 ENDIF("${CMAKE_BUILD_TYPE}" STREQUAL "")
9
10 MESSAGE("")
11 MESSAGE(">>> current directory: ${CMAKE_CURRENT_SOURCE_DIR}")
12 MESSAGE(">>> Build type: ${CMAKE_BUILD_TYPE}")
13
14
15 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${VISIBILITY} -fvisibility=hidden")
16 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--gc-sections")
17
18 ##########################################################
19 # Define device lib
20 ##########################################################
21
22 SET(DEVICE-LIB "email-device")
23 SET(DEVICE-SRCS 
24         ./email-device/email-device.c
25 )
26
27 INCLUDE_DIRECTORIES(
28         ${CMAKE_SOURCE_DIR}/email-common-use/include
29         ${CMAKE_SOURCE_DIR}/email-core/email-device/include
30 )
31
32 INCLUDE(FindPkgConfig)
33 pkg_check_modules(device_pkgs REQUIRED glib-2.0 dlog vconf capi-system-device dbus-1)
34
35 set(EXTRA_CFLAGS "")
36 FOREACH(flag ${device_pkgs_CFLAGS})
37         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
38 ENDFOREACH(flag)
39
40 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
41
42 #message(">>> extra_cflags ${EXTRA_CFLAGS}")
43 #message(">>> result ${CMAKE_C_FLAGS}")
44 #message(">>> ld flag ${device_pkgs_LDFLAGS}")
45
46 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
47
48 ADD_LIBRARY(${DEVICE-LIB} SHARED ${DEVICE-SRCS})
49 TARGET_LINK_LIBRARIES(${DEVICE-LIB} ${device_pkgs_LDFLAGS})
50 SET_TARGET_PROPERTIES(${DEVICE-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
51 SET_TARGET_PROPERTIES(${DEVICE-LIB} PROPERTIES VERSION ${VERSION})
52
53 INSTALL(TARGETS ${DEVICE-LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
54
55
56 ##########################################################
57 # Define storage lib
58 ##########################################################
59
60 SET(STORAGE-LIB "email-storage")
61 SET(STORAGE-SRCS 
62         ./email-storage/email-storage.c
63 )
64
65 INCLUDE_DIRECTORIES(
66         ${CMAKE_SOURCE_DIR}/email-common-use/include
67         ${CMAKE_SOURCE_DIR}/email-daemon/include
68         ${CMAKE_SOURCE_DIR}/email-core/include
69         ${CMAKE_SOURCE_DIR}/email-core/email-storage/include
70 )
71
72
73 INCLUDE(FindPkgConfig)
74 pkg_check_modules(storage_pkgs REQUIRED glib-2.0 dlog openssl vconf dbus-1 contacts-service2 libtzplatform-config)
75
76 set(EXTRA_CFLAGS "")
77 FOREACH(flag ${storage_pkgs_CFLAGS})
78         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
79 ENDFOREACH(flag)
80
81 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
82
83 #message(">>> extra_cflags ${EXTRA_CFLAGS}")
84 #message(">>> result ${CMAKE_C_FLAGS}")
85
86
87 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
88
89 ADD_LIBRARY(${STORAGE-LIB} SHARED ${STORAGE-SRCS})
90 SET_TARGET_PROPERTIES(${STORAGE-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
91 SET_TARGET_PROPERTIES(${STORAGE-LIB} PROPERTIES VERSION ${VERSION})
92
93 INSTALL(TARGETS ${STORAGE-LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
94
95
96 ##########################################################
97 # Define network lib                                                  
98 ##########################################################
99
100 SET(NETWORK-LIB "email-network")
101 SET(NETWORK-SRCS 
102         ./email-network/email-network.c
103 )
104
105 INCLUDE_DIRECTORIES(
106         ${CMAKE_SOURCE_DIR}/email-common-use/include
107         ${CMAKE_SOURCE_DIR}/email-daemon/include
108         ${CMAKE_SOURCE_DIR}/email-core/include
109         ${CMAKE_SOURCE_DIR}/email-core/email-storage/include
110 )
111
112 INCLUDE(FindPkgConfig)
113 pkg_check_modules(network_pkgs REQUIRED glib-2.0 uw-imap-toolkit dbus-1 vconf dlog openssl)
114
115 FOREACH(flag ${network_pkgs_CFLAGS})
116         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
117 ENDFOREACH(flag)
118
119 #message(">> net extra raw: ${core_proxy_pkgs_CFLAGS}")
120
121 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
122
123 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
124
125 ADD_LIBRARY(${NETWORK-LIB} SHARED ${NETWORK-SRCS})
126 TARGET_LINK_LIBRARIES(${NETWORK-LIB} ${network_pkgs_LDFLAGS} ${STORAGE-LIB} dl)
127 SET_TARGET_PROPERTIES(${NETWORK-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
128 SET_TARGET_PROPERTIES(${NETWORK-LIB} PROPERTIES VERSION ${VERSION})
129
130 INSTALL(TARGETS ${NETWORK-LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
131
132 ##########################################################
133 # Define container lib                                                  
134 ##########################################################
135
136 SET(CONTAINER-LIB "email-container")
137 SET(CONTAINER-SRCS 
138     ${CMAKE_SOURCE_DIR}/email-core/email-core-container.c
139 )
140
141 INCLUDE_DIRECTORIES(
142         ${CMAKE_SOURCE_DIR}/email-common-use/include
143 )
144
145 INCLUDE(FindPkgConfig)
146 SET(PKG_MODULES glib-2.0)
147
148 # __FEATURE_CONTAINER_ENABLE__
149 #SET(PKG_MODULES glib-2.0 vasum)
150
151 pkg_check_modules(container_pkgs REQUIRED ${PKG_MODULES})
152
153 FOREACH(flag ${container_pkgs_CFLAGS})
154         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
155 ENDFOREACH(flag)
156
157 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
158
159 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
160
161 ADD_LIBRARY(${CONTAINER-LIB} SHARED ${CONTAINER-SRCS})
162 TARGET_LINK_LIBRARIES(${CONTAINER-LIB} ${container_pkgs_LDFLAGS} dl)
163 SET_TARGET_PROPERTIES(${CONTAINER-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
164 SET_TARGET_PROPERTIES(${CONTAINER-LIB} PROPERTIES VERSION ${VERSION})
165
166 INSTALL(TARGETS ${CONTAINER-LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
167
168 ##########################################################
169 # Define cynara lib                                                  
170 ##########################################################
171
172 SET(CYNARA-LIB "email-cynara")
173 SET(CYNARA-SRCS 
174     ${CMAKE_SOURCE_DIR}/email-core/email-core-cynara.c
175 )
176
177 INCLUDE_DIRECTORIES(
178         ${CMAKE_SOURCE_DIR}/email-common-use/include
179 )
180
181 INCLUDE(FindPkgConfig)
182 SET(PKG_MODULES cynara-client cynara-creds-socket cynara-session)
183
184 pkg_check_modules(cynara_pkgs REQUIRED ${PKG_MODULES})
185
186 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${cynara_pkgs_CFLAGS}")
187 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
188
189 ADD_LIBRARY(${CYNARA-LIB} SHARED ${CYNARA-SRCS})
190 TARGET_LINK_LIBRARIES(${CYNARA-LIB} ${cynara_pkgs_LDFLAGS} dl)
191 SET_TARGET_PROPERTIES(${CYNARA-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
192 SET_TARGET_PROPERTIES(${CYNARA-LIB} PROPERTIES VERSION ${VERSION})
193
194 INSTALL(TARGETS ${CYNARA-LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
195
196 ##########################################################
197 # Define Core lib
198 ##########################################################
199
200 SET(CORE-LIB "email-core")
201 SET(CORE-SRCS 
202         ${CMAKE_SOURCE_DIR}/email-core/email-core-event.c
203         ${CMAKE_SOURCE_DIR}/email-core/email-core-imap-mailbox.c
204         ${CMAKE_SOURCE_DIR}/email-core/email-core-mailbox.c
205         ${CMAKE_SOURCE_DIR}/email-core/email-core-mailbox-sync.c
206         ${CMAKE_SOURCE_DIR}/email-core/email-core-mail.c
207         ${CMAKE_SOURCE_DIR}/email-core/email-core-mm-callbacks.c
208         ${CMAKE_SOURCE_DIR}/email-core/email-core-utils.c
209         ${CMAKE_SOURCE_DIR}/email-core/email-core-smtp.c
210         ${CMAKE_SOURCE_DIR}/email-core/email-core-timer.c
211         ${CMAKE_SOURCE_DIR}/email-core/email-core-imap-idle.c
212         ${CMAKE_SOURCE_DIR}/email-core/email-core-global.c
213         ${CMAKE_SOURCE_DIR}/email-core/email-core-account.c
214         ${CMAKE_SOURCE_DIR}/email-core/email-core-mime.c
215         ${CMAKE_SOURCE_DIR}/email-core/email-core-gmime.c
216         ${CMAKE_SOURCE_DIR}/email-core/email-core-task-manager.c
217         ${CMAKE_SOURCE_DIR}/email-core/email-core-tasks.c
218         ${CMAKE_SOURCE_DIR}/email-core/email-core-signal.c
219         ${CMAKE_SOURCE_DIR}/email-core/email-core-alarm.c
220         ${CMAKE_SOURCE_DIR}/email-core/email-core-auto-download.c
221         ${CMAKE_SOURCE_DIR}/email-core/email-core-key-manager.c
222         ${CMAKE_SOURCE_DIR}/email-core/email-core-dpm.c
223 )
224
225 INCLUDE_DIRECTORIES(
226         ${CMAKE_SOURCE_DIR}/email-common-use/include
227         ${CMAKE_SOURCE_DIR}/email-core/include
228         ${CMAKE_SOURCE_DIR}/email-core/email-storage/include
229         ${CMAKE_SOURCE_DIR}/email-core/email-network/include
230         ${CMAKE_SOURCE_DIR}/email-core/email-device/include
231         ${CMAKE_SOURCE_DIR}/email-ipc/email-activation/include/
232 )
233
234
235 INCLUDE(FindPkgConfig)
236 SET(PKG_MODULES glib-2.0 dlog dbus-1 gthread-2.0 key-manager tpkp-curl
237                         uw-imap-toolkit vconf vconf-internal-keys contacts-service2 
238                         openssl accounts-svc alarm-service notification libcurl libxml-2.0 
239                         cert-svc-vcore badge capi-appfw-application icu-i18n gmime-2.6 storage dpm cryptsvc)
240
241 pkg_check_modules(core_pkgs REQUIRED ${PKG_MODULES})
242
243 set(EXTRA_CFLAGS "")
244 FOREACH(flag ${core_pkgs_CFLAGS})
245         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
246 ENDFOREACH(flag)
247
248 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
249
250 #message(">> core extra raw: ${core_pkgs_CFLAGS}")
251 #message(">> core extra : ${EXTRA_CFLAGS}")
252 #message(">> core result: ${CMAKE_C_FLAGS}")
253
254 ADD_DEFINITIONS("-DCREATEPROTO=unixproto")
255 ADD_DEFINITIONS("-DEMPTYPROTO=unixproto")
256 ADD_DEFINITIONS("-DMAILSPOOL=\"/var/spool/mail\"")
257 ADD_DEFINITIONS("-DANONYMOUSHOME=\"/var/spool/mail/anonymous\"")
258 ADD_DEFINITIONS("-DACTIVEFILE=\"/var/lib/news/active\"")
259 ADD_DEFINITIONS("-DNEWSSPOOL=\"/var/spool/news\"")
260 ADD_DEFINITIONS("-DRSHPATH=\"/usr/bin/rsh\"")
261 ADD_DEFINITIONS("-DMD5ENABLE=\"/etc/cram-md5.pwd\"")
262 ADD_DEFINITIONS("-DSSL_CERT_DIRECTORY=\"${TZ_SYS_ETC}/ssl/certs\"")
263 ADD_DEFINITIONS("-DSSL_KEY_DIRECTORY=\"${TZ_SYS_ETC}/ssl/certs\"")
264 ADD_DEFINITIONS("-DCHUNKSIZE=65536")
265 ADD_DEFINITIONS("-DLOCKPGM=\"\"")
266 ADD_DEFINITIONS("-DLOCKPGM1=\"/usr/libexec/mlock\"")
267 ADD_DEFINITIONS("-DLOCKPGM2=\"/usr/sbin/mlock\"")
268 ADD_DEFINITIONS("-DLOCKPGM3=\"/usr/etc/mlock\"")
269 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
270
271 ADD_LIBRARY(${CORE-LIB} SHARED ${CORE-SRCS})
272 TARGET_LINK_LIBRARIES(${CORE-LIB} ${core_pkgs_LDFLAGS} ${STORAGE-LIB} ${NETWORK-LIB} ${DEVICE-LIB} ${CONTAINER-LIB} ${CYNARA-LIB})
273 SET_TARGET_PROPERTIES(${CORE-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
274 SET_TARGET_PROPERTIES(${CORE-LIB} PROPERTIES VERSION ${VERSION})
275
276 INSTALL(TARGETS ${CORE-LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
277
278 ##########################################################
279 # Define smime lib
280 ##########################################################
281
282 SET(SMIME-LIB "email-smime")
283 SET(SMIME-SRCS 
284         ${CMAKE_SOURCE_DIR}/email-core/email-core-smime.c
285         ${CMAKE_SOURCE_DIR}/email-core/email-core-cert.c
286         ${CMAKE_SOURCE_DIR}/email-core/email-core-pgp.c
287 )
288
289 INCLUDE_DIRECTORIES(
290         ${CMAKE_SOURCE_DIR}/email-common-use/include
291         ${CMAKE_SOURCE_DIR}/email-core/include
292         ${CMAKE_SOURCE_DIR}/email-core/email-storage/include
293 )
294
295
296 INCLUDE(FindPkgConfig)
297 pkg_check_modules(smime_pkgs REQUIRED glib-2.0 dlog cert-svc-vcore)
298
299 set(EXTRA_CFLAGS "")
300 FOREACH(flag ${smime_pkgs_CFLAGS})
301         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
302 ENDFOREACH(flag)
303
304 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
305
306 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
307
308 ADD_LIBRARY(${SMIME-LIB} SHARED ${SMIME-SRCS})
309 TARGET_LINK_LIBRARIES(${SMIME-LIB} ${smime_pkgs_LDFLAGS})
310 SET_TARGET_PROPERTIES(${SMIME-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
311 SET_TARGET_PROPERTIES(${SMIME-LIB} PROPERTIES VERSION ${VERSION})
312
313 INSTALL(TARGETS ${SMIME-LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
314
315
316