Early merge - [EFL] Support for HTML media capture
[framework/web/webkit-efl.git] / Source / cmake / OptionsEfl.cmake
old mode 100755 (executable)
new mode 100644 (file)
index b63bb3d..e684708
@@ -1,6 +1,6 @@
 SET(PROJECT_VERSION_MAJOR 0)
-SET(PROJECT_VERSION_MINOR 10)
-SET(PROJECT_VERSION_PATCH 13)
+SET(PROJECT_VERSION_MINOR 1)
+SET(PROJECT_VERSION_PATCH 0)
 SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
 
 # -----------------------------------------------------------------------------
@@ -11,16 +11,11 @@ SET(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_
 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)
@@ -36,9 +31,19 @@ FIND_PACKAGE(ICU REQUIRED)
 FIND_PACKAGE(Threads REQUIRED)
 FIND_PACKAGE(JPEG REQUIRED)
 FIND_PACKAGE(PNG REQUIRED)
-FIND_PACKAGE(OpenGL REQUIRED)
+FIND_PACKAGE(ZLIB REQUIRED)
+
+FIND_PACKAGE(Glib 2.31.8 REQUIRED)
+FIND_PACKAGE(Gthread REQUIRED)
+#FIND_PACKAGE(LibSoup2 2.37.92 REQUIRED)
+FIND_PACKAGE(LibSoup2 2.33.4 REQUIRED)
+SET(ENABLE_GLIB_SUPPORT ON)
+
+SET(WTF_USE_SOUP 1)
+ADD_DEFINITIONS(-DWTF_USE_SOUP=1)
+ADD_DEFINITIONS(-DBUILDING_SOUP__=1)
 
-ADD_DEFINITIONS(-DENABLE_CONTEXT_MENUS=1)
+ADD_DEFINITIONS(-DENABLE_CONTEXT_MENUS=0)
 
 SET(WTF_USE_PTHREADS 1)
 ADD_DEFINITIONS(-DWTF_USE_PTHREADS=1)
@@ -49,82 +54,50 @@ 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(JSC_EXECUTABLE_NAME jsc)
+
 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_DIR /opt/data)
-ADD_DEFINITIONS(-DDATA_DIR="${DATA_DIR}")
-
 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_FEATURE(ENABLE_AS_IMAGE "Enable SVG as image" DEFAULT ON SVG)
-WEBKIT_FEATURE(ENABLE_BLOB "Enable blob slice" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_CLIENT_BASED_GEOLOCATION "Enable client based geolocation" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_DATAGRID "Enable datagrid" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT ON HTML)
-WEBKIT_FEATURE(ENABLE_DATA_TRANSFER_ITEMS "Enable data transfer items" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_DEVICE_ORIENTATION "Enable device orientation" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_FAST_MALLOC "Enable TCmalloc instead of system's allocator" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_FILE_SYSTEM "Enable file system" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT ON SVG)
-WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory support" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_FULLSCREEN_API "Enable Fullscreen API support" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_GLIB_SUPPORT "Enable Glib support" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_JIT "Enable JIT code" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_METER_TAG "Enable Meter tag" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_MICRODATA "Enable HTML5 microdata support" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_NETSCAPE_PLUGIN_API "Enable Netscape plugin API" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_NOTIFICATIONS "Enable notifications" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_OFFLINE_WEB_APPLICATIONS "Enable offline web applications" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_ORIENTATION_EVENTS "Enable orientation events" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_PAGE_VISIBILITY_API "Enable Page Visibility API" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_REQUEST_ANIMATION_FRAME "Enable requestAnimationFrame API" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SQL_DATABASE "Enable SQL database" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON SVG)
-WEBKIT_FEATURE(ENABLE_SVG_FOREIGN_OBJECT "Enable SVG foreign object" DEFAULT ON SVG)
-WEBKIT_FEATURE(ENABLE_SVG_USE "Enable SVG use" DEFAULT ON SVG)
-WEBKIT_FEATURE(ENABLE_TOUCH_EVENTS "Enable Touch Events" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_TOUCH_ICON_LOADING "Enable Touch Icon Loading" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT ON HTML)
-WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_WEBGL "Enable WebGL" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT ON)
-#--------------------------------------------------------------------------------------
-# Enabled WebKit Features for Tizen or Tizen Specific Features.
-#--------------------------------------------------------------------------------------
-WEBKIT_FEATURE(ENABLE_TIZEN_SUPPORT "Enable Tizen Support" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_TIZEN_SUPPORT_BLUE_RUNNER "Enable Blue Runner for Tizen" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_MM_PLAYER "Use Tizen Multimedia Framework for Tizen" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_3D_RENDERING "Enable 3D Rendering" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_CDOM_BINDINGS "C DOM Bindings" DEFAULT ON)
-IF (ENABLE_WEBKIT2)
-WEBKIT_FEATURE(ENABLE_TIZEN_WAC_CAMERA "Enable CameraManager for WAC" DEFAULT OFF)
-ELSE ()
-WEBKIT_FEATURE(ENABLE_TIZEN_WAC_CAMERA "Enable CameraManager for WAC" DEFAULT ON)
+WEBKIT_OPTION_BEGIN()
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DRAG_SUPPORT ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FAST_MOBILE_SCROLLING ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FULLSCREEN_API ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GLIB_SUPPORT ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETSCAPE_PLUGIN_API OFF)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO 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 ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS 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_INTENTS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEB_TIMING ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON)
+
+# FIXME: Perhaps we need a more generic way of defining dependencies between features.
+# VIDEO_TRACK depends on VIDEO.
+IF (NOT ENABLE_VIDEO AND ENABLE_VIDEO_TRACK)
+    MESSAGE(STATUS "Disabling VIDEO_TRACK since VIDEO support is disabled.")
+    SET(ENABLE_VIDEO_TRACK OFF)
 ENDIF ()
-WEBKIT_FEATURE(ENABLE_DFG_JIT "Enable DFG JIT" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_INDEXED_DATABASE "Enable Indexed Database" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_TIZEN_WEBKIT_EFL_DRT "Enable DumpRenderTree for Tizen WebKit" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_TIZEN_INTERNATIONAL_TEXT_SUPPORT "Enable International text support for tizen webkit" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_WEB_AUDIO "Enable web audio" DEFAULT ON)
+WEBKIT_OPTION_END()
 
 OPTION(ENABLE_ECORE_X "Enable Ecore_X specific usage (cursor, bell)" ON)
 IF (ENABLE_ECORE_X)
@@ -136,69 +109,41 @@ IF (ENABLE_ECORE_X)
     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)
+ENDIF ()
 
-  IF (NOT ENABLE_GLIB_SUPPORT)
-    SET(ENABLE_GLIB_SUPPORT 1)
-    MESSAGE("Forcing Glib support")
-  ENDIF ()
+IF (NOT ENABLE_SVG)
+  SET(ENABLE_SVG_FONTS 0)
 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 ()
+IF (ENABLE_VIDEO OR ENABLE_WEB_AUDIO)
+    SET(GSTREAMER_COMPONENTS app interfaces pbutils)
+    SET(WTF_USE_GSTREAMER 1)
+    ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1)
 
-IF (NOT ENABLE_MM_PLAYER)
-IF (ENABLE_VIDEO)
-  FIND_PACKAGE(GStreamer REQUIRED)
-  FIND_PACKAGE(GStreamer-App REQUIRED)
-  FIND_PACKAGE(GStreamer-Base REQUIRED)
-  FIND_PACKAGE(GStreamer-Pbutils REQUIRED)
-  FIND_PACKAGE(GStreamer-Interfaces REQUIRED)
-  FIND_PACKAGE(GStreamer-Plugins-Base REQUIRED)
-  FIND_PACKAGE(GStreamer-Video REQUIRED)
-  SET(WTF_USE_GSTREAMER 1)
-  ADD_DEFINITIONS(-DWTF_USE_GSTREAMER=1)
-ENDIF()
-ENDIF()
+    IF (ENABLE_VIDEO)
+        LIST(APPEND GSTREAMER_COMPONENTS video)
+    ENDIF()
 
-SET(CPACK_SOURCE_GENERATOR TBZ2)
+    IF (ENABLE_WEB_AUDIO)
+        LIST(APPEND GSTREAMER_COMPONENTS audio fft)
+        SET(WTF_USE_WEBAUDIO_GSTREAMER 1)
+        ADD_DEFINITIONS(-DWTF_USE_WEBAUDIO_GSTREAMER=1)
+    ENDIF ()
 
-IF (WTF_OS_UNIX)
-    SET(ENABLE_FILE_SYSTEM 1)
-    LIST(APPEND FEATURE_DEFINES ENABLE_FILE_SYSTEM)
-ENDIF (WTF_OS_UNIX)
+    FIND_PACKAGE(GStreamer REQUIRED COMPONENTS ${GSTREAMER_COMPONENTS})
+ENDIF ()
 
-IF (ENABLE_TIZEN_SUPPORT)
-    INCLUDE(OptionsTizen)
+IF (ENABLE_WEBGL)
+  FIND_PACKAGE(OpenGL REQUIRED)
 ENDIF ()
+
+SET(CPACK_SOURCE_GENERATOR TBZ2)