Support delete all in voicetyping
[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/voicetyping.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 FIND_PROGRAM(UNAME NAMES uname)
49 EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
50 MESSAGE(STATUS "======================================")
51 IF("${ARCH}" MATCHES "^arm.*")
52 #MESSAGE(STATUS "Arch   -       arm")
53 SET(SRC_LIB_DIR "${CMAKE_SOURCE_DIR}/lib/armv7l")
54 ELSEIF("${ARCH}" MATCHES "^i586.*")
55 #MESSAGE(STATUS "Arch   -       i586")
56 SET(SRC_LIB_DIR "${CMAKE_SOURCE_DIR}/lib/i586")
57 ELSEIF("${ARCH}" MATCHES "^i686.*")
58 #MESSAGE(STATUS "Arch    -   686")
59 SET(SRC_LIB_DIR "${CMAKE_SOURCE_DIR}/lib/i586")
60 ENDIF()
61
62 SET(ISE_PACKAGE ${PROJECT_NAME})
63 SET(ISE_PKGNAME ${PACKAGE})
64 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
65 SET(ISE_BINDIR "${TZ_SYS_RO_APP}/${ISE_PACKAGE}/bin")
66 SET(ISE_LIBDIR "${TZ_SYS_RO_APP}/${ISE_PACKAGE}/lib")
67 SET(ISE_RESDIR "${TZ_SYS_RO_APP}/${ISE_PACKAGE}/res")
68 SET(ISE_LAYOUTDIR "${ISE_RESDIR}/720x1280/default")
69 IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
70     SET(CMAKE_BUILD_TYPE "Release")
71 ENDIF()
72 MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
73
74 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/include
75     ${CMAKE_SOURCE_DIR}/src
76     ${CMAKE_SOURCE_DIR}/src/candidate/include
77     ${CMAKE_SOURCE_DIR}/src/candidate/efl
78 )
79
80 INCLUDE(FindPkgConfig)
81 SET(PKGS_CHECK_MODULES
82         elementary
83         efl-extension
84         dlog
85         libscl-ui
86         ecore-imf
87         vconf
88         libxml-2.0
89         stt
90         capi-appfw-application
91         capi-appfw-preference
92         capi-media-audio-io
93         capi-ui-inputmethod
94         capi-system-system-settings
95         smartreply
96         key-manager
97         ode
98         bundle
99         rpc-port
100         json-glib-1.0
101         )
102
103 IF (with_cbhm)
104     ADD_DEFINITIONS("-DHAVE_CBHM")
105     SET(PKGS_CHECK_MODULES ${PKGS_CHECK_MODULES} cbhm)
106 ENDIF(with_cbhm)
107
108 pkg_check_modules(ISE_PKGS REQUIRED ${PKGS_CHECK_MODULES})
109
110 FOREACH(flag ${ISE_PKGS_CFLAGS})
111     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
112 ENDFOREACH(flag)
113
114 SET(SETTING_PKGS_CHECK_MODULES
115         elementary
116         efl-extension
117         dlog
118         vconf
119         libxml-2.0
120         capi-appfw-application
121         capi-appfw-preference
122         capi-system-system-settings
123         key-manager
124         )
125
126 pkg_check_modules(ISE_SETTING_PKGS REQUIRED ${SETTING_PKGS_CHECK_MODULES})
127
128 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -fpermissive -Werror")
129 #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -finstrument-functions")
130 SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
131 SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g")
132 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
133
134 ADD_DEFINITIONS("-DEXPORTED=__attribute__((visibility(\"default\")))")
135 ADD_DEFINITIONS("-DPACKAGE=\"${ISE_PACKAGE}\"")
136 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${ISE_PKGNAME}\"")
137 ADD_DEFINITIONS("-DRESDIR=\"${ISE_RESDIR}\"")
138 ADD_DEFINITIONS("-DLAYOUTDIR=\"${ISE_LAYOUTDIR}\"")
139 ADD_DEFINITIONS(-DISE_NAME=\"/ise-default\")
140 ADD_DEFINITIONS(-DSUPPORTS_EMOTICONS)
141
142 IF(NOT "${SRC_LIB_DIR}" STREQUAL "")
143     ADD_DEFINITIONS(-DSUPPORT_VOICETYPING)
144     LINK_DIRECTORIES(${SRC_LIB_DIR})
145 ENDIF()
146
147 ADD_EXECUTABLE(${PROJECT_NAME} ${ISE_SRCS})
148
149 ADD_EXECUTABLE(${PROJECT_NAME}-setting ${ISE_SETTING_SRCS})
150
151 # For edc File
152 ADD_CUSTOM_TARGET(
153     candidate-single.edj
154     COMMAND edje_cc -no-save
155         -id ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single
156         -sd ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single
157         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single/candidate.edc
158         ${CMAKE_BINARY_DIR}/candidate-single.edj
159     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-single/candidate.edc
160 )
161 ADD_DEPENDENCIES(${PROJECT_NAME} candidate-single.edj)
162 INSTALL(FILES ${CMAKE_BINARY_DIR}/candidate-single.edj DESTINATION ${ISE_RESDIR}/edje)
163 # For edc File end
164 # For edc File
165 ADD_CUSTOM_TARGET(
166     candidate-multiline.edj
167     COMMAND edje_cc -no-save
168         -id ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline
169         -sd ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline
170         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline/candidate.edc
171         ${CMAKE_BINARY_DIR}/candidate-multiline.edj
172     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/candidate-multiline/candidate.edc
173 )
174 ADD_DEPENDENCIES(${PROJECT_NAME} candidate-multiline.edj)
175 INSTALL(FILES ${CMAKE_BINARY_DIR}/candidate-multiline.edj DESTINATION ${ISE_RESDIR}/edje)
176 # For edc File end
177 # For edc File
178 ADD_CUSTOM_TARGET(
179     customised_gengrid.edj
180     COMMAND edje_cc -no-save
181         -id ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid
182         -sd ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid
183         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/customised_gengrid.edc
184         ${CMAKE_BINARY_DIR}/customised_gengrid.edj
185     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/customised_gengrid.edc)
186 ADD_DEPENDENCIES(${PROJECT_NAME} customised_gengrid.edj)
187 INSTALL(FILES ${CMAKE_BINARY_DIR}/customised_gengrid.edj DESTINATION ${ISE_RESDIR}/edje)
188
189 ADD_CUSTOM_TARGET(
190     layout_keypad.edj
191     COMMAND edje_cc -no-save
192         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/layout_keypad.edc
193         ${CMAKE_BINARY_DIR}/layout_keypad.edj
194         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/gengrid/layout_keypad.edc)
195 ADD_DEPENDENCIES(${PROJECT_NAME} layout_keypad.edj)
196 INSTALL(FILES ${CMAKE_BINARY_DIR}/layout_keypad.edj DESTINATION ${ISE_RESDIR}/edje)
197
198 ADD_CUSTOM_TARGET( customised_ctxpopup.edj COMMAND edje_cc
199         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile
200         -sd ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile
201         ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/customised_ctxpopup.edc
202         ${CMAKE_BINARY_DIR}/customised_ctxpopup.edj
203         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/data/edc/customised_ctxpopup.edc)
204 ADD_DEPENDENCIES(${PROJECT_NAME} customised_ctxpopup.edj)
205 INSTALL(FILES ${CMAKE_BINARY_DIR}/customised_ctxpopup.edj DESTINATION ${ISE_RESDIR}/edje/mobile)
206
207 if(${TARGET} STREQUAL "wearable")
208 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/res/wearable/edje)
209 ADD_CUSTOM_TARGET(w-input-stt.edj COMMAND edje_cc
210         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
211         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt.edc
212         ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt.edj
213         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt.edc)
214 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt.edj)
215 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt.edj DESTINATION
216 ${ISE_RESDIR}/edje/wearable)
217
218 ADD_CUSTOM_TARGET(popup_custom.edj COMMAND edje_cc
219         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
220         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/popup_custom.edc
221         ${CMAKE_BINARY_DIR}/res/wearable/edje/popup_custom.edj
222         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/popup_custom.edc)
223 ADD_DEPENDENCIES(${PROJECT_NAME} popup_custom.edj)
224 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/popup_custom.edj DESTINATION
225 ${ISE_RESDIR}/edje/wearable)
226
227 ADD_CUSTOM_TARGET(tutorial_popup.edj COMMAND edje_cc
228         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
229         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/tutorial_popup.edc
230         ${CMAKE_BINARY_DIR}/res/wearable/edje/tutorial_popup.edj
231         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/tutorial_popup.edc)
232 ADD_DEPENDENCIES(${PROJECT_NAME} tutorial_popup.edj)
233 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/tutorial_popup.edj DESTINATION
234 ${ISE_RESDIR}/edje/wearable)
235
236 ADD_CUSTOM_TARGET(w-input-stt-button.edj COMMAND edje_cc
237         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/wearable/images
238         ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt-button.edc
239         ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt-button.edj
240         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/edje/w-input-stt-button.edc)
241 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt-button.edj)
242 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/wearable/edje/w-input-stt-button.edj DESTINATION
243 ${ISE_RESDIR}/edje/wearable)
244
245 elseif(${TARGET} STREQUAL "tv")
246 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/res/tv/edje)
247 ADD_CUSTOM_TARGET(w-input-stt.edj COMMAND edje_cc
248         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
249         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt.edc
250         ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt.edj
251         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt.edc)
252 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt.edj)
253 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt.edj DESTINATION
254 ${ISE_RESDIR}/edje/tv)
255
256 ADD_CUSTOM_TARGET(w-input-stt-button.edj COMMAND edje_cc
257         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
258         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt-button.edc
259         ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt-button.edj
260         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/w-input-stt-button.edc)
261 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt-button.edj)
262 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/w-input-stt-button.edj DESTINATION
263 ${ISE_RESDIR}/edje/tv)
264
265 ADD_CUSTOM_TARGET(popup_custom.edj COMMAND edje_cc
266         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
267         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_custom.edc
268         ${CMAKE_BINARY_DIR}/res/tv/edje/popup_custom.edj
269         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_custom.edc)
270 ADD_DEPENDENCIES(${PROJECT_NAME} popup_custom.edj)
271 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/popup_custom.edj DESTINATION
272 ${ISE_RESDIR}/edje/tv)
273
274 ADD_CUSTOM_TARGET(popup_keyboard.edj COMMAND edje_cc
275         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/tv/images
276         ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_keyboard.edc
277         ${CMAKE_BINARY_DIR}/res/tv/edje/popup_keyboard.edj
278         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/tv/edje/popup_keyboard.edc)
279 ADD_DEPENDENCIES(${PROJECT_NAME} popup_keyboard.edj)
280 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/tv/edje/popup_keyboard.edj DESTINATION
281 ${ISE_RESDIR}/edje/tv)
282
283 else()
284 file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/res/mobile/edje)
285 ADD_CUSTOM_TARGET(w-input-stt.edj COMMAND edje_cc
286         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile/images
287         ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt.edc
288         ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt.edj
289         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt.edc)
290 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt.edj)
291 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt.edj DESTINATION
292 ${ISE_RESDIR}/edje/mobile)
293
294 ADD_CUSTOM_TARGET(w-input-stt-button.edj COMMAND edje_cc
295         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile/images
296         ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt-button.edc
297         ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt-button.edj
298         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/w-input-stt-button.edc)
299 ADD_DEPENDENCIES(${PROJECT_NAME} w-input-stt-button.edj)
300 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/mobile/edje/w-input-stt-button.edj DESTINATION
301 ${ISE_RESDIR}/edje/mobile)
302
303 ADD_CUSTOM_TARGET(popup_custom.edj COMMAND edje_cc
304         -id ${CMAKE_CURRENT_SOURCE_DIR}/edje/mobile/images
305         ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/popup_custom.edc
306         ${CMAKE_BINARY_DIR}/res/mobile/edje/popup_custom.edj
307         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/edje/popup_custom.edc)
308 ADD_DEPENDENCIES(${PROJECT_NAME} popup_custom.edj)
309 INSTALL(FILES ${CMAKE_BINARY_DIR}/res/mobile/edje/popup_custom.edj DESTINATION
310 ${ISE_RESDIR}/edje/mobile)
311 endif()
312
313 # For edc File end
314 IF(NOT "${SRC_LIB_DIR}" STREQUAL "")
315     INSTALL(FILES ${SRC_LIB_DIR}/libsamsung-ai.so DESTINATION ${ISE_LIBDIR})
316     SET(ISE_PKGS_LDFLAGS -Llib -lsamsung-ai ${ISE_PKGS_LDFLAGS})
317 ENDIF()
318
319 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ISE_PKGS_LDFLAGS})
320 TARGET_LINK_LIBRARIES(${PROJECT_NAME}-setting ${ISE_SETTING_PKGS_LDFLAGS})
321
322 set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
323 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${ISE_BINDIR})
324 INSTALL(TARGETS ${PROJECT_NAME}-setting DESTINATION ${ISE_BINDIR})
325
326 INSTALL(FILES ${CMAKE_SOURCE_DIR}/${PROJECT_NAME}.xml DESTINATION
327         ${TZ_SYS_RO_PACKAGES})
328
329 if(${TARGET} STREQUAL "wearable")
330 FILE(GLOB_RECURSE ISE_DEFAULT_IMAGES "${CMAKE_CURRENT_SOURCE_DIR}/res/wearable/images/*.png")
331 INSTALL(FILES ${ISE_DEFAULT_IMAGES} DESTINATION ${ISE_RESDIR}/wearable/images)
332 elseif(${TARGET} STREQUAL "tv")
333 FILE(GLOB_RECURSE ISE_DEFAULT_IMAGES "${CMAKE_CURRENT_SOURCE_DIR}/res/tv/images/*.png")
334 INSTALL(FILES ${ISE_DEFAULT_IMAGES} DESTINATION ${ISE_RESDIR}/tv/images)
335 else()
336 FILE(GLOB_RECURSE ISE_DEFAULT_IMAGES "${CMAKE_CURRENT_SOURCE_DIR}/res/mobile/images/*.png")
337 INSTALL(FILES ${ISE_DEFAULT_IMAGES} DESTINATION ${ISE_RESDIR}/mobile/images)
338 endif()
339
340 if(${TARGET} STREQUAL "tv")
341 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/pixmaps/default/tv/
342         DESTINATION ${ISE_LAYOUTDIR}/tv/image)
343 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/layout/tv/ DESTINATION
344         ${ISE_LAYOUTDIR}/tv FILES_MATCHING PATTERN "*.xml")
345 elseif(${TARGET} STREQUAL "wearable")
346 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/pixmaps/default/wearable/
347         DESTINATION ${ISE_LAYOUTDIR}/wearable/image)
348 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/layout/wearable/ DESTINATION
349         ${ISE_LAYOUTDIR}/wearable FILES_MATCHING PATTERN "*.xml")
350 else()
351 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/pixmaps/default/mobile/
352         DESTINATION ${ISE_LAYOUTDIR}/mobile/image)
353 INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/data/layout/mobile/ DESTINATION
354         ${ISE_LAYOUTDIR}/mobile FILES_MATCHING PATTERN "*.xml")
355 endif()
356
357 ADD_SUBDIRECTORY(po)