[Tizen] Add DALi Autofill implementation
[platform/core/uifw/dali-adaptor.git] / build / tizen / deps-check.cmake
1 INCLUDE( common.cmake )
2
3 # Options
4 #           OPTION, VARIABLE, LIST_OF_VALUES, DESCRIPTION
5 ARG_ENABLE( ENABLE_EXPORTALL enable_exportall 1 "Enables the exporting of all the symbols in the library" )
6 ARG_ENABLE( ENABLE_DEBUG enable_debug ${ENABLE_VAL} "Turns on debugging" )
7 ARG_ENABLE( ENABLE_SHADERBINCACHE enable_shaderbincache ${ENABLE_VAL} "Enables shader binary cache" )
8 ARG_ENABLE( ENABLE_NETWORKLOGGING enable_networklogging ${ENABLE_VAL} "Enables network for debug tool" )
9
10 # Currently, dali-adaptor requires appfw on Tizen
11 # and does not require it on Ubuntu.
12 # So we should be able to enable/disable this option for dali-adaptor.
13 ARG_ENABLE( ENABLE_APPFW enable_appfw ${ENABLE_VAL} "Builds with Tizen App framework libraries, off by default" )
14
15 # Tizen Profile option
16 ARG_ENABLE( ENABLE_PROFILE enable_profile "${ENABLE_VAL};UBUNTU" "Select the variant of tizen" )
17
18 # Tizen Major version
19 ARG_ENABLE( ENABLE_TIZEN_MAJOR_VERSION enable_tizen_major_version "${ENABLE_VAL};0" "Specify the Tizen Major version for backwards compatibility" )
20
21 # Tizen Minor version
22 ARG_ENABLE( ENABLE_TIZEN_MINOR_VERSION enable_tizen_minor_version "${ENABLE_VAL};0" "Specify the Tizen Minor version for backwards compatibility" )
23
24 ARG_ENABLE( ENABLE_FEEDBACK enable_feedback 1 "Enable feedback plugin" )
25
26 ARG_ENABLE( ENABLE_WAYLAND enable_wayland "${ENABLE_VAL}" "Build on Wayland" )
27 ARG_ENABLE( ENABLE_ECORE_WAYLAND2 enable_ecore_wayland2 "${ENABLE_VAL}" "Build on Ecore Wayland2" )
28 ARG_ENABLE( ENABLE_RENAME_SO enable_rename_so "${ENABLE_VAL};1" "Specify whether so file is renamed or not" )
29 ARG_ENABLE( ENABLE_COVERAGE enable_coverage "${ENABLE_VAL}" "Enables coverage" )
30
31 # help option
32 ARG_ENABLE( PRINT_HELP print_help "${ENABLE_VAL}" "Prints help" )
33
34 IF( print_help )
35   MESSAGE( STATUS ${HELP_ENABLES} )
36   EXIT()
37 ENDIF()
38
39 SET( FREETYPE_REQUIRED 9.16.3 )
40 SET( FREETYPE_BITMAP_SUPPORT_VERSION 17.1.11 )
41
42 IF( NOT enable_profile )
43   SET( enable_profile UBUNTU )
44 ENDIF()
45
46 # Test for profile and exit if something wrong
47 SET( VALID_PROFILES COMMON MOBILE WEARABLE TV IVI UBUNTU)
48 LIST( FIND VALID_PROFILES ${enable_profile} RESULT )
49 IF( RESULT EQUAL -1 )
50   MESSAGE( FATAL_ERROR "Invalid profile!" )
51 ENDIF()
52
53 # Defines profile specific variable
54 SET( ${enable_profile}_PROFILE 1 )
55
56 # checking all possibly used modules (required and optionals)
57 CHECK_MODULE_AND_SET( EXIF exif exif_available )
58 CHECK_MODULE_AND_SET( FREETYPE freetype2>=${FREETYPE_REQUIRED} freetype_available )
59 CHECK_MODULE_AND_SET( FREETYPE_BITMAP_SUPPORT freetype2>=${FREETYPE_BITMAP_SUPPORT_VERSION} freetype_bitmap_support)
60 CHECK_MODULE_AND_SET( FONT_CONFIG fontconfig fontconfig_available )
61 CHECK_MODULE_AND_SET( PNG libpng [] )
62 CHECK_MODULE_AND_SET( LIBEXIF libexif [] )
63 CHECK_MODULE_AND_SET( LIBDRM libdrm [] )
64 CHECK_MODULE_AND_SET( LIBCURL libcurl [] )
65 CHECK_MODULE_AND_SET( HARFBUZZ harfbuzz [] )
66 CHECK_MODULE_AND_SET( FRIBIDI fribidi [] )
67 CHECK_MODULE_AND_SET( CAIRO cairo [] )
68 CHECK_MODULE_AND_SET( EVAS evas [] )
69 CHECK_MODULE_AND_SET( TTRACE ttrace ENABLE_TTRACE )
70 CHECK_MODULE_AND_SET( ECORE ecore [] )
71 CHECK_MODULE_AND_SET( ECORE_IPC ecore-ipc [] )
72 CHECK_MODULE_AND_SET( ECORE_IMF ecore-imf [] )
73 CHECK_MODULE_AND_SET( ELDBUS eldbus eldbus_available )
74 CHECK_MODULE_AND_SET( TPKP_CURL tpkp-curl tpkp_curl_available )
75 CHECK_MODULE_AND_SET( UTILX utilX utilx_available )
76 CHECK_MODULE_AND_SET( OPENGLES20 glesv2 [] )
77 CHECK_MODULE_AND_SET( EGL egl [] )
78 CHECK_MODULE_AND_SET( DLOG dlog [] )
79 CHECK_MODULE_AND_SET( TTS tts [] )
80 CHECK_MODULE_AND_SET( VCONF vconf [] )
81
82 CHECK_MODULE_AND_SET( CAPI_SYSTEM_INFO capi-system-info [] )
83 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SENSOR capi-system-sensor capi_system_sensor_support )
84 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SYSTEM_SETTINGS capi-system-system-settings [] )
85 CHECK_MODULE_AND_SET( CAPI_APPFW_APPLICATION capi-appfw-application [] )
86
87 CHECK_MODULE_AND_SET( ELEMENTARY elementary [] )
88 CHECK_MODULE_AND_SET( BUNDLE bundle [] )
89 CHECK_MODULE_AND_SET( SCREENCONNECTORPROVIDER screen_connector_provider [] )
90 CHECK_MODULE_AND_SET( APPFW_WATCH capi-appfw-watch-application watch_available )
91 CHECK_MODULE_AND_SET( APPCORE_WATCH appcore-watch [] )
92
93 CHECK_MODULE_AND_SET( CAPI_APPFW_APPLICATION appcore-ui [] )
94 CHECK_MODULE_AND_SET( CAPI_APPFW_WIDGET_BASE appcore-widget-base [] )
95 CHECK_MODULE_AND_SET( CAPI_APPFW_COMMON capi-appfw-app-common [] )
96 CHECK_MODULE_AND_SET( CAPI_APPFW_CONTROL capi-appfw-app-control [] )
97
98 CHECK_MODULE_AND_SET( DALICORE dali-core [] )
99
100 IF( enable_wayland )
101   IF( enable_ecore_wayland2 )
102     PKG_CHECK_MODULES(WAYLAND ecore-wl2 egl wayland-egl wayland-egl-tizen wayland-client>=1.2.0 xkbcommon libtbm )
103   ELSE()
104     PKG_CHECK_MODULES(WAYLAND ecore-wayland egl wayland-egl wayland-client>=1.2.0 xkbcommon libtbm)
105   ENDIF()
106   SET(WAYLAND 1)
107 ELSE()
108   CHECK_MODULE_AND_SET( ECORE_X ecore-x DALI_USE_ECORE_X11 [] )
109   CHECK_MODULE_AND_SET( X11 x11 DALI_USE_X11 [] )
110 ENDIF()
111
112 CHECK_MODULE_AND_SET( WAYLAND_EXTENSION xdg-shell-client text-client input-method-client [] )
113
114 IF( enable_tizen_major_version GREATER 5 )
115   IF( enable_tizen_minor_version GREATER 5 )
116     CHECK_MODULE_AND_SET( AUTOFILL capi-ui-autofill [] )
117     ADD_DEFINITIONS( -DCAPI_AUTOFILL_SUPPORT )
118   ENDIF()
119 ENDIF()
120
121 # BUILD CONDITIONS
122 IF( watch_available AND WEARABLE_PROFILE )
123   ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
124 ENDIF()
125
126 IF( eldbus_available )
127   SET(DALI_ELDBUS_AVAILABLE 1)
128   ADD_DEFINITIONS( -DDALI_ELDBUS_AVAILABLE )
129 ENDIF()
130
131 IF( tpkp_curl_available )
132   ADD_DEFINITIONS( -DTPK_CURL_ENABLED )
133 ENDIF()
134
135 ADD_DEFINITIONS( -DPLATFORM_TIZEN )
136
137 IF( enable_debug )
138   ADD_DEFINITIONS( -DDEBUG_ENABLED )
139   SET( ENABLE_EXPORTALL ON )
140 ENDIF()
141
142 IF( NOT ${ENABLE_EXPORTALL} )
143   ADD_DEFINITIONS( "-fvisibility=hidden -DHIDE_DALI_INTERNALS" )
144 ENDIF()
145
146 IF( enable_shaderbincache )
147   ADD_DEFINITIONS( -DSHADERBIN_CACHE_ENABLED )
148 ENDIF()
149
150 IF( enable_networklogging )
151   ADD_DEFINITIONS( -DNETWORK_LOGGING_ENABLED )
152 ENDIF()
153
154 IF( watch_available AND WEARABLE_PROFILE )
155   ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
156 ENDIF()
157
158 IF( capi_system_sensor_support AND (NOT UBUNTU_PROFILE) )
159   ADD_DEFINITIONS( -DCAPI_SYSTEM_SENSOR_SUPPORT )
160 ENDIF()
161
162 IF( enable_appfw AND (enable_tizen_major_version EQUAL 3) )
163   ADD_DEFINITIONS( -DWIDGET_AVAILABLE )
164 ENDIF()
165
166 IF( enable_wayland AND (NOT COMMON_PROFILE) )
167   PKG_CHECK_MODULES( WAYLAND_EXTENSION [xdg-shell-client text-client input-method-client] )
168 ENDIF()
169
170 IF( freetype_bitmap_support )
171   ADD_DEFINITIONS( -DFREETYPE_BITMAP_SUPPORT )
172 ENDIF()
173
174 IF( ENABLE_COVERAGE OR "$ENV{CXXFLAGS}" MATCHES --coverage )
175   ADD_COMPILE_OPTIONS( --coverage )
176   SET(ENABLE_COVERAGE ON)
177   SET(COVERAGE --coverage)
178 ENDIF()
179
180 IF( DEFINED ENV{DALI_DATA_RW_DIR} )
181   SET( dataReadWriteDir $ENV{DALI_DATA_RW_DIR} )
182 ELSE()
183   SET( dataReadWriteDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
184 ENDIF()
185
186 IF( DEFINED ENV{DALI_DATA_RO_DIR )
187   SET( dataReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
188 ELSE()
189   SET( dataReadOnlyDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
190 ENDIF()
191
192 IF( DEFINED ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
193   SET( tizenPlatformConfigSupported $ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
194   SET( TIZEN_PLATFORM_CONFIG_SUPPORTED_LOGMSG "YES" )
195 ELSE()
196   SET( tizenPlatformConfigSupported 0 )
197   SET( TIZEN_PLATFORM_CONFIG_SUPPORTED_LOGMSG "NO" )
198 ENDIF()
199
200 IF( DEFINED ENV{FONT_CONFIGURATION_FILE} )
201   SET( fontConfigurationFile $ENV{FONT_CONFIGURATION_FILE} )
202 ENDIF()
203
204 IF( UBUNTU_PROFILE )
205   SET( cachePath $ENV{HOME} )
206 ELSE()
207   SET( cachePath /home/owner )
208 ENDIF()
209
210 #######################################################
211
212 ADD_DEFINITIONS( -DDALI_PROFILE_${enable_profile})
213 SET( DALI_PROFILE_CFLAGS -DDALI_PROFILE_${enable_profile} )
214
215 # Platforms with highp shader support can use vector based text
216 CONDITIONAL( ENABLE_VECTOR_BASED_TEXT_RENDERING UBUNTU_PROFILE )
217 CONDITIONAL( WAYLAND enable_wayland )
218
219 # set lowercase profile name
220 STRING( TOLOWER ${ENABLE_PROFILE} PROFILE_LCASE )
221
222 ##########################################################3
223 # Default CFLAGS of packages
224 #
225 SET( DALI_CFLAGS
226   ${DALI_ADAPTOR_CFLAGS}
227   ${DALICORE_CFLAGS}
228   ${OPENGLES20_CFLAGS}
229   ${FREETYPE_CFLAGS}
230   ${FONTCONFIG_CFLAGS}
231   ${CAIRO_CFLAGS}
232   ${PNG_CFLAGS}
233   ${DLOG_CFLAGS}
234   ${VCONF_CFLAGS}
235   ${EXIF_CFLAGS}
236   ${MMFSOUND_CFLAGS}
237   ${TTS_CFLAGS}
238   ${CAPI_SYSTEM_SENSOR_CFLAGS}
239   ${LIBDRM_CFLAGS}
240   ${LIBEXIF_CFLAGS}
241   ${LIBCURL_CFLAGS}
242   ${TPKP_CURL_CFLAGS}
243   ${UTILX_CFLAGS}
244   -Wall
245 )
246
247 # Default set of linked librarires
248 SET( DALI_LDFLAGS
249   ${DALICORE_LDFLAGS}
250   ${OPENGLES20_LDFLAGS}
251   ${FREETYPE_LDFLAGS}
252   ${FONTCONFIG_LDFLAGS}
253   ${CAIRO_LDFLAGS}
254   ${PNG_LDFLAGS}
255   ${DLOG_LDFLAGS}
256   ${VCONF_LDFLAGS}
257   ${EXIF_LDFLAGS}
258   ${TTS_LDFLAGS}
259   ${CAPI_SYSTEM_SENSOR_LDFLAGS}
260   ${LIBDRM_LDFLAGS}
261   ${LIBEXIF_LDFLAGS}
262   ${LIBCURL_LDFLAGS}
263   ${LIBCRYPTO_LDFLAGS}
264   ${HARFBUZZ_LDFLAGS}
265   ${AUTOFILL_LDFLAGS}
266   ${TPKP_CURL_LDFLAGS}
267   ${UTILX_LDFLAGS}
268   -lgif
269   -lpthread
270   -lturbojpeg
271   -ljpeg
272 )
273
274 # EVAS used indicator
275 SET( DALI_CFLAGS ${DALI_CFLAGS}
276   ${EVAS_CFLAGS}
277   ${ECORE_CFLAGS}
278   ${ECORE_IPC_CFLAGS}
279   ${ELDBUS_CFLAGS}
280 )
281
282 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
283   ${ECORE_IPC_LDFLAGS}
284   ${ELDBUS_LDFLAGS}
285 )
286
287 # APPFW
288 IF( enable_appfw )
289   SET( DALI_CFLAGS ${DALI_CFLAGS}
290     ${CAPI_APPFW_APPLICATION_CFLAGS}
291     ${CAPI_SYSTEM_SYSTEM_SETTINGS_CFLAGS}
292     ${CAPI_SYSTEM_INFO_CFLAGS}
293     ${TTS_CFLAGS}
294     ${SENSOR_CFLAGS}
295     ${BUNDLE_CFLAGS}
296     ${CAPI_APPFW_COMMON_CFLAGS}
297     ${CAPI_APPFW_CONTROL_CFLAGS}
298     ${CAPI_APPFW_WIDGET_BASE_CFLAGS}
299     ${ECORE_IMF_CFLAGS}
300     ${FRIBIDI_CFLAGS}
301   )
302
303   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
304     ${CAPI_APPFW_APPLICATION_LDFLAGS}
305     ${CAPI_SYSTEM_SYSTEM_SETTINGS_LDFLAGS}
306     ${CAPI_SYSTEM_INFO_LDFLAGS}
307     ${TTS_LDFLAGS}
308     ${SENSOR_LDFLAGS}
309     ${BUNDLE_LDFLAGS}
310     ${CAPI_APPFW_COMMON_LDFLAGS}
311     ${CAPI_APPFW_CONTROL_LDFLAGS}
312     ${CAPI_APPFW_WIDGET_BASE_LDFLAGS}
313     ${ECORE_IMF_LDFLAGS}
314     ${FRIBIDI_LDFLAGS}
315   )
316 ELSE()
317   SET( DALI_CFLAGS ${DALI_CFLAGS}
318     ${ELEMENTARY_CFLAGS}
319   )
320
321   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
322     ${ELEMENTARY_LDFLAGS}
323   )
324 ENDIF()
325
326 # WAYLAND
327 IF( WAYLAND )
328   SET( DALI_CFLAGS ${DALI_CFLAGS}
329     -DWL_EGL_PLATFORM
330     ${WAYLAND_CFLAGS}
331   )
332   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
333     ${WAYLAND_LDFLAGS}
334   )
335 ELSE()
336   SET( DALI_CFLAGS ${DALI_CFLAGS}
337        ${X11_CFLAGS}
338        )
339   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
340        ${X11_LDFLAGS}
341        ${ECORE_X_LDFLAGS}
342        )
343 ENDIF()
344
345 # COMMON PROFILE
346 IF( COMMON_PROFILE )
347   SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
348 ENDIF()
349
350 # MOBILE PROFILE
351 IF( MOBILE_PROFILE )
352   SET( DALI_CFLAGS ${DALI_CFLAGS}
353       ${DEVICED_CFLAGS}
354       ${EFL_ASSIST_CFLAGS}
355       ${NATIVE_BUFFER_CFLAGS}
356       ${NATIVE_BUFFER_POOL_CFLAGS}
357       )
358
359   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
360       ${EFL_ASSIST_LDFLAGS}
361       ${NATIVE_BUFFER_LDFLAGS}
362       ${NATIVE_BUFFER_POOL_LDFLAGS}
363   )
364 ENDIF()
365
366 # WEARABLE PROFILE
367 IF( WEARABLE_PROFILE )
368   SET( DALI_CFLAGS ${DALI_CFLAGS}
369     ${HAPTIC_CFLAGS}
370     ${EFL_ASSIST_CFLAGS}
371     ${SCREENCONNECTORPROVIDER_CFLAGS}
372     ${APPCORE_WATCH_CFLAGS}
373   )
374   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
375     ${SCREENCONNECTORPROVIDER_LDFLAGS}
376     ${APPCORE_WATCH_LDFLAGS}
377   )
378 ENDIF()
379
380 # TV PROFILE
381 IF( TV_PROFILE )
382   SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
383 ENDIF()
384
385 # IVI PROFILE
386 IF( IVI_PROFILE )
387   SET( DALI_CFLAGS ${DALI_CFLAGS}
388       ${DEVICED_CFLAGS}
389       ${EFL_ASSIST_CFLAGS}
390       ${NATIVE_BUFFER_CFLAGS}
391       ${NATIVE_BUFFER_POOL_CFLAGS}
392   )
393   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
394       ${EFL_ASSIST_LDFLAGS}
395       ${NATIVE_BUFFER_LDFLAGS}
396       ${NATIVE_BUFFER_POOL_LDFLAGS}
397   )
398 ENDIF()
399
400 # UBUNTU PROFILE
401 IF( UBUNTU_PROFILE )
402   SET( DALI_CFLAGS ${DALI_CFLAGS} -fPIC )
403   SET( DALI_LDFLAGS ${DALI_LDFLAGS} -ljpeg )
404 ENDIF()
405
406 IF( NOT COMMON_PROFILE )
407   ADD_DEFINITIONS( -DWAYLAND_EXTENSIONS_SUPPORTED )
408 ENDIF()
409
410 SET( daliDefaultThemeDir ${dataReadWriteDir}/theme/ )
411
412 SET( fontPreloadedPath $ENV{FONT_PRELOADED_PATH} )
413 SET( fontDownloadedPath $ENV{FONT_DOWNLOADED_PATH} )
414 SET( fontApplicationPath $ENV{FONT_APPLICATION_PATH} )
415
416 # Configure paths
417 ADD_DEFINITIONS(  -DDALI_DATA_RW_DIR="\"${daliReadWriteDir}\""
418                   -DDALI_DATA_RO_DIR="\"${daliReadOnlyDir}\""
419                   -DDALI_DEFAULT_FONT_CACHE_DIR="\"${daliDefaultFontCacheDir}\""
420                   -DDALI_USER_FONT_CACHE_DIR="\"${daliUserFontCacheDir}\""
421                   -DDALI_SHADERBIN_DIR="\"${daliShaderbinCacheDir}\""
422                   -DDALI_DEFAULT_THEME_DIR="\"${daliDefaultThemeDir}\""
423                   -DFONT_PRELOADED_PATH="\"${fontPreloadedPath}\""
424                   -DFONT_DOWNLOADED_PATH="\"${fontDownloadedPath}\""
425                   -DFONT_APPLICATION_PATH="\"${fontApplicationPath}\""
426                   -DFONT_CONFIGURATION_FILE="\"${fontConfigurationFile}\""
427                   -DTIZEN_PLATFORM_CONFIG_SUPPORTED=${tizenPlatformConfigSupported}
428 )