SET(PROJECT_VERSION_MAJOR 0) SET(PROJECT_VERSION_MINOR 6) SET(PROJECT_VERSION_PATCH 24) SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) # ----------------------------------------------------------------------------- # We mention Safari version because many sites check for it. # Sync with Source/WebCore/Configurations/Version.xcconfig whenever Safari is # version up. # ----------------------------------------------------------------------------- SET(WEBKIT_USER_AGENT_MAJOR_VERSION 534) SET(WEBKIT_USER_AGENT_MINOR_VERSION 16) ADD_DEFINITIONS(-DBUILDING_EFL__=1) ADD_DEFINITIONS(-DWTF_PLATFORM_EFL=1) SET(WTF_PLATFORM_EFL 1) # ----------------------------------------------------------------------------- # Determine which network backend will be used # ----------------------------------------------------------------------------- SET(ALL_NETWORK_BACKENDS soup curl) SET(NETWORK_BACKEND "soup" CACHE STRING "choose which network backend to use (one of ${ALL_NETWORK_BACKENDS})") # ----------------------------------------------------------------------------- # Determine which font backend will be used # ----------------------------------------------------------------------------- SET(ALL_FONT_BACKENDS freetype pango) SET(FONT_BACKEND "freetype" CACHE STRING "choose which font backend to use (one of ${ALL_FONT_BACKENDS})") FIND_PACKAGE(Cairo 1.10 REQUIRED) FIND_PACKAGE(EFL REQUIRED) FIND_PACKAGE(Fontconfig 2.8.0 REQUIRED) FIND_PACKAGE(Sqlite REQUIRED) FIND_PACKAGE(LibXml2 2.6 REQUIRED) FIND_PACKAGE(LibXslt 1.1.7 REQUIRED) FIND_PACKAGE(ICU REQUIRED) FIND_PACKAGE(Threads REQUIRED) FIND_PACKAGE(JPEG REQUIRED) FIND_PACKAGE(PNG REQUIRED) ADD_DEFINITIONS(-DENABLE_CONTEXT_MENUS=1) SET(WTF_USE_PTHREADS 1) ADD_DEFINITIONS(-DWTF_USE_PTHREADS=1) SET(WTF_USE_ICU_UNICODE 1) ADD_DEFINITIONS(-DWTF_USE_ICU_UNICODE=1) SET(WTF_USE_CAIRO 1) ADD_DEFINITIONS(-DWTF_USE_CAIRO=1) SET(JSC_EXECUTABLE_NAME jsc_efl) SET(WTF_LIBRARY_NAME wtf_efl) SET(JavaScriptCore_LIBRARY_NAME javascriptcore_efl) SET(WebCore_LIBRARY_NAME webcore_efl) SET(WebKit_LIBRARY_NAME ewebkit) SET(WebKit2_LIBRARY_NAME ewebkit2) SET(DATA_INSTALL_DIR "share/${WebKit_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR}" CACHE PATH "Installation path for theme data") SET(THEME_BINARY_DIR ${CMAKE_BINARY_DIR}/WebKit/efl/DefaultTheme) SET(VERSION_SCRIPT "-Wl,--version-script,${CMAKE_MODULE_PATH}/eflsymbols.filter") WEBKIT_OPTION_BEGIN() WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_FILTERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DATALIST ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILE_SYSTEM ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GLIB_SUPPORT ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INDEXED_DATABASE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATETIME ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATETIMELOCAL ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_WEEK ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_WEBKIT_BLOB_BUILDER ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MICRODATA ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REGISTER_PROTOCOL_HANDLER ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME OFF) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_ICON_LOADING ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIDEO_TRACK ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_AUDIO ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(USE_SYSTEM_MALLOC ON) WEBKIT_OPTION_DEFINE(ENABLE_AS_IMAGE "Enable SVG as image" ON) WEBKIT_OPTION_DEFINE(ENABLE_CDOM_BINDINGS "C DOM Bindings" OFF) WEBKIT_OPTION_DEFINE(ENABLE_DFG_JIT "Enable DFG JIT" OFF) WEBKIT_OPTION_DEFINE(ENABLE_FAST_MALLOC "Enable fastMalloc" OFF) WEBKIT_OPTION_DEFINE(ENABLE_MEMORY_SAMPLER "Enable Memory Sampler for WebKit2" ON) WEBKIT_OPTION_DEFINE(ENABLE_OFFLINE_WEB_APPLICATIONS "Enable offline web applications" ON) WEBKIT_OPTION_DEFINE(ENABLE_OVERFLOW_SCROLLING "Enable css overflow scrolling property" ON) WEBKIT_OPTION_DEFINE(ENABLE_PLUGIN_PROCESS "Enable PluginProcess for WebKit2" ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ORIENTATION_EVENTS ON) #-------------------------------------------------------------------------------------- # Enabled WebKit Features for Tizen or Tizen Specific Features. #-------------------------------------------------------------------------------------- WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_DBSPACE_PATH "Enable Tizen application's directory path" ON) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_INTERNATIONAL_TEXT_SUPPORT "Enable International text support for tizen webkit" ON) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_REGISTER_CONTENT_HANDLER "Enable the register content handler for Tizen" ON) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SEARCH_PROVIDER "Enable Tizen search provider for Tizen" OFF) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SUPPORT "Enable Tizen Support" ON) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_SUPPORT_WEBAPP_META_TAG "Enable apple meta tag" ON) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_WEBKIT_EFL_DRT "Enable DumpRenderTree for Tizen WebKit" ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SCREEN_ORIENTATION_SUPPORT ON) ADD_DEFINITIONS(-DENABLE_TIZEN_SCREEN_ORIENTATION_SUPPORT=1) # IF WEBKIT2 WEBKIT_OPTION_DEFINE(ENABLE_NOTIFICATIONS "notification" ON) WEBKIT_OPTION_DEFINE(ENABLE_LEGACY_NOTIFICATIONS "legacy notification" ON) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_MM_PLAYER "Use Tizen Multimedia Framework for Tizen" OFF) WEBKIT_OPTION_DEFINE(ENABLE_MEDIA_STREAM "Enable Media Stream" ON) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_WEBKIT2_SPELLCHECKING "Enable spellchecking in WebKit 2" OFF) WEBKIT_OPTION_DEFINE(ENABLE_TIZEN_WEBKIT2_ROTATION_WHILE_JAVASCRIPT_POPUP "Enable rotation while showing javascript popup for WebKit 2" ON) # END WEBKIT2 WEBKIT_OPTION_END() OPTION(ENABLE_ECORE_X "Enable Ecore_X specific usage (cursor, bell)" ON) IF (ENABLE_ECORE_X) IF (ECORE_X_FOUND) MESSAGE(STATUS "Using Ecore-X to provide extended support.") ADD_DEFINITIONS(-DHAVE_ECORE_X) ELSE () MESSAGE(ERROR "Requested Ecore-X but it was not found!") ENDIF () ENDIF () IF (NETWORK_BACKEND STREQUAL "soup") IF (NOT ENABLE_GLIB_SUPPORT) SET(ENABLE_GLIB_SUPPORT 1) MESSAGE("Forcing Glib support") ENDIF () FIND_PACKAGE(LibSoup2 2.33.4 REQUIRED) SET(WTF_USE_SOUP 1) ADD_DEFINITIONS(-DWTF_USE_SOUP=1) ELSE () FIND_PACKAGE(CURL REQUIRED) FIND_PACKAGE(ZLIB REQUIRED) SET(WTF_USE_CURL 1) ADD_DEFINITIONS(-DWTF_USE_CURL=1) ENDIF () IF (FONT_BACKEND STREQUAL "freetype") FIND_PACKAGE(Pango) FIND_PACKAGE(Freetype REQUIRED) FIND_PACKAGE(ZLIB REQUIRED) SET(WTF_USE_FREETYPE 1) ADD_DEFINITIONS(-DWTF_USE_FREETYPE=1) ELSE () FIND_PACKAGE(Pango REQUIRED) SET(WTF_USE_PANGO 1) ADD_DEFINITIONS(-DWTF_USE_PANGO=1) IF (NOT ENABLE_GLIB_SUPPORT) SET(ENABLE_GLIB_SUPPORT 1) MESSAGE("Forcing Glib support") ENDIF () ENDIF () IF (ENABLE_VIDEO) SET(ENABLE_GLIB_SUPPORT 1) MESSAGE("Forcing Glib support") ENDIF() IF (ENABLE_GLIB_SUPPORT) FIND_PACKAGE(Glib REQUIRED) FIND_PACKAGE(Gthread REQUIRED) ENDIF () SET(CPACK_SOURCE_GENERATOR TBZ2) # ----------------------------------------------------------------------------- # Determine which Samsung model will be defined # ----------------------------------------------------------------------------- IF (ENABLE_TIZEN_SUPPORT) ADD_DEFINITIONS(-DWTF_OS_TIZEN=1) IF (ENABLE_WEBKIT2) ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2=1) ENDIF () SET(ENABLE_TOUCH_ICON_LOADING 1) IF (ENABLE_BATTERY_STATUS) ADD_DEFINITIONS(-DENABLE_TIZEN_BATTERY_STATUS=1) SET(ENABLE_TIZEN_BATTERY_STATUS 1) FIND_PACKAGE(Pmapi REQUIRED) ENDIF () IF (ENABLE_WEBKIT2) # SET(ENABLE_NOTIFICATIONS 1) # LIST(APPEND FEATURE_DEFINES ENABLE_NOTIFICATIONS) # SET(ENABLE_LEGACY_NOTIFICATIONS 1) # LIST(APPEND FEATURE_DEFINES ENABLE_LEGACY_NOTIFICATIONS) ELSE () SET(ENABLE_PAGE_VISIBILITY_API 1) SET(ENABLE_TIZEN_KEYGEN 1) LIST(APPEND FEATURE_DEFINES ENABLE_TIZEN_KEYGEN) #FIXME SET(ENABLE_WEBGL 1) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TIZEN_MM_PLAYER "Use Tizen Multimedia Framework for Tizen" DEFAULT ON) WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_STREAM "Enable Media Stream" DEFAULT OFF) ENDIF () IF (ENABLE_REGISTER_PROTOCOL_HANDLER) SET(ENABLE_TIZEN_REGISTER_PROTOCOL_HANDLER 1) ENDIF () # ----------------------------------------------------------------------------- # Checking Tizen dependencies. # ----------------------------------------------------------------------------- MESSAGE("Checking Tizen dependencies...") FIND_PACKAGE(ELEMENTARY REQUIRED) FIND_PACKAGE(UIGadget REQUIRED) FIND_PACKAGE(Dlog) IF (Dlog_FOUND) ADD_DEFINITIONS(-DENABLE_TIZEN_DLOG_SUPPORT=1) ENDIF () FIND_PACKAGE(Media-Utils 0.1.35 REQUIRED) FIND_PACKAGE(VConf REQUIRED) IF (ENABLE_DEVICE_ORIENTATION) FIND_PACKAGE(Tizen-Sensor REQUIRED) SET(ENABLE_TIZEN_DEVICE_ORIENTATION 1) ENDIF () IF(ENABLE_GEOLOCATION) FIND_PACKAGE(Tizen-Location-Manager REQUIRED) ADD_DEFINITIONS(-DENABLE_TIZEN_GEOLOCATION=1) SET(ENABLE_TIZEN_GEOLOCATION 1) ENDIF() IF (ENABLE_TIZEN_KEYGEN) FIND_PACKAGE(SSL REQUIRED) ENDIF () IF (WTF_USE_SKIA) FIND_PACKAGE(Skia REQUIRED) FIND_PACKAGE(Harfbuzz REQUIRED) SET(WTF_USE_CAIRO 0) ADD_DEFINITIONS(-UWTF_USE_CAIRO) ADD_DEFINITIONS(-DWTF_USE_SKIA=1) ADD_DEFINITIONS(-DENABLE_TIZEN_SKIA_FOR_PROFILE=1) ENDIF() IF (ENABLE_TIZEN_RENDERING_PROFILE) ADD_DEFINITIONS(-DENABLE_TIZEN_RENDERING_PROFILE_TEST=1) ENDIF() FIND_PACKAGE(GLES REQUIRED) IF (ENABLE_WEBKIT2 OR NOT WTF_USE_CAIRO) IF ("${EFL_TARGET}" STREQUAL "i386") SET(WTF_USE_ACCELERATED_COMPOSITING 1) SET(WTF_USE_TEXTURE_MAPPER 1) SET(ENABLE_WEBGL 1) ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=0) SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 0) ELSE () SET(WTF_USE_ACCELERATED_COMPOSITING 1) SET(WTF_USE_TEXTURE_MAPPER 1) SET(ENABLE_WEBGL 1) ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING=1) SET(ENABLE_TIZEN_WEBKIT2_DIRECT_RENDERING 1) ENDIF () ELSE () SET(WTF_USE_ACCELERATED_COMPOSITING 1) SET(WTF_USE_TEXTURE_MAPPER 0) IF (EGL_INCLUDE_DIR) MESSAGE("EGL Image Extensions ON") ADD_DEFINITIONS(-DWTF_USE_EGL_IMAGE_EXT=1) SET(WTF_USE_EGL_IMAGE_EXT 1) ELSE() MESSAGE("EGL Image Extensions OFF") ADD_DEFINITIONS(-DWTF_USE_EGL_IMAGE_EXT=0) SET(WTF_USE_EGL_IMAGE_EXT 0) ENDIF() IF (WTF_USE_TEXTURE_MAPPER) SET(ENABLE_WEBGL 0) ELSE() SET(ENABLE_WEBGL 1) ENDIF() ENDIF() ADD_DEFINITIONS(-DWTF_USE_ACCELERATED_COMPOSITING=${WTF_USE_ACCELERATED_COMPOSITING}) REMOVE_DEFINITIONS(-DWTF_USE_TEXTURE_MAPPER=1) # FIXME: Is it necessary? ADD_DEFINITIONS(-DWTF_USE_TEXTURE_MAPPER=${WTF_USE_TEXTURE_MAPPER}) IF (ENABLE_FILE_SYSTEM) SET(ENABLE_TIZEN_FILE_SYSTEM 1) ENDIF() IF (ENABLE_INDEXED_DATABASE) FIND_PACKAGE(LevelDB REQUIRED) FIND_PACKAGE(LevelDB-MemEnv REQUIRED) SET(WTF_USE_LEVELDB 1) ADD_DEFINITIONS(-DWTF_USE_LEVELDB=1) SET(ENABLE_TIZEN_INDEXED_DATABASE 1) ENDIF() IF (ENABLE_NOTIFICATIONS) SET(ENABLE_TIZEN_NOTIFICATION 1) ENDIF() IF (ENABLE_WEB_AUDIO) MESSAGE("WEB AUDIO is enabled...") SET(ENABLE_TIZEN_WEB_AUDIO 1) LIST(APPEND FEATURE_DEFINES ENABLE_TIZEN_WEB_AUDIO) SET(GSTREAMER_COMPONENTS app interfaces pbutils) SET(WTF_USE_GSTREAMER 1) ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1) LIST(APPEND GSTREAMER_COMPONENTS audio fft) SET(WTF_USE_WEBAUDIO_GSTREAMER 1) ADD_DEFINITIONS(-DWTF_USE_WEBAUDIO_GSTREAMER=1) FIND_PACKAGE(GStreamer REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS}) SET(WEB_AUDIO_DIR share/${WebKit_LIBRARY_NAME}-${PROJECT_VERSION_MAJOR}/webaudio) ADD_DEFINITIONS(-DWEB_AUDIO_DIR="/usr/${WEB_AUDIO_DIR}") IF (NOT ENABLE_WEBKIT2) # FIXME: It should be moved to proper position. FILE(GLOB WEB_AUDIO_DATA "${WEBCORE_DIR}/platform/audio/resources/*.wav") INSTALL(FILES ${WEB_AUDIO_DATA} DESTINATION ${WEB_AUDIO_DIR}) ENDIF () ENDIF () IF (ENABLE_TIZEN_DBSPACE_PATH) FIND_PACKAGE(CAPI REQUIRED) ENDIF() IF (ENABLE_MEDIA_STREAM) SET(ENABLE_TIZEN_MEDIA_STREAM 1) LIST(APPEND FEATURE_DEFINES ENABLE_TIZEN_MEDIA_STREAM) ENDIF () IF (ENABLE_TIZEN_MM_PLAYER) FIND_PACKAGE(ELEMENTARY REQUIRED) FIND_PACKAGE(EFREET REQUIRED) FIND_PACKAGE(ETHUMB REQUIRED) FIND_PACKAGE(EDBUS REQUIRED) FIND_PACKAGE(DBUS-1 REQUIRED) FIND_PACKAGE(MM-Player REQUIRED) ELSE () IF (ENABLE_VIDEO) SET(GSTREAMER_COMPONENTS app interfaces pbutils video) FIND_PACKAGE(GStreamer REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS}) SET(WTF_USE_GSTREAMER 1) ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1) ENDIF() ENDIF() IF (ENABLE_TIZEN_WEBKIT2_SPELLCHECKING) FIND_PACKAGE(Enchant REQUIRED) ADD_DEFINITIONS(-DENABLE_TIZEN_WEBKIT2_SPELLCHECKING=1) ENDIF() MESSAGE("Finish to check Tizen dependencies") ENDIF ()