Title: [116107] trunk
Revision
116107
Author
ves...@webkit.org
Date
2012-05-04 09:09:33 -0700 (Fri, 04 May 2012)

Log Message

[Qt] Clean up and split features.prf into a static list of defaults

The static list of feature defaults is used as a fallback for any
feature that's not dynamically detected or overriden on the command
line (though build-webkit or passing DEFINES+= to qmake).

The static list is complete, which allows for auto-generation based
on Features.py (see bug https://bugs.webkit.org/show_bug.cgi?id=85456)

https://bugs.webkit.org/show_bug.cgi?id=85611

Reviewed by Simon Hausmann.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (116106 => 116107)


--- trunk/Source/WebCore/ChangeLog	2012-05-04 15:43:50 UTC (rev 116106)
+++ trunk/Source/WebCore/ChangeLog	2012-05-04 16:09:33 UTC (rev 116107)
@@ -1,3 +1,20 @@
+2012-05-04  Tor Arne Vestbø  <tor.arne.ves...@nokia.com>
+
+        [Qt] Clean up and split features.prf into a static list of defaults
+
+        The static list of feature defaults is used as a fallback for any
+        feature that's not dynamically detected or overriden on the command
+        line (though build-webkit or passing DEFINES+= to qmake).
+
+        The static list is complete, which allows for auto-generation based
+        on Features.py (see bug https://bugs.webkit.org/show_bug.cgi?id=85456)
+
+        https://bugs.webkit.org/show_bug.cgi?id=85611
+
+        Reviewed by Simon Hausmann.
+
+        * Target.pri:
+
 2012-05-04  Sheriff Bot  <webkit.review....@gmail.com>
 
         Unreviewed, rolling out r116085, r116091, and r116095.

Modified: trunk/Source/WebCore/Target.pri (116106 => 116107)


--- trunk/Source/WebCore/Target.pri	2012-05-04 15:43:50 UTC (rev 116106)
+++ trunk/Source/WebCore/Target.pri	2012-05-04 16:09:33 UTC (rev 116107)
@@ -4124,7 +4124,7 @@
     DEFINES += QT_OPENGL_SHIMS=1
 }
 
-contains(CONFIG, graphics_surfaces) {
+contains(DEFINES, WTF_USE_GRAPHICS_SURFACE=1) {
     mac {
         SOURCES += platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp
         INCLUDEPATH += /System/Library/Frameworks/CoreFoundation.framework/Headers

Modified: trunk/Tools/ChangeLog (116106 => 116107)


--- trunk/Tools/ChangeLog	2012-05-04 15:43:50 UTC (rev 116106)
+++ trunk/Tools/ChangeLog	2012-05-04 16:09:33 UTC (rev 116107)
@@ -1,3 +1,23 @@
+2012-05-04  Tor Arne Vestbø  <tor.arne.ves...@nokia.com>
+
+        [Qt] Clean up and split features.prf into a static list of defaults
+
+        The static list of feature defaults is used as a fallback for any
+        feature that's not dynamically detected or overriden on the command
+        line (though build-webkit or passing DEFINES+= to qmake).
+
+        The static list is complete, which allows for auto-generation based
+        on Features.py (see bug https://bugs.webkit.org/show_bug.cgi?id=85456)
+
+        https://bugs.webkit.org/show_bug.cgi?id=85611
+
+        Reviewed by Simon Hausmann.
+
+        * Scripts/build-webkit:
+        * Tools.pro:
+        * qmake/mkspecs/features/features.prf:
+        * qmake/mkspecs/features/features.pri: Added.
+
 2012-05-04  Sheriff Bot  <webkit.review....@gmail.com>
 
         Unreviewed, rolling out r116085, r116091, and r116095.

Modified: trunk/Tools/Scripts/build-webkit (116106 => 116107)


--- trunk/Tools/Scripts/build-webkit	2012-05-04 15:43:50 UTC (rev 116106)
+++ trunk/Tools/Scripts/build-webkit	2012-05-04 16:09:33 UTC (rev 116107)
@@ -301,12 +301,11 @@
         push @options, "DEFINES+=$_->{define}=${$_->{value}}" if $_->{define} && ${$_->{value}} != $_->{default};
     }
 
-    if ($minimal) {
-        push @options, "CONFIG+=minimal";
-    }
-
     if ($v8) {
-        push @options, "CONFIG+=v8";
+        print "Building WebKit2 with v8 is not supported currently. Disabling WebKit2.\n";
+        # FIXME: Deal with this in defaults_pre, once Qt has support for getting at the
+        # command line arguments at that stage.
+        push @options, "CONFIG+=v8 CONFIG+=no_webkit2";
     }
 }
 

Modified: trunk/Tools/Tools.pro (116106 => 116107)


--- trunk/Tools/Tools.pro	2012-05-04 15:43:50 UTC (rev 116106)
+++ trunk/Tools/Tools.pro	2012-05-04 16:09:33 UTC (rev 116107)
@@ -33,6 +33,7 @@
     qmake/config.tests/gccdepends/* \
     qmake/mkspecs/modules/* \
     qmake/mkspecs/features/*.prf \
+    qmake/mkspecs/features/*.pri \
     qmake/mkspecs/features/mac/*.prf \
     qmake/mkspecs/features/unix/*.prf \
     qmake/mkspecs/features/win32/*.prf

Modified: trunk/Tools/qmake/mkspecs/features/features.prf (116106 => 116107)


--- trunk/Tools/qmake/mkspecs/features/features.prf	2012-05-04 15:43:50 UTC (rev 116106)
+++ trunk/Tools/qmake/mkspecs/features/features.prf	2012-05-04 16:09:33 UTC (rev 116107)
@@ -5,27 +5,18 @@
 # See 'Tools/qmake/README' for an overview of the build system
 # -------------------------------------------------------------------
 
-CONFIG(minimal) {
-    DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0
-}
+# Since features.prf is currently loaded from .pro/.pri files, not
+# defaults_pre.prf, we have at this point parsed any optional command
+# line arguments to qmake (eg qmake DEFINES+=ENABLE_VIDEO=0), that are
+# intended to override default values (static or dynamic) of the
+# feature defines.
+#
+# This is why the checks below look for !contains(DEFINES, ENABLE_FOO=.)
+# so that the static or dynamic defaults will only be set if the user did
+# not make an explicit choice by passing an argument to qmake/build-webkit.
 
-CONFIG(production) {
-    DEFINES += ENABLE_XSLT=0
-    DEFINES += ENABLE_WEB_TIMING=0
-}
+# ------------- Prepare for feature detection -------------
 
-meegotouch {
-    DEFINES += WTF_USE_MEEGOTOUCH=1
-}
-
-haveQt(5) {
-    mac: CONFIG += graphics_surfaces
-}
-
-contains(CONFIG, graphics_surfaces) {
-    DEFINES += WTF_USE_GRAPHICS_SURFACE=1
-}
-
 ## load mobilityconfig if mobility is available
 load(mobilityconfig, true)
 
@@ -35,22 +26,29 @@
     SQLITE3SRCDIR = $$[QT_INSTALL_PREFIX]/src/3rdparty/sqlite/
 }
 
+# ---------- Dynamically detect optional features -------------
+#
+# Please note, static feature defaults go in features.pri
+#
+# Do not add new CONFIG options, but use the existing patterns
+# of WTF_USE, ENABLE_, etc, and detect the precense of those
+# defines in the relevant target files. You do not need to have
+# a fallback in your logic for the disabling feature, that's handled
+# by having the feature disabled in features.pri. Nor do you have to
+# unset the opposite value, that's handled automatically for you.
+
 # For Mac we do not rely on QT_CONFIG, because icu is not officially supported for all of qt.
 haveQt(5):if(contains(QT_CONFIG,icu)|mac) {
     DEFINES += WTF_USE_ICU_UNICODE=1
-    DEFINES -= WTF_USE_QT4_UNICODE
+    DEFINES -= WTF_USE_QT4_UNICODE=1
 } else {
     DEFINES += WTF_USE_QT4_UNICODE=1
-    DEFINES -= WTF_USE_ICU_UNICODE
+    DEFINES -= WTF_USE_ICU_UNICODE=1
 }
 
-# Use of QRawFont in Qt 5:
-haveQt(5): DEFINES += HAVE_QRAWFONT=1
-
-isEmpty(HAVE_QRAWFONT) {
-    # We have to disable SVG Fonts, which rely on the fast path.
-    DEFINES -= ENABLE_SVG_FONTS=1
-    DEFINES += ENABLE_SVG_FONTS=0
+!contains(DEFINES, HAVE_QRAWFONT=.) {
+    # Use of QRawFont in Qt 5:
+    haveQt(5): DEFINES += HAVE_QRAWFONT=1
 }
 
 # We need fontconfig to set up the test fonts for DumpRenderTree and WebKitTestRunner.
@@ -75,64 +73,8 @@
     haveQt(5):contains(config_test_libxslt, yes): DEFINES += ENABLE_XSLT=1
 }
 
-# Feature defines: for web-facing features only
-!contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=.): DEFINES += ENABLE_JAVASCRIPT_DEBUGGER=1
-!contains(DEFINES, ENABLE_GAMEPAD=.): DEFINES += ENABLE_GAMEPAD=0
-!contains(DEFINES, ENABLE_SQL_DATABASE=.): DEFINES += ENABLE_SQL_DATABASE=1
-!contains(DEFINES, ENABLE_ICONDATABASE=.): DEFINES += ENABLE_ICONDATABASE=1
-!contains(DEFINES, ENABLE_CHANNEL_MESSAGING=.): DEFINES += ENABLE_CHANNEL_MESSAGING=1
-!contains(DEFINES, ENABLE_DIRECTORY_UPLOAD=.): DEFINES += ENABLE_DIRECTORY_UPLOAD=0
-!contains(DEFINES, ENABLE_FILE_SYSTEM=.): DEFINES += ENABLE_FILE_SYSTEM=0
-!contains(DEFINES, ENABLE_QUOTA=.): DEFINES += ENABLE_QUOTA=0
-!contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=.): DEFINES += ENABLE_DASHBOARD_SUPPORT=0
-!contains(DEFINES, ENABLE_FILTERS=.): DEFINES += ENABLE_FILTERS=1
-!contains(DEFINES, ENABLE_CSS_FILTERS=.): DEFINES += ENABLE_CSS_FILTERS=1
-!contains(DEFINES, ENABLE_SHARED_WORKERS=.): DEFINES += ENABLE_SHARED_WORKERS=1
-!contains(DEFINES, ENABLE_SHADOW_DOM=.): DEFINES += ENABLE_SHADOW_DOM=0
-!contains(DEFINES, ENABLE_WORKERS=.): DEFINES += ENABLE_WORKERS=1
-!contains(DEFINES, ENABLE_DETAILS=.): DEFINES += ENABLE_DETAILS=1
-!contains(DEFINES, ENABLE_METER_TAG=.): DEFINES += ENABLE_METER_TAG=1
-!contains(DEFINES, ENABLE_MHTML=.): DEFINES += ENABLE_MHTML=0
-!contains(DEFINES, ENABLE_MICRODATA=.): DEFINES += ENABLE_MICRODATA=0
-!contains(DEFINES, ENABLE_PROGRESS_TAG=.): DEFINES += ENABLE_PROGRESS_TAG=1
-!contains(DEFINES, ENABLE_BLOB=.): DEFINES += ENABLE_BLOB=1
-!contains(DEFINES, ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=.): DEFINES += ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1
-!contains(DEFINES, ENABLE_LEGACY_NOTIFICATIONS=.): DEFINES += ENABLE_LEGACY_NOTIFICATIONS=1
-!contains(DEFINES, ENABLE_NOTIFICATIONS=.): DEFINES += ENABLE_NOTIFICATIONS=1
-!contains(DEFINES, ENABLE_INPUT_TYPE_COLOR=.): DEFINES += ENABLE_INPUT_TYPE_COLOR=0
-!contains(DEFINES, ENABLE_INPUT_SPEECH=.): DEFINES += ENABLE_INPUT_SPEECH=0
-!contains(DEFINES, ENABLE_SCRIPTED_SPEECH=.): DEFINES += ENABLE_SCRIPTED_SPEECH=0
-!contains(DEFINES, ENABLE_INSPECTOR=.): DEFINES += ENABLE_INSPECTOR=1
-!contains(DEFINES, ENABLE_3D_RENDERING=.): DEFINES += ENABLE_3D_RENDERING=1
-!contains(DEFINES, ENABLE_WEB_AUDIO=.): DEFINES += ENABLE_WEB_AUDIO=0
-!contains(DEFINES, ENABLE_MEDIA_SOURCE=.): DEFINES += ENABLE_MEDIA_SOURCE=0
-!contains(DEFINES, ENABLE_MEDIA_STATISTICS=.): DEFINES += ENABLE_MEDIA_STATISTICS=0
-!contains(DEFINES, ENABLE_MEDIA_STREAM=.): DEFINES += ENABLE_MEDIA_STREAM=0
-!contains(DEFINES, ENABLE_VIDEO_TRACK=.): DEFINES += ENABLE_VIDEO_TRACK=0
-!contains(DEFINES, ENABLE_TOUCH_ICON_LOADING=.): DEFINES += ENABLE_TOUCH_ICON_LOADING=0
-!contains(DEFINES, ENABLE_ANIMATION_API=.): DEFINES += ENABLE_ANIMATION_API=0
-!contains(DEFINES, ENABLE_TOUCH_ADJUSTMENT=.): DEFINES += ENABLE_TOUCH_ADJUSTMENT=1
-!contains(DEFINES, ENABLE_FAST_MOBILE_SCROLLING=.): DEFINES += ENABLE_FAST_MOBILE_SCROLLING=1
-!contains(DEFINES, ENABLE_PAGE_VISIBILITY_API=.): DEFINES += ENABLE_PAGE_VISIBILITY_API=1
-
-# Policy decisions: for using a particular third-party library or optional OS service
 !contains(DEFINES, WTF_USE_QT_IMAGE_DECODER=.): DEFINES += WTF_USE_QT_IMAGE_DECODER=1
 
-# Enabled in Source/_javascript_Core/wtf/Platform.h if not set
-# We have to do the same to be able to disable the feature in build-webkit
-!contains(DEFINES, ENABLE_FTPDIR=.): DEFINES += ENABLE_FTPDIR=1
-
-# SVG support
-!contains(DEFINES, ENABLE_SVG=0) {
-    !contains(DEFINES, ENABLE_SVG=.): DEFINES += ENABLE_SVG=1
-    !contains(DEFINES, ENABLE_SVG_FONTS=.): DEFINES += ENABLE_SVG_FONTS=1
-} else {
-    DEFINES += ENABLE_SVG_FONTS=0
-}
-
-# HTML5 datalist support
-!contains(DEFINES, ENABLE_DATALIST=.): DEFINES += ENABLE_DATALIST=1
-
 # Tiled Backing Store support
 !contains(DEFINES, WTF_USE_TILED_BACKING_STORE=.): DEFINES += WTF_USE_TILED_BACKING_STORE=1
 
@@ -140,13 +82,11 @@
 !contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=.) {
     unix:haveQt(4)|win32-*:!embedded:!wince*: {
         DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1
-    } else {
-        DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0
     }
 }
 
 # Netscape plugins support for WebKit2
-!contains(DEFINES, PLUGIN_ARCHITECTURE_UNSUPPORTED) {
+!contains(DEFINES, PLUGIN_ARCHITECTURE_UNSUPPORTED=.) {
     no_webkit2 {
         DEFINES += PLUGIN_ARCHITECTURE_UNSUPPORTED=1
     } else {
@@ -165,34 +105,19 @@
 haveQt(4)|!isEmpty(QT.widgets.name): DEFINES += HAVE_QSTYLE=1
 
 # WebGL support
-contains(QT_CONFIG, opengl):!win32-* {
-    !contains(DEFINES, ENABLE_WEBGL=.): DEFINES += ENABLE_WEBGL=1
-} else {
-    DEFINES += ENABLE_WEBGL=0
+!contains(DEFINES, ENABLE_WEBGL=.) {
+    contains(QT_CONFIG, opengl):!win32-*: DEFINES += ENABLE_WEBGL=1
 }
 
-# Web Socket support.
-!contains(DEFINES, ENABLE_WEB_SOCKETS=.): DEFINES += ENABLE_WEB_SOCKETS=1
-
-# Web Timing support.
-!contains(DEFINES, ENABLE_WEB_TIMING=.): DEFINES += ENABLE_WEB_TIMING=1
-
-!contains(DEFINES, ENABLE_REQUEST_ANIMATION_FRAME=.): DEFINES += ENABLE_REQUEST_ANIMATION_FRAME=1
-
-# XSLT support with QtXmlPatterns
 !contains(DEFINES, ENABLE_XSLT=.) {
-    contains(QT_CONFIG, xmlpatterns):DEFINES += ENABLE_XSLT=1
-    else:DEFINES += ENABLE_XSLT=0
-}
+    # Using QtXmlPatterns
+    contains(QT_CONFIG, xmlpatterns): DEFINES += ENABLE_XSLT=1
 
-# This is experimental and only works on Linux so far.
-!contains(DEFINES, ENABLE_XSLT=.) {
-    contains(DEFINES, WTF_USE_LIBXML2=1) {
-        DEFINES += ENABLE_XSLT=1
-    }
+    # Or libxml2 -- experimental and only works on Linux so far
+    contains(DEFINES, WTF_USE_LIBXML2=1): DEFINES += ENABLE_XSLT=1
 }
 
-# geolocation support if QtMobility exists
+# Geolocation support if QtMobility exists
 !contains(DEFINES, ENABLE_GEOLOCATION=.) {
     contains(MOBILITY_CONFIG, location)|contains(QT_CONFIG, location) {
        DEFINES += ENABLE_GEOLOCATION=1
@@ -210,110 +135,97 @@
     contains(MOBILITY_CONFIG, sensors) {
         !contains(DEFINES, ENABLE_ORIENTATION_EVENTS=.): DEFINES += ENABLE_ORIENTATION_EVENTS=1
         !contains(DEFINES, ENABLE_DEVICE_ORIENTATION=.): DEFINES += ENABLE_DEVICE_ORIENTATION=1
+
+        # FIXME: These should not be here, but in the target that needs them
         CONFIG *= mobility
         MOBILITY *= sensors
     }
 }
 
-!contains(DEFINES, ENABLE_TOUCH_EVENTS=.): DEFINES += ENABLE_TOUCH_EVENTS=1
-!contains(DEFINES, ENABLE_GESTURE_EVENTS=.): DEFINES += ENABLE_GESTURE_EVENTS=1
-
 # HTML5 Media Support
-# We require QtMultimedia
 !contains(DEFINES, ENABLE_VIDEO=.) {
-    DEFINES -= ENABLE_VIDEO=1
-    DEFINES += ENABLE_VIDEO=0
-
     mac:!contains(DEFINES, USE_QTMULTIMEDIA=1) {
-        DEFINES -= ENABLE_VIDEO=0
         DEFINES += ENABLE_VIDEO=1
         DEFINES += WTF_USE_QTKIT=1
-        DEFINES -= WTF_USE_QTKIT=0
     } else: linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) {
         !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 \'gstreamer-0.10 >= 0.10.30\' \'gstreamer-plugins-base-0.10 >= 0.10.30\'): {
-            DEFINES -= ENABLE_VIDEO=0
             DEFINES += ENABLE_VIDEO=1
             DEFINES += WTF_USE_GSTREAMER=1
-            DEFINES -= WTF_USE_GSTREAMER=0
         } else {
             message("Disabling video due the lack of GLib/Gio/GStreamer.")
-            DEFINES -= ENABLE_VIDEO=1
-            DEFINES += ENABLE_VIDEO=0
         }
     } else: contains(MOBILITY_CONFIG, multimedia) {
-        DEFINES -= ENABLE_VIDEO=0
         DEFINES += ENABLE_VIDEO=1
-        DEFINES -= WTF_USE_QT_MULTIMEDIA=0
         DEFINES += WTF_USE_QT_MULTIMEDIA=1
     }
 }
 
 !contains(DEFINES, ENABLE_FULLSCREEN_API=.) {
-    no_webkit2 {
-        DEFINES += ENABLE_FULLSCREEN_API=0
-    } else {
-        DEFINES += ENABLE_FULLSCREEN_API=1
-    }
+    !no_webkit2: DEFINES += ENABLE_FULLSCREEN_API=1
 }
 
-contains(DEFINES, ENABLE_INSPECTOR=0) {
-    DEFINES -= ENABLE_JAVASCRIPT_DEBUGGER=1
-    DEFINES += ENABLE_JAVASCRIPT_DEBUGGER=0
-}
 haveQt(4) {
     haveQtModule(declarative): DEFINES += HAVE_QQUICK1=1
+} else {
+    # FIXME: Add Qt 5 QQuick1 support once QDeclarativeEngine in QQuick2
+    # is called QmlEngine and it is safe for us to use QQuick1 again.
 }
-### FIXME: Add Qt 5 QQuick1 support once QDeclarativeEngine in QQuick2
-### is called QmlEngine and it is safe for us to use QQuick1 again.
 
+!contains(DEFINES, WTF_USE_GRAPHICS_SURFACE=.) {
+    haveQt(5):mac: DEFINES += WTF_USE_GRAPHICS_SURFACE=1
+}
+
+# -------------- Fill in static defaults --------------
+#
+# Only applies to features that don't have a dynamic default
+# or have been overriden on the command line.
+
+include(features.pri)
+
+for(feature, FEATURE_DEFAULTS) {
+    anyFeatureDefine = $$replace(feature, =.$, =.)
+    !contains(DEFINES, $$anyFeatureDefine) {
+        DEFINES += $$feature
+    }
+}
+
+# ---------------- Sanitize defines -------------------
+
+# Disable SVG fonts if SVG is disabled or we don't have raw fonts
+contains(DEFINES, ENABLE_SVG=0)|!contains(DEFINES, HAVE_QRAWFONT=1): DEFINES += ENABLE_SVG_FONTS=0
+
+# _javascript_ debugger requires the inspector
+contains(DEFINES, ENABLE_INSPECTOR=0): DEFINES += ENABLE_JAVASCRIPT_DEBUGGER=0
+
+# Remove conflicting defines. The preprocessor would take care of this
+# anyways, but doing it here makes for nicer command lines when building.
+for(define, DEFINES) {
+    parts = $$split(define, =)
+    value = $$member(parts, 1, 1)
+    isEmpty(value): next()
+
+    equals(value, 1): opposite = $$replace(define, =1$, =0)
+    equals(value, 0): opposite = $$replace(define, =0$, =1)
+
+    # Is there a later define that overrides this one?
+    contains(DEFINES, $$opposite): DEFINES -= $$define
+}
+
+# --------- Make features available to JSC ------------
+
 ## Forward enabled feature macros to _javascript_ enabled features macros
 FEATURE_DEFINES_JAVASCRIPT = LANGUAGE_JAVASCRIPT=1
 v8: FEATURE_DEFINES_JAVASCRIPT += V8_BINDING=1
-contains(DEFINES, ENABLE_CHANNEL_MESSAGING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_CHANNEL_MESSAGING=1
-contains(DEFINES, ENABLE_ORIENTATION_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_ORIENTATION_EVENTS=1
-contains(DEFINES, ENABLE_SQL_DATABASE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SQL_DATABASE=1
-contains(DEFINES, ENABLE_DATALIST=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATALIST=1
-contains(DEFINES, ENABLE_SHARED_SCRIPT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_SCRIPT=1
-contains(DEFINES, ENABLE_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WORKERS=1
-contains(DEFINES, ENABLE_SHARED_WORKERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHARED_WORKERS=1
-contains(DEFINES, ENABLE_SHADOW_DOM=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SHADOW_DOM=1
-contains(DEFINES, ENABLE_VIDEO=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO=1
-contains(DEFINES, ENABLE_XSLT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1
-contains(DEFINES, ENABLE_FILTERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_FILTERS=1
-contains(DEFINES, ENABLE_CSS_FILTERS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_CSS_FILTERS=1
-contains(DEFINES, ENABLE_SVG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG=1
-contains(DEFINES, ENABLE_SVG_FONTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG_FONTS=1
-contains(DEFINES, ENABLE_JAVASCRIPT_DEBUGGER=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_JAVASCRIPT_DEBUGGER=1
-contains(DEFINES, ENABLE_GAMEPAD=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_GAMEPAD=1
-contains(DEFINES, ENABLE_WEB_SOCKETS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_SOCKETS=1
-contains(DEFINES, ENABLE_WEB_TIMING=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_WEB_TIMING=1
-contains(DEFINES, ENABLE_TOUCH_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TOUCH_EVENTS=1
-contains(DEFINES, ENABLE_GESTURE_EVENTS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_GESTURE_EVENTS=1
-contains(DEFINES, WTF_USE_TILED_BACKING_STORE=1): FEATURE_DEFINES_JAVASCRIPT += WTF_USE_TILED_BACKING_STORE=1
-contains(DEFINES, ENABLE_LEGACY_NOTIFICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_LEGACY_NOTIFICATIONS=1
-contains(DEFINES, ENABLE_NOTIFICATIONS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_NOTIFICATIONS=1
-contains(DEFINES, ENABLE_DETAILS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DETAILS=1
-contains(DEFINES, ENABLE_METER_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_METER_TAG=1
-contains(DEFINES, ENABLE_PROGRESS_TAG=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_PROGRESS_TAG=1
-contains(DEFINES, ENABLE_GEOLOCATION=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_GEOLOCATION=1
-contains(DEFINES, ENABLE_BLOB=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_BLOB=1
-contains(DEFINES, ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1
-contains(DEFINES, ENABLE_MEDIA_SOURCE=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_MEDIA_SOURCE=1
-contains(DEFINES, ENABLE_MEDIA_STATISTICS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_MEDIA_STATISTICS=1
-contains(DEFINES, ENABLE_MEDIA_STREAM=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_MEDIA_STREAM=1
-contains(DEFINES, ENABLE_VIDEO_TRACK=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_VIDEO_TRACK=1
-contains(DEFINES, ENABLE_DATA_TRANSFER_ITEMS=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_DATA_TRANSFER_ITEMS=1
-contains(DEFINES, ENABLE_FULLSCREEN_API=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_FULLSCREEN_API=1
-contains(DEFINES, ENABLE_REQUEST_ANIMATION_FRAME=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_REQUEST_ANIMATION_FRAME=1
-contains(DEFINES, ENABLE_TOUCH_ADJUSTMENT=1): FEATURE_DEFINES_JAVASCRIPT += ENABLE_TOUCH_ADJUSTMENT=1
 
-v8 {
-    # This have to be placed here because command line arguments, such as CONFIG+=v8 are
-    # not considered by qmake when processing defaults_pre.prf.
-    root_project_file: message("Building WebKit2 with v8 is not supported currently. Disabling WebKit2.")
-    CONFIG += no_webkit2
+for(define, DEFINES) {
+    feature_define = $$find(define, ^ENABLE_.+=.$)
+    isEmpty(feature_define): next()
+
+    FEATURE_DEFINES_JAVASCRIPT += $$feature_define
 }
 
+# ---------------------- The end ----------------------
+
 # Used to compute defaults for the build-webkit script
 # Don't place anything after this!
 CONFIG(compute_defaults) {

Added: trunk/Tools/qmake/mkspecs/features/features.pri (0 => 116107)


--- trunk/Tools/qmake/mkspecs/features/features.pri	                        (rev 0)
+++ trunk/Tools/qmake/mkspecs/features/features.pri	2012-05-04 16:09:33 UTC (rev 116107)
@@ -0,0 +1,68 @@
+# -------------------------------------------------------------------
+# This file contains a static list of default values for all the
+# ENABLE_FOO features of WebKit.
+#
+# If a feature is enabled, it most likely does not have any detection
+# in features.prf except basic sanitazion. If a feature is disabled it
+# will have detection in features.prf, unless it's something we
+# completely disable.
+#
+# FIXME: Add warning about auto-generating when Features.py land
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+FEATURE_DEFAULTS = \
+    ENABLE_3D_RENDERING=1 \
+    ENABLE_ANIMATION_API=0 \
+    ENABLE_BLOB=1 \
+    ENABLE_CHANNEL_MESSAGING=1 \
+    ENABLE_CSS_FILTERS=1 \
+    ENABLE_DASHBOARD_SUPPORT=0 \
+    ENABLE_DATALIST=1 \
+    ENABLE_DETAILS=1 \
+    ENABLE_DIRECTORY_UPLOAD=0 \
+    ENABLE_FAST_MOBILE_SCROLLING=1 \
+    ENABLE_FILE_SYSTEM=0 \
+    ENABLE_FILTERS=1 \
+    ENABLE_FTPDIR=1 \
+    ENABLE_FULLSCREEN_API=0 \
+    ENABLE_GAMEPAD=0 \
+    ENABLE_GEOLOCATION=0 \
+    ENABLE_GESTURE_EVENTS=1 \
+    ENABLE_ICONDATABASE=1 \
+    ENABLE_INPUT_SPEECH=0 \
+    ENABLE_INPUT_TYPE_COLOR=0 \
+    ENABLE_INSPECTOR=1 \
+    ENABLE_JAVASCRIPT_DEBUGGER=1 \
+    ENABLE_LEGACY_NOTIFICATIONS=1 \
+    ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1 \
+    ENABLE_MEDIA_SOURCE=0 \
+    ENABLE_MEDIA_STATISTICS=0 \
+    ENABLE_MEDIA_STREAM=0 \
+    ENABLE_METER_TAG=1 \
+    ENABLE_MHTML=0 \
+    ENABLE_MICRODATA=0 \
+    ENABLE_NETSCAPE_PLUGIN_API=0 \
+    ENABLE_NOTIFICATIONS=1 \
+    ENABLE_PAGE_VISIBILITY_API=1 \
+    ENABLE_PROGRESS_TAG=1 \
+    ENABLE_QUOTA=0 \
+    ENABLE_REQUEST_ANIMATION_FRAME=1 \
+    ENABLE_SCRIPTED_SPEECH=0 \
+    ENABLE_SHADOW_DOM=0 \
+    ENABLE_SHARED_WORKERS=1 \
+    ENABLE_SQL_DATABASE=1 \
+    ENABLE_SVG=1 \
+    ENABLE_SVG_FONTS=0 \
+    ENABLE_TOUCH_ADJUSTMENT=1 \
+    ENABLE_TOUCH_EVENTS=1 \
+    ENABLE_TOUCH_ICON_LOADING=0 \
+    ENABLE_VIDEO=0 \
+    ENABLE_VIDEO_TRACK=0 \
+    ENABLE_WEBGL=0 \
+    ENABLE_WEB_AUDIO=0 \
+    ENABLE_WEB_SOCKETS=1 \
+    ENABLE_WEB_TIMING=1 \
+    ENABLE_WORKERS=1 \
+    ENABLE_XSLT=0
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to