[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 IF( NOT enable_profile )
40   IF( ANDROID )
41     SET( enable_profile ANDROID )
42   ELSE()
43     SET( enable_profile UBUNTU )
44   ENDIF()
45 ENDIF()
46
47 # Test for profile and exit if something wrong
48 SET( VALID_PROFILES COMMON MOBILE WEARABLE TV IVI UBUNTU ANDROID WINDOWS )
49 LIST( FIND VALID_PROFILES ${enable_profile} RESULT )
50 IF( RESULT EQUAL -1 )
51   MESSAGE( FATAL_ERROR "Invalid profile!" )
52 ENDIF()
53
54 # Defines profile specific variable
55 SET( ${enable_profile}_PROFILE 1 )
56
57 # TODO check what version we really need for Android
58 IF( ANDROID_PROFILE )
59   SET( FREETYPE_REQUIRED 6.16.0 )
60   SET( FREETYPE_BITMAP_SUPPORT_VERSION 6.16.0 )
61 ELSE()
62   SET( FREETYPE_REQUIRED 9.16.3 )
63   SET( FREETYPE_BITMAP_SUPPORT_VERSION 17.1.11 )
64 ENDIF()
65
66 # checking all possibly used modules (required and optionals)
67 CHECK_MODULE_AND_SET( EXIF exif exif_available )
68 CHECK_MODULE_AND_SET( FREETYPE freetype2>=${FREETYPE_REQUIRED} freetype_available )
69 CHECK_MODULE_AND_SET( FREETYPE_BITMAP_SUPPORT freetype2>=${FREETYPE_BITMAP_SUPPORT_VERSION} freetype_bitmap_support)
70 CHECK_MODULE_AND_SET( FONTCONFIG fontconfig fontconfig_available )
71 CHECK_MODULE_AND_SET( PNG libpng [] )
72 CHECK_MODULE_AND_SET( LIBEXIF libexif [] )
73 CHECK_MODULE_AND_SET( LIBDRM libdrm [] )
74 CHECK_MODULE_AND_SET( LIBCURL libcurl [] )
75 CHECK_MODULE_AND_SET( HARFBUZZ harfbuzz [] )
76 CHECK_MODULE_AND_SET( FRIBIDI fribidi [] )
77 CHECK_MODULE_AND_SET( CAIRO cairo [] )
78 CHECK_MODULE_AND_SET( EVAS evas [] )
79 CHECK_MODULE_AND_SET( TTRACE ttrace ENABLE_TTRACE )
80 CHECK_MODULE_AND_SET( ECORE ecore [] )
81 CHECK_MODULE_AND_SET( ECORE_IPC ecore-ipc [] )
82 CHECK_MODULE_AND_SET( ECORE_IMF ecore-imf [] )
83 CHECK_MODULE_AND_SET( ELDBUS eldbus eldbus_available )
84 CHECK_MODULE_AND_SET( UTILX utilX utilx_available )
85 CHECK_MODULE_AND_SET( OPENGLES20 glesv2 [] )
86 CHECK_MODULE_AND_SET( EGL egl [] )
87 CHECK_MODULE_AND_SET( DLOG dlog [] )
88 CHECK_MODULE_AND_SET( TTS tts [] )
89 CHECK_MODULE_AND_SET( VCONF vconf [] )
90
91 CHECK_MODULE_AND_SET( CAPI_SYSTEM_INFO capi-system-info [] )
92 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SENSOR capi-system-sensor capi_system_sensor_support )
93 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SYSTEM_SETTINGS capi-system-system-settings [] )
94 CHECK_MODULE_AND_SET( CAPI_APPFW_APPLICATION capi-appfw-application [] )
95
96 CHECK_MODULE_AND_SET( ELEMENTARY elementary [] )
97 CHECK_MODULE_AND_SET( BUNDLE bundle [] )
98 CHECK_MODULE_AND_SET( SCREENCONNECTORPROVIDER screen_connector_provider [] )
99 CHECK_MODULE_AND_SET( APPFW_WATCH capi-appfw-watch-application watch_available )
100 CHECK_MODULE_AND_SET( APPCORE_WATCH appcore-watch [] )
101
102 CHECK_MODULE_AND_SET( CAPI_APPFW_APPLICATION appcore-ui [] )
103 CHECK_MODULE_AND_SET( CAPI_APPFW_WIDGET_BASE appcore-widget-base [] )
104 CHECK_MODULE_AND_SET( CAPI_APPFW_COMMON capi-appfw-app-common [] )
105 CHECK_MODULE_AND_SET( CAPI_APPFW_CONTROL capi-appfw-app-control [] )
106
107 CHECK_MODULE_AND_SET( DALICORE dali2-core [] )
108
109 IF( ANDROID_PROFILE )
110   INCLUDE_DIRECTORIES( ${ANDROID_NDK} )
111   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources )
112   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources/android )
113   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources/android/native_app_glue )
114   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr )
115   INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr/include/android )
116 ENDIF()
117
118 IF( enable_wayland )
119   IF( enable_ecore_wayland2 )
120     PKG_CHECK_MODULES(WAYLAND ecore-wl2 egl wayland-egl wayland-egl-tizen wayland-client>=1.2.0 xkbcommon libtbm )
121   ELSE()
122     PKG_CHECK_MODULES(WAYLAND ecore-wayland egl wayland-egl wayland-client>=1.2.0 xkbcommon libtbm)
123   ENDIF()
124   SET(WAYLAND 1)
125 ELSE()
126   CHECK_MODULE_AND_SET( ECORE_X ecore-x DALI_USE_ECORE_X11 [] )
127   CHECK_MODULE_AND_SET( X11 x11 DALI_USE_X11 [] )
128 ENDIF()
129
130 CHECK_MODULE_AND_SET( WAYLAND_EXTENSION xdg-shell-client text-client input-method-client [] )
131
132 IF( enable_tizen_major_version GREATER 5 )
133   IF( enable_tizen_minor_version GREATER 5 )
134     CHECK_MODULE_AND_SET( AUTOFILL capi-ui-autofill [] )
135     ADD_DEFINITIONS( -DCAPI_AUTOFILL_SUPPORT )
136   ENDIF()
137 ENDIF()
138
139 # BUILD CONDITIONS
140 IF( watch_available AND WEARABLE_PROFILE )
141   ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
142 ENDIF()
143
144 IF( eldbus_available )
145   SET(DALI_ELDBUS_AVAILABLE 1)
146   ADD_DEFINITIONS( -DDALI_ELDBUS_AVAILABLE )
147 ENDIF()
148
149 ADD_DEFINITIONS( -DPLATFORM_TIZEN )
150
151 IF( enable_debug )
152   ADD_DEFINITIONS( -DDEBUG_ENABLED )
153   SET( ENABLE_EXPORTALL ON )
154 ENDIF()
155
156 IF( NOT ${ENABLE_EXPORTALL} )
157   ADD_DEFINITIONS( "-fvisibility=hidden -DHIDE_DALI_INTERNALS" )
158 ENDIF()
159
160 IF( enable_shaderbincache )
161   ADD_DEFINITIONS( -DSHADERBIN_CACHE_ENABLED )
162 ENDIF()
163
164 IF( enable_networklogging )
165   ADD_DEFINITIONS( -DNETWORK_LOGGING_ENABLED )
166 ENDIF()
167
168 IF( watch_available AND WEARABLE_PROFILE )
169   ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
170 ENDIF()
171
172 IF( capi_system_sensor_support AND (NOT UBUNTU_PROFILE) )
173   ADD_DEFINITIONS( -DCAPI_SYSTEM_SENSOR_SUPPORT )
174 ENDIF()
175
176 IF( enable_appfw AND (enable_tizen_major_version EQUAL 3) )
177   ADD_DEFINITIONS( -DWIDGET_AVAILABLE )
178 ENDIF()
179
180 IF( enable_wayland AND (NOT COMMON_PROFILE) )
181   PKG_CHECK_MODULES( WAYLAND_EXTENSION [xdg-shell-client text-client input-method-client] )
182 ENDIF()
183
184 IF( freetype_bitmap_support )
185   ADD_DEFINITIONS( -DFREETYPE_BITMAP_SUPPORT )
186 ENDIF()
187
188 IF( ENABLE_COVERAGE OR "$ENV{CXXFLAGS}" MATCHES --coverage )
189   ADD_COMPILE_OPTIONS( --coverage )
190   SET(ENABLE_COVERAGE ON)
191   SET(COVERAGE --coverage)
192 ENDIF()
193
194 IF( DEFINED ENV{DALI_DATA_RW_DIR} )
195   SET( dataReadWriteDir $ENV{DALI_DATA_RW_DIR} )
196 ELSE()
197   SET( dataReadWriteDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
198 ENDIF()
199
200 IF( DEFINED ENV{DALI_DATA_RO_DIR} )
201   SET( dataReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
202 ELSE()
203   SET( dataReadOnlyDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
204 ENDIF()
205
206 IF( DEFINED ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
207   SET( tizenPlatformConfigSupported $ENV{TIZEN_PLATFORM_CONFIG_SUPPORTED} )
208   SET( TIZEN_PLATFORM_CONFIG_SUPPORTED_LOGMSG "YES" )
209 ELSE()
210   SET( tizenPlatformConfigSupported 0 )
211   SET( TIZEN_PLATFORM_CONFIG_SUPPORTED_LOGMSG "NO" )
212 ENDIF()
213
214 IF( DEFINED ENV{FONT_CONFIGURATION_FILE} )
215   SET( fontConfigurationFile $ENV{FONT_CONFIGURATION_FILE} )
216 ENDIF()
217
218 IF( UBUNTU_PROFILE )
219   SET( cachePath $ENV{HOME} )
220 ELSE()
221   SET( cachePath /home/owner )
222 ENDIF()
223
224 #######################################################
225
226 ADD_DEFINITIONS( -DDALI_PROFILE_${enable_profile})
227 SET( DALI_PROFILE_CFLAGS -DDALI_PROFILE_${enable_profile} )
228
229 # Platforms with highp shader support can use vector based text
230 CONDITIONAL( ENABLE_VECTOR_BASED_TEXT_RENDERING UBUNTU_PROFILE )
231 CONDITIONAL( WAYLAND enable_wayland )
232
233 # set lowercase profile name
234 STRING( TOLOWER ${ENABLE_PROFILE} PROFILE_LCASE )
235
236 ##########################################################3
237 # Default CFLAGS of packages
238 #
239 SET( DALI_CFLAGS
240   ${DALI_ADAPTOR_CFLAGS}
241   ${DALICORE_CFLAGS}
242   ${OPENGLES20_CFLAGS}
243   ${FREETYPE_CFLAGS}
244   ${FONTCONFIG_CFLAGS}
245   ${CAIRO_CFLAGS}
246   ${PNG_CFLAGS}
247   ${DLOG_CFLAGS}
248   ${VCONF_CFLAGS}
249   ${EXIF_CFLAGS}
250   ${MMFSOUND_CFLAGS}
251   ${TTS_CFLAGS}
252   ${CAPI_SYSTEM_SENSOR_CFLAGS}
253   ${LIBDRM_CFLAGS}
254   ${LIBEXIF_CFLAGS}
255   ${LIBCURL_CFLAGS}
256   ${UTILX_CFLAGS}
257   -Wall
258 )
259
260 # Default set of linked librarires
261 SET( DALI_LDFLAGS
262   ${DALICORE_LDFLAGS}
263   ${OPENGLES20_LDFLAGS}
264   ${FREETYPE_LDFLAGS}
265   ${FONTCONFIG_LDFLAGS}
266   ${CAIRO_LDFLAGS}
267   ${PNG_LDFLAGS}
268   ${DLOG_LDFLAGS}
269   ${VCONF_LDFLAGS}
270   ${EXIF_LDFLAGS}
271   ${TTS_LDFLAGS}
272   ${CAPI_SYSTEM_SENSOR_LDFLAGS}
273   ${LIBDRM_LDFLAGS}
274   ${LIBEXIF_LDFLAGS}
275   ${LIBCURL_LDFLAGS}
276   ${LIBCRYPTO_LDFLAGS}
277   ${HARFBUZZ_LDFLAGS}
278   ${AUTOFILL_LDFLAGS}
279   ${TPKP_CURL_LDFLAGS}
280   ${UTILX_LDFLAGS}
281   -lgif
282   -lturbojpeg
283   -ljpeg
284 )
285
286 # Android includes pthread with android lib
287 if( NOT ANDROID_PROFILE )
288   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
289     -lpthread
290   )
291 ENDIF()
292
293 # You need to include manually private and Android libs deps in order to link for Android
294 IF( ANDROID_PROFILE )
295   CHECK_MODULE_AND_SET( PIXMAN pixman-1 [] )
296   CHECK_MODULE_AND_SET( EXPAT expat [] )
297
298   SET( DALI_CFLAGS ${DALI_CFLAGS}
299     ${PIXMAN_CFLAGS}
300     ${EXPAT_CFLAGS}
301     ${FRIBIDI_CFLAGS}
302   )
303
304   LIST( APPEND DALI_LDFLAGS
305     ${FRIBIDI_LDFLAGS}
306     ${FREETYPE_LDFLAGS}
307     ${PNG_LDFLAGS}
308     ${PIXMAN_LDFLAGS}
309     ${EXPAT_LDFLAGS}
310     z
311     android
312     log
313     EGL
314     GLESv3
315   )
316 ENDIF()
317
318 # EVAS used indicator
319 SET( DALI_CFLAGS ${DALI_CFLAGS}
320   ${EVAS_CFLAGS}
321   ${ECORE_CFLAGS}
322   ${ECORE_IPC_CFLAGS}
323   ${ELDBUS_CFLAGS}
324 )
325
326 SET( DALI_LDFLAGS ${DALI_LDFLAGS}
327   ${ECORE_IPC_LDFLAGS}
328   ${ELDBUS_LDFLAGS}
329 )
330
331 # APPFW
332 IF( enable_appfw )
333   SET( DALI_CFLAGS ${DALI_CFLAGS}
334     ${CAPI_APPFW_APPLICATION_CFLAGS}
335     ${CAPI_SYSTEM_SYSTEM_SETTINGS_CFLAGS}
336     ${CAPI_SYSTEM_INFO_CFLAGS}
337     ${TTS_CFLAGS}
338     ${SENSOR_CFLAGS}
339     ${BUNDLE_CFLAGS}
340     ${CAPI_APPFW_COMMON_CFLAGS}
341     ${CAPI_APPFW_CONTROL_CFLAGS}
342     ${CAPI_APPFW_WIDGET_BASE_CFLAGS}
343     ${ECORE_IMF_CFLAGS}
344     ${FRIBIDI_CFLAGS}
345   )
346
347   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
348     ${CAPI_APPFW_APPLICATION_LDFLAGS}
349     ${CAPI_SYSTEM_SYSTEM_SETTINGS_LDFLAGS}
350     ${CAPI_SYSTEM_INFO_LDFLAGS}
351     ${TTS_LDFLAGS}
352     ${SENSOR_LDFLAGS}
353     ${BUNDLE_LDFLAGS}
354     ${CAPI_APPFW_COMMON_LDFLAGS}
355     ${CAPI_APPFW_CONTROL_LDFLAGS}
356     ${CAPI_APPFW_WIDGET_BASE_LDFLAGS}
357     ${ECORE_IMF_LDFLAGS}
358     ${FRIBIDI_LDFLAGS}
359   )
360 ELSE()
361   SET( DALI_CFLAGS ${DALI_CFLAGS}
362     ${ELEMENTARY_CFLAGS}
363   )
364
365   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
366     ${ELEMENTARY_LDFLAGS}
367   )
368 ENDIF()
369
370 # WAYLAND
371 IF( WAYLAND )
372   SET( DALI_CFLAGS ${DALI_CFLAGS}
373     -DWL_EGL_PLATFORM
374     ${WAYLAND_CFLAGS}
375   )
376   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
377     ${WAYLAND_LDFLAGS}
378   )
379 ELSE()
380   SET( DALI_CFLAGS ${DALI_CFLAGS}
381        ${X11_CFLAGS}
382        )
383   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
384        ${X11_LDFLAGS}
385        ${ECORE_X_LDFLAGS}
386        )
387 ENDIF()
388
389 # COMMON PROFILE
390 IF( COMMON_PROFILE )
391   SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
392 ENDIF()
393
394 # MOBILE PROFILE
395 IF( MOBILE_PROFILE )
396   SET( DALI_CFLAGS ${DALI_CFLAGS}
397       ${DEVICED_CFLAGS}
398       ${EFL_ASSIST_CFLAGS}
399       ${NATIVE_BUFFER_CFLAGS}
400       ${NATIVE_BUFFER_POOL_CFLAGS}
401       )
402
403   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
404       ${EFL_ASSIST_LDFLAGS}
405       ${NATIVE_BUFFER_LDFLAGS}
406       ${NATIVE_BUFFER_POOL_LDFLAGS}
407   )
408 ENDIF()
409
410 # WEARABLE PROFILE
411 IF( WEARABLE_PROFILE )
412   SET( DALI_CFLAGS ${DALI_CFLAGS}
413     ${HAPTIC_CFLAGS}
414     ${EFL_ASSIST_CFLAGS}
415     ${SCREENCONNECTORPROVIDER_CFLAGS}
416     ${APPCORE_WATCH_CFLAGS}
417   )
418   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
419     ${SCREENCONNECTORPROVIDER_LDFLAGS}
420     ${APPCORE_WATCH_LDFLAGS}
421   )
422 ENDIF()
423
424 # TV PROFILE
425 IF( TV_PROFILE )
426   SET( DALI_CFLAGS ${DALI_CFLAGS} ${HAPTIC_CFLAGS} )
427 ENDIF()
428
429 # IVI PROFILE
430 IF( IVI_PROFILE )
431   SET( DALI_CFLAGS ${DALI_CFLAGS}
432       ${DEVICED_CFLAGS}
433       ${EFL_ASSIST_CFLAGS}
434       ${NATIVE_BUFFER_CFLAGS}
435       ${NATIVE_BUFFER_POOL_CFLAGS}
436   )
437   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
438       ${EFL_ASSIST_LDFLAGS}
439       ${NATIVE_BUFFER_LDFLAGS}
440       ${NATIVE_BUFFER_POOL_LDFLAGS}
441   )
442 ENDIF()
443
444 # UBUNTU PROFILE
445 IF( UBUNTU_PROFILE )
446   SET( DALI_CFLAGS ${DALI_CFLAGS} -fPIC )
447   SET( DALI_LDFLAGS ${DALI_LDFLAGS} -ljpeg )
448 ENDIF()
449
450 IF( NOT COMMON_PROFILE )
451   ADD_DEFINITIONS( -DWAYLAND_EXTENSIONS_SUPPORTED )
452 ENDIF()
453
454 # had to do it here for Android by some reason, even if it is set above already
455 IF( ANDROID_PROFILE )
456   SET( daliReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
457   SET( daliReadWriteDir $ENV{DALI_DATA_RW_DIR} )
458 ENDIF()
459
460 SET( daliDefaultThemeDir ${dataReadWriteDir}/theme/ )
461 SET( fontPreloadedPath $ENV{FONT_PRELOADED_PATH} )
462 SET( fontDownloadedPath $ENV{FONT_DOWNLOADED_PATH} )
463 SET( fontApplicationPath $ENV{FONT_APPLICATION_PATH} )
464
465 # Configure paths
466 ADD_DEFINITIONS(  -DDALI_DATA_RW_DIR="${daliReadWriteDir}"
467                   -DDALI_DATA_RO_DIR="${daliReadOnlyDir}"
468                   -DDALI_DEFAULT_FONT_CACHE_DIR="${daliDefaultFontCacheDir}"
469                   -DDALI_USER_FONT_CACHE_DIR="${daliUserFontCacheDir}"
470                   -DDALI_SHADERBIN_DIR="${daliShaderbinCacheDir}"
471                   -DDALI_DEFAULT_THEME_DIR="${daliDefaultThemeDir}"
472                   -DFONT_PRELOADED_PATH="${fontPreloadedPath}"
473                   -DFONT_DOWNLOADED_PATH="${fontDownloadedPath}"
474                   -DFONT_APPLICATION_PATH="${fontApplicationPath}"
475                   -DFONT_CONFIGURATION_FILE="${fontConfigurationFile}"
476                   -DTIZEN_PLATFORM_CONFIG_SUPPORTED=${tizenPlatformConfigSupported}
477 )