[CMake] Share build system options across ports
[WebKit-https.git] / Source / cmake / OptionsBlackBerry.cmake
index d622ebf..0e11941 100644 (file)
@@ -124,85 +124,51 @@ SET(WebCore_LIBRARY_NAME webcore)
 SET(WebKit_LIBRARY_NAME webkit)
 SET(WebKit_DRT_LIBRARY_NAME webkit_DRT)
 
-IF (TARGETING_PLAYBOOK)
-    WEBKIT_FEATURE(ENABLE_3D_RENDERING "Enable 3D Rendering" DEFAULT ON)
-    WEBKIT_FEATURE(ENABLE_WEBGL "Enable WebGL" DEFAULT ON)
-ELSE ()
-    WEBKIT_FEATURE(ENABLE_3D_RENDERING "Enable 3D Rendering" DEFAULT OFF)
-    WEBKIT_FEATURE(ENABLE_WEBGL "Enable WebGL" DEFAULT OFF)
-ENDIF ()
-
-WEBKIT_FEATURE(ENABLE_ASSEMBLER_WX_EXCLUSIVE "Assembler WX Exclusive" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_BATTERY_STATUS "Enable battery status api" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_BLOB "Enable blob slice" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_CHANNEL_MESSAGING "Enable channel messaging" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_DATABASE "Enable database" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_DATALIST "Enable datalist" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_DETAILS "Enable details element" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_DEVICE_ORIENTATION "Enable Device Orientation" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_DOM_STORAGE "Enable DOM storage" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_DRAG_SUPPORT "Enable Drag Support" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_EVENTSOURCE "Enable event source" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_EVENT_MODE_METATAGS "Enable meta-tag touch and mouse events" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_FAST_MOBILE_SCROLLING "Enable fast mobile scrolling" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_FILE_SYSTEM "Enable file system" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_FILTERS "Enable SVG filters" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_FIXED_REPORTED_SIZE "Fixed Reported Size" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_FTPDIR "Enable FTP directory browsing" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_GEOLOCATION "Enable geolocation" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_GLIB_SUPPORT "Enable Glib support" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_ICONDATABASE "Enable icon database" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING "Enable image decoder down sampling" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_INDEXED_DATABASE "Enable IndexDB" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_INPUT_TYPE_COLOR "Enable Color Input" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_INSPECTOR "Enable inspector" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_JAVASCRIPT_DEBUGGER "Enable JavaScript debugger" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_LEGACY_NOTIFICATIONS "Enable legacy notifications" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_MATHML "Enable MathML" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_METER_TAG "Enable Meter Tag" DEFAULT ON)
-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 ON)
-WEBKIT_FEATURE(ENABLE_PROGRESS_TAG "Enable progress tag" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_REPAINT_THROTTLING "Enable repaint throttling" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_RUBY "Enable Ruby" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SHARED_WORKERS "Enable shared workers" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SHADOW_DOM "Enable Shadow DOM" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_SVG "Enable SVG" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SVG_ANIMATION "Enable SVG animation" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SVG_AS_IMAGE "Enable SVG as image" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SVG_FONTS "Enable SVG fonts" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SVG_FOREIGN_OBJECT "Enable SVG foreign object" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_SVG_USE "Enable SVG use" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_TOUCH_EVENTS "Enable touch events " DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_VIBRATION "Enable vibration support" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_VIDEO "Enable video" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_VIEWPORT_REFLOW "Enable viewport reflow" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_WEB_SOCKETS "Enable web sockets" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_WEB_TIMING "Enable web timing" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_WORKERS "Enable workers" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_XHTMLMP "Enable XHTMLMP" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_XPATH "Enable XPath" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_XSLT "Enable XSLT" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_CSS3_FLEXBOX "Enable CSS3 Flexbox" DEFAULT ON)
-WEBKIT_FEATURE(ENABLE_PLUGIN_PROXY_FOR_VIDEO "Plugin Proxy for Video" DEFAULT OFF)
-WEBKIT_FEATURE(ENABLE_ANIMATION_API "Enable animation API" DEFAULT ON)
+WEBKIT_OPTION_BEGIN()
+
+WEBKIT_OPTION_DEFINE(ENABLE_EVENT_MODE_METATAGS "Enable meta-tag touch and mouse events" ON)
+WEBKIT_OPTION_DEFINE(ENABLE_VIEWPORT_REFLOW "Enable viewport reflow" ON)
+
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ANIMATION_API ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ASSEMBLER_WX_EXCLUSIVE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BATTERY_STATUS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_BLOB ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DEVICE_ORIENTATION ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_DOWNLOAD_ATTRIBUTE ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILE_SYSTEM ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FILTERS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_GEOLOCATION ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_COLOR ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_LEGACY_NOTIFICATIONS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NOTIFICATIONS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_ORIENTATION_EVENTS ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REPAINT_THROTTLING 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_WEB_TIMING ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WORKERS ON)
 
-IF (ENABLE_DRT)
-    WEBKIT_FEATURE(ENABLE_DRT "Enable DRT" DEFAULT ON)
+IF (TARGETING_PLAYBOOK)
+    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING ON)
+    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL ON)
 ELSE ()
-    WEBKIT_FEATURE(ENABLE_DRT "Enable DRT" DEFAULT OFF)
+    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_3D_RENDERING OFF)
+    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_WEBGL OFF)
 ENDIF ()
 
 IF (CMAKE_SYSTEM_PROCESSOR MATCHES x86)
-    WEBKIT_FEATURE(ENABLE_JIT "Enable JIT" DEFAULT OFF)
-    WEBKIT_FEATURE(ENABLE_SKIA_GPU_CANVAS "Enable GPU-backed Skia canvases" DEFAULT OFF)
+    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT OFF)
 ELSE ()
-    WEBKIT_FEATURE(ENABLE_JIT "Enable JIT" DEFAULT ON)
-    WEBKIT_FEATURE(ENABLE_SKIA_GPU_CANVAS "Enable GPU-backed Skia canvases" DEFAULT ON)
+    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_JIT ON)
 ENDIF ()
 
+WEBKIT_OPTION_END()
+
 # Some of our files, such as platform/graphics/chromium/ComplexTextControllerLinux.cpp, require a
 # newer ICU version than the version associated with the headers in {WebCore, JavaScriptCore}/icu.
 # Because of <https://bugs.webkit.org/show_bug.cgi?id=70913> we can't directly reference these newer