[Tizen] Add DALi Autofill implementation
[platform/core/uifw/dali-adaptor.git] / build / tizen / deps-check.cmake
index 8ddc55b..bdd32cb 100644 (file)
@@ -18,6 +18,9 @@ ARG_ENABLE( ENABLE_PROFILE enable_profile "${ENABLE_VAL};UBUNTU" "Select the var
 # Tizen Major version
 ARG_ENABLE( ENABLE_TIZEN_MAJOR_VERSION enable_tizen_major_version "${ENABLE_VAL};0" "Specify the Tizen Major version for backwards compatibility" )
 
+# Tizen Minor version
+ARG_ENABLE( ENABLE_TIZEN_MINOR_VERSION enable_tizen_minor_version "${ENABLE_VAL};0" "Specify the Tizen Minor version for backwards compatibility" )
+
 ARG_ENABLE( ENABLE_FEEDBACK enable_feedback 1 "Enable feedback plugin" )
 
 ARG_ENABLE( ENABLE_WAYLAND enable_wayland "${ENABLE_VAL}" "Build on Wayland" )
@@ -33,15 +36,16 @@ IF( print_help )
   EXIT()
 ENDIF()
 
-SET( FREETYPE_REQUIRED 9.16.3 )
-SET( FREETYPE_BITMAP_SUPPORT_VERSION 17.1.11 )
-
 IF( NOT enable_profile )
-  SET( enable_profile UBUNTU )
+  IF( ANDROID )
+    SET( enable_profile ANDROID )
+  ELSE()
+    SET( enable_profile UBUNTU )
+  ENDIF()
 ENDIF()
 
 # Test for profile and exit if something wrong
-SET( VALID_PROFILES COMMON MOBILE WEARABLE TV IVI UBUNTU)
+SET( VALID_PROFILES COMMON MOBILE WEARABLE TV IVI UBUNTU ANDROID WINDOWS )
 LIST( FIND VALID_PROFILES ${enable_profile} RESULT )
 IF( RESULT EQUAL -1 )
   MESSAGE( FATAL_ERROR "Invalid profile!" )
@@ -50,12 +54,23 @@ ENDIF()
 # Defines profile specific variable
 SET( ${enable_profile}_PROFILE 1 )
 
+# TODO check what version we really need for Android
+IF( ANDROID_PROFILE )
+  SET( FREETYPE_REQUIRED 6.16.0 )
+  SET( FREETYPE_BITMAP_SUPPORT_VERSION 6.16.0 )
+ELSE()
+  SET( FREETYPE_REQUIRED 9.16.3 )
+  SET( FREETYPE_BITMAP_SUPPORT_VERSION 17.1.11 )
+ENDIF()
+
 # checking all possibly used modules (required and optionals)
 CHECK_MODULE_AND_SET( EXIF exif exif_available )
 CHECK_MODULE_AND_SET( FREETYPE freetype2>=${FREETYPE_REQUIRED} freetype_available )
 CHECK_MODULE_AND_SET( FREETYPE_BITMAP_SUPPORT freetype2>=${FREETYPE_BITMAP_SUPPORT_VERSION} freetype_bitmap_support)
-CHECK_MODULE_AND_SET( FONT_CONFIG fontconfig fontconfig_available )
+CHECK_MODULE_AND_SET( FONTCONFIG fontconfig fontconfig_available )
 CHECK_MODULE_AND_SET( PNG libpng [] )
+CHECK_MODULE_AND_SET( WEBP libwebp webp_available )
+CHECK_MODULE_AND_SET( WEBP_DEMUX libwebpdemux [] )
 CHECK_MODULE_AND_SET( LIBEXIF libexif [] )
 CHECK_MODULE_AND_SET( LIBDRM libdrm [] )
 CHECK_MODULE_AND_SET( LIBCURL libcurl [] )
@@ -68,7 +83,6 @@ CHECK_MODULE_AND_SET( ECORE ecore [] )
 CHECK_MODULE_AND_SET( ECORE_IPC ecore-ipc [] )
 CHECK_MODULE_AND_SET( ECORE_IMF ecore-imf [] )
 CHECK_MODULE_AND_SET( ELDBUS eldbus eldbus_available )
-CHECK_MODULE_AND_SET( TPKP_CURL tpkp-curl tpkp_curl_available )
 CHECK_MODULE_AND_SET( UTILX utilX utilx_available )
 CHECK_MODULE_AND_SET( OPENGLES20 glesv2 [] )
 CHECK_MODULE_AND_SET( EGL egl [] )
@@ -80,6 +94,7 @@ CHECK_MODULE_AND_SET( CAPI_SYSTEM_INFO capi-system-info [] )
 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SENSOR capi-system-sensor capi_system_sensor_support )
 CHECK_MODULE_AND_SET( CAPI_SYSTEM_SYSTEM_SETTINGS capi-system-system-settings [] )
 CHECK_MODULE_AND_SET( CAPI_APPFW_APPLICATION capi-appfw-application [] )
+CHECK_MODULE_AND_SET( COMPONENT_BASED_CORE_BASE component-based-core-base [] )
 
 CHECK_MODULE_AND_SET( ELEMENTARY elementary [] )
 CHECK_MODULE_AND_SET( BUNDLE bundle [] )
@@ -92,7 +107,16 @@ CHECK_MODULE_AND_SET( CAPI_APPFW_WIDGET_BASE appcore-widget-base [] )
 CHECK_MODULE_AND_SET( CAPI_APPFW_COMMON capi-appfw-app-common [] )
 CHECK_MODULE_AND_SET( CAPI_APPFW_CONTROL capi-appfw-app-control [] )
 
-CHECK_MODULE_AND_SET( DALICORE dali-core [] )
+CHECK_MODULE_AND_SET( DALICORE dali2-core [] )
+
+IF( ANDROID_PROFILE )
+  INCLUDE_DIRECTORIES( ${ANDROID_NDK} )
+  INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources )
+  INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources/android )
+  INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sources/android/native_app_glue )
+  INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr )
+  INCLUDE_DIRECTORIES( ${ANDROID_NDK}/sysroot/usr/include/android )
+ENDIF()
 
 IF( enable_wayland )
   IF( enable_ecore_wayland2 )
@@ -108,6 +132,13 @@ ENDIF()
 
 CHECK_MODULE_AND_SET( WAYLAND_EXTENSION xdg-shell-client text-client input-method-client [] )
 
+IF( enable_tizen_major_version GREATER 5 )
+  IF( enable_tizen_minor_version GREATER 5 )
+    CHECK_MODULE_AND_SET( AUTOFILL capi-ui-autofill [] )
+    ADD_DEFINITIONS( -DCAPI_AUTOFILL_SUPPORT )
+  ENDIF()
+ENDIF()
+
 # BUILD CONDITIONS
 IF( watch_available AND WEARABLE_PROFILE )
   ADD_DEFINITIONS( -DAPPCORE_WATCH_AVAILABLE )
@@ -118,8 +149,9 @@ IF( eldbus_available )
   ADD_DEFINITIONS( -DDALI_ELDBUS_AVAILABLE )
 ENDIF()
 
-IF( tpkp_curl_available )
-  ADD_DEFINITIONS( -DTPK_CURL_ENABLED )
+IF( webp_available )
+  SET(DALI_WEBP_AVAILABLE 1)
+  ADD_DEFINITIONS( -DDALI_WEBP_AVAILABLE )
 ENDIF()
 
 ADD_DEFINITIONS( -DPLATFORM_TIZEN )
@@ -173,7 +205,7 @@ ELSE()
   SET( dataReadWriteDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
 ENDIF()
 
-IF( DEFINED ENV{DALI_DATA_RO_DIR )
+IF( DEFINED ENV{DALI_DATA_RO_DIR} )
   SET( dataReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
 ELSE()
   SET( dataReadOnlyDir ${CMAKE_INSTALL_PREFIX}/share/dali/ )
@@ -197,13 +229,18 @@ ELSE()
   SET( cachePath /home/owner )
 ENDIF()
 
+IF( enable_appfw )
+  ADD_DEFINITIONS( -DUSE_APPFW -DCOMPONENT_APPLICATION_SUPPORT)
+ENDIF()
+
 #######################################################
 
 ADD_DEFINITIONS( -DDALI_PROFILE_${enable_profile})
 SET( DALI_PROFILE_CFLAGS -DDALI_PROFILE_${enable_profile} )
 
 # Platforms with highp shader support can use vector based text
-CONDITIONAL( ENABLE_VECTOR_BASED_TEXT_RENDERING UBUNTU_PROFILE )
+ADD_DEFINITIONS( "-DENABLE_VECTOR_BASED_TEXT_RENDERING" )
+
 CONDITIONAL( WAYLAND enable_wayland )
 
 # set lowercase profile name
@@ -220,6 +257,8 @@ SET( DALI_CFLAGS
   ${FONTCONFIG_CFLAGS}
   ${CAIRO_CFLAGS}
   ${PNG_CFLAGS}
+  ${WEBP_CFLAGS}
+  ${WEBP_DEMUX_CFLAGS}
   ${DLOG_CFLAGS}
   ${VCONF_CFLAGS}
   ${EXIF_CFLAGS}
@@ -229,7 +268,6 @@ SET( DALI_CFLAGS
   ${LIBDRM_CFLAGS}
   ${LIBEXIF_CFLAGS}
   ${LIBCURL_CFLAGS}
-  ${TPKP_CURL_CFLAGS}
   ${UTILX_CFLAGS}
   -Wall
 )
@@ -242,6 +280,8 @@ SET( DALI_LDFLAGS
   ${FONTCONFIG_LDFLAGS}
   ${CAIRO_LDFLAGS}
   ${PNG_LDFLAGS}
+  ${WEBP_LDFLAGS}
+  ${WEBP_DEMUX_LDFLAGS}
   ${DLOG_LDFLAGS}
   ${VCONF_LDFLAGS}
   ${EXIF_LDFLAGS}
@@ -252,14 +292,46 @@ SET( DALI_LDFLAGS
   ${LIBCURL_LDFLAGS}
   ${LIBCRYPTO_LDFLAGS}
   ${HARFBUZZ_LDFLAGS}
+  ${AUTOFILL_LDFLAGS}
   ${TPKP_CURL_LDFLAGS}
   ${UTILX_LDFLAGS}
   -lgif
-  -lpthread
   -lturbojpeg
   -ljpeg
 )
 
+# Android includes pthread with android lib
+if( NOT ANDROID_PROFILE )
+  SET( DALI_LDFLAGS ${DALI_LDFLAGS}
+    -lpthread
+  )
+ENDIF()
+
+# You need to include manually private and Android libs deps in order to link for Android
+IF( ANDROID_PROFILE )
+  CHECK_MODULE_AND_SET( PIXMAN pixman-1 [] )
+  CHECK_MODULE_AND_SET( EXPAT expat [] )
+
+  SET( DALI_CFLAGS ${DALI_CFLAGS}
+    ${PIXMAN_CFLAGS}
+    ${EXPAT_CFLAGS}
+    ${FRIBIDI_CFLAGS}
+  )
+
+  LIST( APPEND DALI_LDFLAGS
+    ${FRIBIDI_LDFLAGS}
+    ${FREETYPE_LDFLAGS}
+    ${PNG_LDFLAGS}
+    ${PIXMAN_LDFLAGS}
+    ${EXPAT_LDFLAGS}
+    z
+    android
+    log
+    EGL
+    GLESv3
+  )
+ENDIF()
+
 # EVAS used indicator
 SET( DALI_CFLAGS ${DALI_CFLAGS}
   ${EVAS_CFLAGS}
@@ -287,6 +359,7 @@ IF( enable_appfw )
     ${CAPI_APPFW_WIDGET_BASE_CFLAGS}
     ${ECORE_IMF_CFLAGS}
     ${FRIBIDI_CFLAGS}
+    ${COMPONENT_BASED_CORE_BASE_CFLAGS}
   )
 
   SET( DALI_LDFLAGS ${DALI_LDFLAGS}
@@ -301,6 +374,7 @@ IF( enable_appfw )
     ${CAPI_APPFW_WIDGET_BASE_LDFLAGS}
     ${ECORE_IMF_LDFLAGS}
     ${FRIBIDI_LDFLAGS}
+    ${COMPONENT_BASED_CORE_BASE_LDFLAGS}
   )
 ELSE()
   SET( DALI_CFLAGS ${DALI_CFLAGS}
@@ -396,22 +470,27 @@ IF( NOT COMMON_PROFILE )
   ADD_DEFINITIONS( -DWAYLAND_EXTENSIONS_SUPPORTED )
 ENDIF()
 
-SET( daliDefaultThemeDir ${dataReadWriteDir}/theme/ )
+# had to do it here for Android by some reason, even if it is set above already
+IF( ANDROID_PROFILE )
+  SET( daliReadOnlyDir $ENV{DALI_DATA_RO_DIR} )
+  SET( daliReadWriteDir $ENV{DALI_DATA_RW_DIR} )
+ENDIF()
 
+SET( daliDefaultThemeDir ${dataReadWriteDir}/theme/ )
 SET( fontPreloadedPath $ENV{FONT_PRELOADED_PATH} )
 SET( fontDownloadedPath $ENV{FONT_DOWNLOADED_PATH} )
 SET( fontApplicationPath $ENV{FONT_APPLICATION_PATH} )
 
 # Configure paths
-ADD_DEFINITIONS(  -DDALI_DATA_RW_DIR="\"${daliReadWriteDir}\""
-                  -DDALI_DATA_RO_DIR="\"${daliReadOnlyDir}\""
-                  -DDALI_DEFAULT_FONT_CACHE_DIR="\"${daliDefaultFontCacheDir}\""
-                  -DDALI_USER_FONT_CACHE_DIR="\"${daliUserFontCacheDir}\""
-                  -DDALI_SHADERBIN_DIR="\"${daliShaderbinCacheDir}\""
-                  -DDALI_DEFAULT_THEME_DIR="\"${daliDefaultThemeDir}\""
-                  -DFONT_PRELOADED_PATH="\"${fontPreloadedPath}\""
-                  -DFONT_DOWNLOADED_PATH="\"${fontDownloadedPath}\""
-                  -DFONT_APPLICATION_PATH="\"${fontApplicationPath}\""
-                  -DFONT_CONFIGURATION_FILE="\"${fontConfigurationFile}\""
+ADD_DEFINITIONS(  -DDALI_DATA_RW_DIR="${daliReadWriteDir}"
+                  -DDALI_DATA_RO_DIR="${daliReadOnlyDir}"
+                  -DDALI_DEFAULT_FONT_CACHE_DIR="${daliDefaultFontCacheDir}"
+                  -DDALI_USER_FONT_CACHE_DIR="${daliUserFontCacheDir}"
+                  -DDALI_SHADERBIN_DIR="${daliShaderbinCacheDir}"
+                  -DDALI_DEFAULT_THEME_DIR="${daliDefaultThemeDir}"
+                  -DFONT_PRELOADED_PATH="${fontPreloadedPath}"
+                  -DFONT_DOWNLOADED_PATH="${fontDownloadedPath}"
+                  -DFONT_APPLICATION_PATH="${fontApplicationPath}"
+                  -DFONT_CONFIGURATION_FILE="${fontConfigurationFile}"
                   -DTIZEN_PLATFORM_CONFIG_SUPPORTED=${tizenPlatformConfigSupported}
 )