Support ise-engine-loader feature
[platform/core/uifw/ise-default.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(ise-default CXX)
3
4 SET(ISE_SRCS
5     src/ise.cpp
6     src/languages.cpp
7     src/ise-language-change.cpp
8     src/ise-tutorial-mode.cpp
9     src/config.cpp
10     src/imdata.cpp
11     src/ise-stt-mode.cpp
12     src/ise-stt-option.cpp
13     src/ise-stt-common.cpp
14     src/ise-floating-mode.cpp
15     src/MicEffector.cpp
16     src/SttFeedback.cpp
17     src/SttManager.cpp
18     src/WInputSttMicEffect.cpp
19     src/sdk/ise_lang_table.cpp
20     src/sdk/cji.cpp
21     src/sdk/sdk.cpp
22     src/candidate/candidate-factory.cpp
23     src/candidate/candidate.cpp
24     src/candidate/efl/candidate-efl.cpp
25     src/candidate/efl/candidate-multiline-efl.cpp
26     src/autofill.cpp
27     src/ise-dbus.cpp
28
29     src/ise-emoticon-list.cpp
30     src/ise-emoticon-mode.cpp
31     src/modeindicator.cpp
32     src/eflutil.cpp
33
34     src/w-input-smartreply.cpp
35 )
36
37 SET(ISE_SETTING_SRCS
38     src/config.cpp
39     src/ise-stt-option.cpp
40     src/option.cpp
41     src/sdk/sdk_option.cpp
42     src/eflutil.cpp
43     src/languages.cpp
44     src/sdk/ise_lang_table.cpp
45     src/autofill.cpp
46 )
47
48 SET(ISE_PACKAGE ${PROJECT_NAME})
49 SET(ISE_PKGNAME ${PACKAGE})
50 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
51 SET(ISE_BINDIR "${TZ_SYS_RO_APP}/${ISE_PACKAGE}/bin")
52 SET(ISE_LIBDIR "${TZ_SYS_RO_APP}/${ISE_PACKAGE}/lib")
53 SET(ISE_RESDIR "${TZ_SYS_RO_APP}/${ISE_PACKAGE}/res")
54 SET(ISE_LAYOUTDIR "${ISE_RESDIR}/720x1280/default")
55 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
56     SET(CMAKE_BUILD_TYPE "Release")
57 ENDIF()
58 MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
59
60 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include
61     ${CMAKE_SOURCE_DIR}/src
62     ${CMAKE_SOURCE_DIR}/src/candidate/include
63     ${CMAKE_SOURCE_DIR}/src/candidate/efl
64 )
65
66 INCLUDE(FindPkgConfig)
67 SET(PKGS_CHECK_MODULES
68         elementary
69         efl-extension
70         dlog
71         libscl-ui
72         ecore-imf
73         vconf
74         libxml-2.0
75         stt
76         capi-appfw-application
77         capi-appfw-preference
78         capi-media-audio-io
79         capi-ui-inputmethod
80         capi-system-system-settings
81         smartreply
82         key-manager
83         ode
84         glib-2.0
85         dbus-1
86         gio-2.0
87         )
88
89 IF (with_cbhm)
90     ADD_DEFINITIONS("-DHAVE_CBHM")
91     SET(PKGS_CHECK_MODULES ${PKGS_CHECK_MODULES} cbhm)
92 ENDIF(with_cbhm)
93
94 pkg_check_modules(ISE_PKGS REQUIRED ${PKGS_CHECK_MODULES})
95
96 FOREACH(flag ${ISE_PKGS_CFLAGS})
97     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
98 ENDFOREACH(flag)
99
100 SET(SETTING_PKGS_CHECK_MODULES
101         elementary
102         efl-extension
103         dlog
104         vconf
105         libxml-2.0
106         capi-appfw-application
107         capi-appfw-preference
108         capi-system-system-settings
109         key-manager
110         )
111
112 pkg_check_modules(ISE_SETTING_PKGS REQUIRED ${SETTING_PKGS_CHECK_MODULES})
113
114 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -fpermissive -Werror")
115 #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -finstrument-functions")
116 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
117 SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g")
118 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
119
120 ADD_DEFINITIONS("-DEXPORTED=__attribute__((visibility(\"default\")))")
121 ADD_DEFINITIONS("-DPACKAGE=\"${ISE_PACKAGE}\"")
122 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${ISE_PKGNAME}\"")
123 ADD_DEFINITIONS("-DRESDIR=\"${ISE_RESDIR}\"")
124 ADD_DEFINITIONS("-DLAYOUTDIR=\"${ISE_LAYOUTDIR}\"")
125 ADD_DEFINITIONS(-DISE_NAME=\"/ise-default\")
126 ADD_DEFINITIONS(-DSUPPORTS_EMOTICONS)
127
128 ADD_EXECUTABLE(${PROJECT_NAME} ${ISE_SRCS})
129
130 ADD_EXECUTABLE(${PROJECT_NAME}-setting ${ISE_SETTING_SRCS})
131
132 # For edc File
133 ADD_CUSTOM_TARGET(
134     candidate-single.edj
135     COMMAND edje_cc -no-save
136         -id ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single
137         -sd ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single
138         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single/candidate.edc
139         ${CMAKE_BINARY_DIR}/candidate-single.edj
140     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single/candidate.edc
141 )
142 ADD_DEPENDENCIES(${PROJECT_NAME} candidate-single.edj)
143 INSTALL(FILES ${CMAKE_BINARY_DIR}/candidate-single.edj DESTINATION ${ISE_RESDIR}/edje)
144 # For edc File end
145 # For edc File
146 ADD_CUSTOM_TARGET(
147     candidate-multiline.edj
148     COMMAND edje_cc -no-save
149         -id ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline
150         -sd ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline
151         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline/candidate.edc
152         ${CMAKE_BINARY_DIR}/candidate-multiline.edj
153     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline/candidate.edc
154 )
155 ADD_DEPENDENCIES(${PROJECT_NAME} candidate-multiline.edj)
156 INSTALL(FILES ${CMAKE_BINARY_DIR}/candidate-multiline.edj DESTINATION ${ISE_RESDIR}/edje)
157 # For edc File end
158 # For edc File
159 ADD_CUSTOM_TARGET(
160     customised_gengrid.edj
161     COMMAND edje_cc -no-save
162         -id ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid
163         -sd ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid
164         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/customised_gengrid.edc
165         ${CMAKE_BINARY_DIR}/customised_gengrid.edj
166     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/customised_gengrid.edc)
167 ADD_DEPENDENCIES(${PROJECT_NAME} customised_gengrid.edj)
168 INSTALL(FILES ${CMAKE_BINARY_DIR}/customised_gengrid.edj DESTINATION ${ISE_RESDIR}/edje)
169
170 ADD_CUSTOM_TARGET(
171     layout_keypad.edj
172     COMMAND edje_cc -no-save
173         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/layout_keypad.edc
174         ${CMAKE_BINARY_DIR}/layout_keypad.edj
175         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/layout_keypad.edc)
176 ADD_DEPENDENCIES(${PROJECT_NAME} layout_keypad.edj)
177 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout_keypad.edj DESTINATION ${ISE_RESDIR}/edje)
178
179 ADD_CUSTOM_TARGET( customised_ctxpopup.edj COMMAND edje_cc
180         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile
181         -sd ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile
182         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/customised_ctxpopup.edc
183         ${CMAKE_BINARY_DIR}/customised_ctxpopup.edj
184         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/customised_ctxpopup.edc)
185 ADD_DEPENDENCIES(${PROJECT_NAME} customised_ctxpopup.edj)
186 INSTALL(FILES ${CMAKE_BINARY_DIR}/customised_ctxpopup.edj DESTINATION ${ISE_RESDIR}/edje/mobile)
187
188 if(${TARGET} STREQUAL "wearable")
189 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/res/wearable/edje)
190 ADD_CUSTOM_TARGET(w-input-stt.edj COMMAND edje_cc
191         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
192         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt.edc
193         ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt.edj
194         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt.edc)
195 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt.edj)
196 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt.edj DESTINATION
197 ${ISE_RESDIR}/edje/wearable)
198
199 ADD_CUSTOM_TARGET(popup_custom.edj COMMAND edje_cc
200         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
201         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/popup_custom.edc
202         ${CMAKE_BINARY_DIR}/res/wearable/edje/popup_custom.edj
203         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/popup_custom.edc)
204 ADD_DEPENDENCIES(${PROJECT_NAME} popup_custom.edj)
205 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/popup_custom.edj DESTINATION
206 ${ISE_RESDIR}/edje/wearable)
207
208 ADD_CUSTOM_TARGET(tutorial_popup.edj COMMAND edje_cc
209         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
210         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/tutorial_popup.edc
211         ${CMAKE_BINARY_DIR}/res/wearable/edje/tutorial_popup.edj
212         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/tutorial_popup.edc)
213 ADD_DEPENDENCIES(${PROJECT_NAME} tutorial_popup.edj)
214 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/tutorial_popup.edj DESTINATION
215 ${ISE_RESDIR}/edje/wearable)
216
217 ADD_CUSTOM_TARGET(w-input-stt-button.edj COMMAND edje_cc
218         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
219         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt-button.edc
220         ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt-button.edj
221         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt-button.edc)
222 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt-button.edj)
223 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt-button.edj DESTINATION
224 ${ISE_RESDIR}/edje/wearable)
225
226 elseif(${TARGET} STREQUAL "tv")
227 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/res/tv/edje)
228 ADD_CUSTOM_TARGET(w-input-stt.edj COMMAND edje_cc
229         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
230         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt.edc
231         ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt.edj
232         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt.edc)
233 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt.edj)
234 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt.edj DESTINATION
235 ${ISE_RESDIR}/edje/tv)
236
237 ADD_CUSTOM_TARGET(w-input-stt-button.edj COMMAND edje_cc
238         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
239         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt-button.edc
240         ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt-button.edj
241         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt-button.edc)
242 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt-button.edj)
243 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt-button.edj DESTINATION
244 ${ISE_RESDIR}/edje/tv)
245
246 ADD_CUSTOM_TARGET(popup_custom.edj COMMAND edje_cc
247         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
248         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_custom.edc
249         ${CMAKE_BINARY_DIR}/res/tv/edje/popup_custom.edj
250         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_custom.edc)
251 ADD_DEPENDENCIES(${PROJECT_NAME} popup_custom.edj)
252 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/popup_custom.edj DESTINATION
253 ${ISE_RESDIR}/edje/tv)
254
255 ADD_CUSTOM_TARGET(popup_keyboard.edj COMMAND edje_cc
256         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
257         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_keyboard.edc
258         ${CMAKE_BINARY_DIR}/res/tv/edje/popup_keyboard.edj
259         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_keyboard.edc)
260 ADD_DEPENDENCIES(${PROJECT_NAME} popup_keyboard.edj)
261 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/popup_keyboard.edj DESTINATION
262 ${ISE_RESDIR}/edje/tv)
263
264 else()
265 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/res/mobile/edje)
266 ADD_CUSTOM_TARGET(w-input-stt.edj COMMAND edje_cc
267         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile/images
268         ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt.edc
269         ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt.edj
270         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt.edc)
271 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt.edj)
272 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt.edj DESTINATION
273 ${ISE_RESDIR}/edje/mobile)
274
275 ADD_CUSTOM_TARGET(w-input-stt-button.edj COMMAND edje_cc
276         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile/images
277         ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt-button.edc
278         ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt-button.edj
279         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt-button.edc)
280 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt-button.edj)
281 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt-button.edj DESTINATION
282 ${ISE_RESDIR}/edje/mobile)
283
284 ADD_CUSTOM_TARGET(popup_custom.edj COMMAND edje_cc
285         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile/images
286         ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/popup_custom.edc
287         ${CMAKE_BINARY_DIR}/res/mobile/edje/popup_custom.edj
288         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/popup_custom.edc)
289 ADD_DEPENDENCIES(${PROJECT_NAME} popup_custom.edj)
290 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/mobile/edje/popup_custom.edj DESTINATION
291 ${ISE_RESDIR}/edje/mobile)
292 endif()
293
294 # For edc File end
295
296 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ISE_PKGS_LDFLAGS})
297 TARGET_LINK_LIBRARIES(${PROJECT_NAME}-setting ${ISE_SETTING_PKGS_LDFLAGS})
298
299 set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
300 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${ISE_BINDIR})
301 INSTALL(TARGETS ${PROJECT_NAME}-setting DESTINATION ${ISE_BINDIR})
302
303 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.xml DESTINATION
304         ${TZ_SYS_RO_PACKAGES})
305
306 if(${TARGET} STREQUAL "wearable")
307 FILE(GLOB_RECURSE ISE_DEFAULT_IMAGES "${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/images/*.png")
308 INSTALL(FILES ${ISE_DEFAULT_IMAGES} DESTINATION ${ISE_RESDIR}/wearable/images)
309 elseif(${TARGET} STREQUAL "tv")
310 FILE(GLOB_RECURSE ISE_DEFAULT_IMAGES "${CMAKE_CURRENT_SOURCE_DIR}/res/tv/images/*.png")
311 INSTALL(FILES ${ISE_DEFAULT_IMAGES} DESTINATION ${ISE_RESDIR}/tv/images)
312 else()
313 FILE(GLOB_RECURSE ISE_DEFAULT_IMAGES "${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/images/*.png")
314 INSTALL(FILES ${ISE_DEFAULT_IMAGES} DESTINATION ${ISE_RESDIR}/mobile/images)
315 endif()
316
317 if(${TARGET} STREQUAL "tv")
318 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/pixmaps/default/tv/
319         DESTINATION ${ISE_LAYOUTDIR}/tv/image)
320 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/layout/tv/ DESTINATION
321         ${ISE_LAYOUTDIR}/tv FILES_MATCHING PATTERN "*.xml")
322 elseif(${TARGET} STREQUAL "wearable")
323 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/pixmaps/default/wearable/
324         DESTINATION ${ISE_LAYOUTDIR}/wearable/image)
325 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/layout/wearable/ DESTINATION
326         ${ISE_LAYOUTDIR}/wearable FILES_MATCHING PATTERN "*.xml")
327 else()
328 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/pixmaps/default/mobile/
329         DESTINATION ${ISE_LAYOUTDIR}/mobile/image)
330 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/layout/mobile/ DESTINATION
331         ${ISE_LAYOUTDIR}/mobile FILES_MATCHING PATTERN "*.xml")
332 endif()
333
334 ADD_SUBDIRECTORY(po)