Tizen 2.0 Release
[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
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
33 INCLUDE(FindPkgConfig)
34 pkg_check_modules(storage_pkgs REQUIRED glib-2.0 dlog vconf dbus-1)
35
36 set(EXTRA_CFLAGS "")
37 FOREACH(flag ${device_pkgs_CFLAGS})
38         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
39 ENDFOREACH(flag)
40
41 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
42
43 #message(">>> extra_cflags ${EXTRA_CFLAGS}")
44 #message(">>> result ${CMAKE_C_FLAGS}")
45
46
47 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
48
49 ADD_LIBRARY(${DEVICE-LIB} SHARED ${DEVICE-SRCS})
50 TARGET_LINK_LIBRARIES(${DEVICE-LIB} ${device_LDFLAGS} ${BASE-LIB})
51 SET_TARGET_PROPERTIES(${DEVICE-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
52 SET_TARGET_PROPERTIES(${DEVICE-LIB} PROPERTIES VERSION ${VERSION})
53
54 INSTALL(TARGETS ${DEVICE-LIB} DESTINATION lib COMPONENT RuntimeLibraries)
55
56
57 ##########################################################
58 # Define storage lib
59 ##########################################################
60
61 SET(STORAGE-LIB "email-storage")
62 SET(STORAGE-SRCS 
63         ./email-storage/email-storage.c
64 )
65
66 INCLUDE_DIRECTORIES(
67         ${CMAKE_SOURCE_DIR}/email-common-use/include
68         ${CMAKE_SOURCE_DIR}/email-daemon/include
69         ${CMAKE_SOURCE_DIR}/email-core/include
70         ${CMAKE_SOURCE_DIR}/email-core/email-storage/include
71 )
72
73
74 INCLUDE(FindPkgConfig)
75 pkg_check_modules(storage_pkgs REQUIRED drm-client glib-2.0 dlog db-util openssl vconf secure-storage dbus-1 contacts-service2)
76
77 set(EXTRA_CFLAGS "")
78 FOREACH(flag ${storage_pkgs_CFLAGS})
79         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
80 ENDFOREACH(flag)
81
82 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
83
84 #message(">>> extra_cflags ${EXTRA_CFLAGS}")
85 #message(">>> result ${CMAKE_C_FLAGS}")
86
87
88 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
89
90 ADD_LIBRARY(${STORAGE-LIB} SHARED ${STORAGE-SRCS})
91 TARGET_LINK_LIBRARIES(${STORAGE-LIB} ${storage_LDFLAGS} ${BASE-LIB} ss-client)
92 SET_TARGET_PROPERTIES(${STORAGE-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
93 SET_TARGET_PROPERTIES(${STORAGE-LIB} PROPERTIES VERSION ${VERSION})
94
95 INSTALL(TARGETS ${STORAGE-LIB} DESTINATION lib COMPONENT RuntimeLibraries)
96
97
98 ##########################################################
99 # Define network lib                                                  
100 ##########################################################
101
102 SET(NETWORK-LIB "email-network")
103 SET(NETWORK-SRCS 
104         ./email-network/email-network.c
105 )
106
107 INCLUDE_DIRECTORIES(
108         ${CMAKE_SOURCE_DIR}/email-common-use/include
109         ${CMAKE_SOURCE_DIR}/email-daemon/include
110         ${CMAKE_SOURCE_DIR}/email-core/include
111         ${CMAKE_SOURCE_DIR}/email-core/email-storage/include
112 )
113
114 INCLUDE(FindPkgConfig)
115 pkg_check_modules(network_pkgs REQUIRED glib-2.0 uw-imap-toolkit dbus-1 vconf dlog openssl)
116
117 FOREACH(flag ${network_pkgs_CFLAGS})
118         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
119 ENDFOREACH(flag)
120
121 #message(">> net extra raw: ${core_proxy_pkgs_CFLAGS}")
122
123 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
124
125 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
126
127 ADD_LIBRARY(${NETWORK-LIB} SHARED ${NETWORK-SRCS})
128 TARGET_LINK_LIBRARIES(${NETWORK-LIB} ${network_pkgs_LDFLAGS} ${BASE-LIB} ${STORAGE-LIB} dl)
129 SET_TARGET_PROPERTIES(${NETWORK-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
130 SET_TARGET_PROPERTIES(${NETWORK-LIB} PROPERTIES VERSION ${VERSION})
131
132 INSTALL(TARGETS ${NETWORK-LIB} DESTINATION lib COMPONENT RuntimeLibraries)
133
134 ##########################################################
135 # Define Core lib
136 ##########################################################
137
138 SET(CORE-LIB "email-core")
139 SET(CORE-SRCS 
140         ${CMAKE_SOURCE_DIR}/email-core/email-core-event.c
141         ${CMAKE_SOURCE_DIR}/email-core/email-core-imap-mailbox.c
142         ${CMAKE_SOURCE_DIR}/email-core/email-core-mailbox.c
143         ${CMAKE_SOURCE_DIR}/email-core/email-core-mailbox-sync.c
144         ${CMAKE_SOURCE_DIR}/email-core/email-core-mail.c
145         ${CMAKE_SOURCE_DIR}/email-core/email-core-mm-callbacks.c
146         ${CMAKE_SOURCE_DIR}/email-core/email-core-utils.c
147         ${CMAKE_SOURCE_DIR}/email-core/email-core-api.c
148         ${CMAKE_SOURCE_DIR}/email-core/email-core-smtp.c
149         ${CMAKE_SOURCE_DIR}/email-core/email-core-timer.c
150         ${CMAKE_SOURCE_DIR}/email-core/email-core-imap-idle.c
151         ${CMAKE_SOURCE_DIR}/email-core/email-core-global.c
152         ${CMAKE_SOURCE_DIR}/email-core/email-core-account.c
153         ${CMAKE_SOURCE_DIR}/email-core/email-core-mime.c
154         ${CMAKE_SOURCE_DIR}/email-core/email-core-smime.c
155         ${CMAKE_SOURCE_DIR}/email-core/email-core-cert.c
156         ${CMAKE_SOURCE_DIR}/email-core/email-core-sound.c
157         ${CMAKE_SOURCE_DIR}/email-core/email-core-task-manager.c
158         ${CMAKE_SOURCE_DIR}/email-core/email-core-tasks.c
159         ${CMAKE_SOURCE_DIR}/email-core/email-core-signal.c
160 )
161
162 INCLUDE_DIRECTORIES(
163         ${CMAKE_SOURCE_DIR}/email-common-use/include
164         ${CMAKE_SOURCE_DIR}/email-daemon/include/
165         ${CMAKE_SOURCE_DIR}/email-core/include
166         ${CMAKE_SOURCE_DIR}/email-core/email-storage/include
167         ${CMAKE_SOURCE_DIR}/email-core/email-network/include
168         ${CMAKE_SOURCE_DIR}/email-core/email-device/include
169 )
170
171
172 INCLUDE(FindPkgConfig)
173 pkg_check_modules(core_pkgs REQUIRED glib-2.0 drm-client dlog dbus-1 gthread-2.0 uw-imap-toolkit vconf vconf-internal-keys contacts-service2 secure-storage openssl accounts-svc mm-player mm-session feedback alarm-service notification libcurl libxml-2.0 cert-svc cert-svc-vcore badge)
174
175 set(EXTRA_CFLAGS "")
176 FOREACH(flag ${core_pkgs_CFLAGS})
177         SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
178 ENDFOREACH(flag)
179
180 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
181
182 #message(">> core extra raw: ${core_pkgs_CFLAGS}")
183 #message(">> core extra : ${EXTRA_CFLAGS}")
184 #message(">> core result: ${CMAKE_C_FLAGS}")
185
186 ADD_DEFINITIONS("-DCREATEPROTO=unixproto")
187 ADD_DEFINITIONS("-DEMPTYPROTO=unixproto")
188 ADD_DEFINITIONS("-DMAILSPOOL=\"/var/spool/mail\"")
189 ADD_DEFINITIONS("-DANONYMOUSHOME=\"/var/spool/mail/anonymous\"")
190 ADD_DEFINITIONS("-DACTIVEFILE=\"/var/lib/news/active\"")
191 ADD_DEFINITIONS("-DNEWSSPOOL=\"/var/spool/news\"")
192 ADD_DEFINITIONS("-DRSHPATH=\"/usr/bin/rsh\"")
193 ADD_DEFINITIONS("-DMD5ENABLE=\"/etc/cram-md5.pwd\"")
194 ADD_DEFINITIONS("-DSSL_CERT_DIRECTORY=\"/opt/etc/ssl/certs\"")
195 ADD_DEFINITIONS("-DSSL_KEY_DIRECTORY=\"/opt/etc/ssl/certs\"")
196 ADD_DEFINITIONS("-DCHUNKSIZE=65536")
197 ADD_DEFINITIONS("-DLOCKPGM=\"\"")
198 ADD_DEFINITIONS("-DLOCKPGM1=\"/usr/libexec/mlock\"")
199 ADD_DEFINITIONS("-DLOCKPGM2=\"/usr/sbin/mlock\"")
200 ADD_DEFINITIONS("-DLOCKPGM3=\"/usr/etc/mlock\"")
201 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
202
203 ADD_LIBRARY(${CORE-LIB} SHARED ${CORE-SRCS})
204
205 TARGET_LINK_LIBRARIES(${CORE-LIB} ${core_pkgs_LDFLAGS} ${STORAGE-LIB} ${NETWORK-LIB} ${DEVICE-LIB})
206
207 SET_TARGET_PROPERTIES(${CORE-LIB} PROPERTIES SOVERSION ${VERSION_MAJOR})
208 SET_TARGET_PROPERTIES(${CORE-LIB} PROPERTIES VERSION ${VERSION})
209
210 INSTALL(TARGETS ${CORE-LIB} DESTINATION lib COMPONENT RuntimeLibraries)
211
212