Title: [121766] trunk
Revision
121766
Author
[email protected]
Date
2012-07-03 08:23:20 -0700 (Tue, 03 Jul 2012)

Log Message

[Qt] Make use of .qmake.cache for caching features

Instead of loading() features from the files that need them (and re-running
a bunch of checks), we now run feature detection as part of configure.pro,
and have build-webkit write the computed feature-defines and CONFIG to
.qmake.cache, which is then loaded by qmake _before_ even defaults_pre
when building WebKit.pro.

At some point we'll be able to selectivly prevent running of config tests
in configure.pro, which means we don't need a separate code-path for
the build-webkit --help case.

We should also move the code in build-webkit that now uses .webkit.config
to detect clean builds, to use .qmake.cache, since we now store the same
thing there.

Original patch by Oswald Buddenhagen <[email protected]>

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

Reviewed by Tor Arne Vestbø.

Modified Paths

Added Paths

Diff

Modified: trunk/ChangeLog (121765 => 121766)


--- trunk/ChangeLog	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/ChangeLog	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,3 +1,30 @@
+2012-07-03  Tor Arne Vestbø  <[email protected]>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <[email protected]>
+
+        Reviewed by Tor Arne Vestbø.
+
+        * Source/QtWebKit.pro:
+        * Source/api.pri:
+        * Source/tests.pri:
+        * WebKit.pro:
+
 2012-07-03  Christophe Dumez  <[email protected]>
 
         [EFL] Enable MICRODATA support

Modified: trunk/Source/QtWebKit.pro (121765 => 121766)


--- trunk/Source/QtWebKit.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/QtWebKit.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -4,8 +4,6 @@
 # See 'Tools/qmake/README' for an overview of the build system
 # -------------------------------------------------------------------
 
-load(features)
-
 TEMPLATE = subdirs
 CONFIG += ordered
 

Modified: trunk/Source/WTF/ChangeLog (121765 => 121766)


--- trunk/Source/WTF/ChangeLog	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WTF/ChangeLog	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,3 +1,27 @@
+2012-07-03  Tor Arne Vestbø  <[email protected]>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <[email protected]>
+
+        Reviewed by Tor Arne Vestbø.
+
+        * WTF.pri:
+
 2012-07-03  Jocelyn Turcotte  <[email protected]>  Joel Dillon <[email protected]>
 
         [Qt][Win] Fix broken QtWebKit5.lib linking

Modified: trunk/Source/WTF/WTF.pri (121765 => 121766)


--- trunk/Source/WTF/WTF.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WTF/WTF.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -5,8 +5,6 @@
 # See 'Tools/qmake/README' for an overview of the build system
 # -------------------------------------------------------------------
 
-load(features)
-
 # All external modules should include WTF headers by prefixing with "wtf" (#include <wtf/some/thing.h>).
 INCLUDEPATH += $$PWD
 

Modified: trunk/Source/WebCore/ChangeLog (121765 => 121766)


--- trunk/Source/WebCore/ChangeLog	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebCore/ChangeLog	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,3 +1,30 @@
+2012-07-03  Tor Arne Vestbø  <[email protected]>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=90461
+
+        Reviewed by Tor Arne Vestbø.
+
+        * DerivedSources.pri:
+        * WebCore.pri:
+
 2012-07-03  Vsevolod Vlasov  <[email protected]>
 
         inspector/debugger/script-snippet-model.html fails

Modified: trunk/Source/WebCore/DerivedSources.pri (121765 => 121766)


--- trunk/Source/WebCore/DerivedSources.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebCore/DerivedSources.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -11,8 +11,6 @@
 sanitizedFile = $$toSanitizedPath($$_FILE_)
 equals(sanitizedFile, $$toSanitizedPath($$_PRO_FILE_)):TEMPLATE = derived
 
-load(features)
-
 mac {
     # FIXME: This runs the perl script every time. Is there a way we can run it only when deps change?
     fwheader_generator.commands = perl $${ROOT_WEBKIT_DIR}/Source/WebKit2/Scripts/generate-forwarding-headers.pl $${ROOT_WEBKIT_DIR}/Source/WebCore $${ROOT_BUILD_DIR}/Source/include mac

Modified: trunk/Source/WebCore/WebCore.pri (121765 => 121766)


--- trunk/Source/WebCore/WebCore.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebCore/WebCore.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -5,8 +5,6 @@
 # See 'Tools/qmake/README' for an overview of the build system
 # -------------------------------------------------------------------
 
-load(features)
-
 SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source/WebCore
 
 # We enable TextureMapper by default; remove this line to enable GraphicsLayerQt.

Modified: trunk/Source/WebKit/qt/ChangeLog (121765 => 121766)


--- trunk/Source/WebKit/qt/ChangeLog	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebKit/qt/ChangeLog	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,3 +1,29 @@
+2012-07-03  Tor Arne Vestbø  <[email protected]>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <[email protected]>
+
+        Reviewed by Tor Arne Vestbø.
+
+        * declarative/declarative.pro:
+        * declarative/public.pri:
+        * tests/qgraphicswebview/qgraphicswebview.pro:
+
 2012-07-02  No'am Rosenthal  <[email protected]>
 
         [Qt] Get rid of GraphicsLayerQt

Modified: trunk/Source/WebKit/qt/declarative/declarative.pro (121765 => 121766)


--- trunk/Source/WebKit/qt/declarative/declarative.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebKit/qt/declarative/declarative.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -7,8 +7,6 @@
 TEMPLATE = subdirs
 CONFIG += ordered
 
-load(features)
-
 public_api.file = public.pri
 public_api.makefile = Makefile.declarative.public
 SUBDIRS += public_api

Modified: trunk/Source/WebKit/qt/declarative/public.pri (121765 => 121766)


--- trunk/Source/WebKit/qt/declarative/public.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebKit/qt/declarative/public.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -11,8 +11,6 @@
 
 CONFIG += qt plugin
 
-load(features)
-
 QMLDIRFILE = $${_PRO_FILE_PWD_}/qmldir
 copy2build.input = QMLDIRFILE
 copy2build.output = $${ROOT_BUILD_DIR}/imports/$${TARGET.module_name}/qmldir

Modified: trunk/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro (121765 => 121766)


--- trunk/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebKit/qt/tests/qgraphicswebview/qgraphicswebview.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,7 +1,6 @@
 include(../tests.pri)
 exists($${TARGET}.qrc):RESOURCES += $${TARGET}.qrc
 
-load(features)
 contains(DEFINES, ENABLE_WEBGL=1) {
     QT += opengl
 }

Modified: trunk/Source/WebKit2/ChangeLog (121765 => 121766)


--- trunk/Source/WebKit2/ChangeLog	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebKit2/ChangeLog	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,3 +1,28 @@
+2012-07-03  Tor Arne Vestbø  <[email protected]>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <[email protected]>
+
+        Reviewed by Tor Arne Vestbø.
+
+        * DerivedSources.pri:
+        * Target.pri:
+
 2012-07-03  Alexis Menard  <[email protected]>
 
         [Qt] When calling accept() on the FilePickerContextObject with an empty list, early return and call reject().

Modified: trunk/Source/WebKit2/DerivedSources.pri (121765 => 121766)


--- trunk/Source/WebKit2/DerivedSources.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebKit2/DerivedSources.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -11,8 +11,6 @@
 sanitizedFile = $$toSanitizedPath($$_FILE_)
 equals(sanitizedFile, $$toSanitizedPath($$_PRO_FILE_)):TEMPLATE = derived
 
-load(features)
-
 WEBCORE_GENERATED_SOURCES_DIR = ../WebCore/$${GENERATED_SOURCES_DESTDIR}
 
 SOURCE_DIR = $${ROOT_WEBKIT_DIR}/Source

Modified: trunk/Source/WebKit2/Target.pri (121765 => 121766)


--- trunk/Source/WebKit2/Target.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/WebKit2/Target.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -7,8 +7,6 @@
 TEMPLATE = lib
 TARGET = WebKit2
 
-load(features)
-
 include(WebKit2.pri)
 
 WEBKIT += wtf _javascript_core webcore

Modified: trunk/Source/api.pri (121765 => 121766)


--- trunk/Source/api.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/api.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -124,8 +124,6 @@
 
 runSyncQt() # Generate forwarding headers for the QtWebKit API
 
-load(features)
-
 WEBKIT += wtf
 
 !v8:WEBKIT += _javascript_core

Modified: trunk/Source/tests.pri (121765 => 121766)


--- trunk/Source/tests.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Source/tests.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -7,8 +7,6 @@
 TEMPLATE = subdirs
 CONFIG += ordered
 
-load(features)
-
 WEBKIT_TESTS_DIR = $$PWD/WebKit/qt/tests
 
 SUBDIRS += \

Modified: trunk/Tools/ChangeLog (121765 => 121766)


--- trunk/Tools/ChangeLog	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/ChangeLog	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,3 +1,40 @@
+2012-07-03  Tor Arne Vestbø  <[email protected]>
+
+        [Qt] Make use of .qmake.cache for caching features
+
+        Instead of loading() features from the files that need them (and re-running
+        a bunch of checks), we now run feature detection as part of configure.pro,
+        and have build-webkit write the computed feature-defines and CONFIG to
+        .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
+        when building WebKit.pro.
+
+        At some point we'll be able to selectivly prevent running of config tests
+        in configure.pro, which means we don't need a separate code-path for
+        the build-webkit --help case.
+
+        We should also move the code in build-webkit that now uses .webkit.config
+        to detect clean builds, to use .qmake.cache, since we now store the same
+        thing there.
+
+        Original patch by Oswald Buddenhagen <[email protected]>
+
+        Reviewed by Tor Arne Vestbø.
+
+        * DumpRenderTree/qt/DumpRenderTree.pro:
+        * QtTestBrowser/QtTestBrowser.pro:
+        * Scripts/webkitdirs.pm:
+        (qtFeatureDefaults):
+        (buildQMakeProjects):
+        * Tools.pro:
+        * WebKitTestRunner/InjectedBundle/DerivedSources.pri:
+        * WebKitTestRunner/InjectedBundle/Target.pri:
+        * WebKitTestRunner/Target.pri:
+        * qmake/.qmake.conf: Added.
+        * qmake/configure.pro:
+        * qmake/mkspecs/features/default_post.prf:
+        * qmake/mkspecs/features/default_pre.prf:
+        * qmake/mkspecs/features/features.prf:
+
 2012-07-03  Jocelyn Turcotte  <[email protected]>  Joel Dillon <[email protected]>
 
         [Qt][Win] Fix broken QtWebKit5.lib linking

Modified: trunk/Tools/DumpRenderTree/qt/DumpRenderTree.pro (121765 => 121766)


--- trunk/Tools/DumpRenderTree/qt/DumpRenderTree.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/DumpRenderTree/qt/DumpRenderTree.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -9,8 +9,6 @@
 TARGET = DumpRenderTree
 DESTDIR = $$ROOT_BUILD_DIR/bin
 
-load(features)
-
 WEBKIT += wtf webcore
 !v8: WEBKIT += _javascript_core
 

Modified: trunk/Tools/QtTestBrowser/QtTestBrowser.pro (121765 => 121766)


--- trunk/Tools/QtTestBrowser/QtTestBrowser.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/QtTestBrowser/QtTestBrowser.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -11,8 +11,6 @@
     $${ROOT_WEBKIT_DIR}/Tools/DumpRenderTree/qt/ \
     $${ROOT_WEBKIT_DIR}/Source/WTF
 
-load(features)
-
 SOURCES += \
     $${ROOT_WEBKIT_DIR}/Tools/DumpRenderTree/qt/QtInitializeTestFonts.cpp \
     locationedit.cpp \

Modified: trunk/Tools/Scripts/webkitdirs.pm (121765 => 121766)


--- trunk/Tools/Scripts/webkitdirs.pm	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/Scripts/webkitdirs.pm	2012-07-03 15:23:20 UTC (rev 121766)
@@ -824,24 +824,40 @@
 
     my $file;
     my @buildArgs;
+    my $qconfigs;
 
     if (@_) {
         @buildArgs = (@buildArgs, @{$_[0]});
+        $qconfigs = $_[1];
         my $dir = File::Spec->catfile(productDir(), "Tools", "qmake");
         File::Path::mkpath($dir);
         chdir $dir or die "Failed to cd into " . $dir . "\n";
         $file = File::Spec->catfile($qmakepath, "configure.pro");
     } else {
         # Do a quick check of the features without running the config tests
+        # FIXME: When Qt supports it, go through configure.pro but without config tests
         $file = File::Spec->catfile($qmakepath, "mkspecs", "features", "features.prf");
         push @buildArgs, "CONFIG+=compute_defaults";
     }
 
-    my $defaults = `$qmakecommand @buildArgs $file 2>&1`;
+    my @defaults = `$qmakecommand @buildArgs $file 2>&1`;
 
     my %qtFeatureDefaults;
-    while ($defaults =~ m/(\S+?)=(\S+?)/gi) {
-        $qtFeatureDefaults{$1}=$2;
+    for (@defaults) {
+        if (/ DEFINES: /) {
+            while (/(\S+?)=(\S+?)/gi) {
+                $qtFeatureDefaults{$1}=$2;
+            }
+        } elsif (/ CONFIG:(.*)$/) {
+            if (@_) {
+                $$qconfigs = $1;
+            }
+        } elsif (/Done computing defaults/) {
+            print "\n";
+            last;
+        } elsif (@_) {
+            print $_;
+        }
     }
 
     chdir $originalCwd;
@@ -2230,6 +2246,7 @@
     my ($projects, $clean, @buildParams) = @_;
 
     my @buildArgs = ();
+    my $qconfigs = "";
 
     my $make = qtMakeCommand($qmakebin);
     my $makeargs = "";
@@ -2286,7 +2303,7 @@
     File::Path::mkpath($dir);
     chdir $dir or die "Failed to cd into " . $dir . "\n";
 
-    my %defines = qtFeatureDefaults(\@buildArgs);
+    my %defines = qtFeatureDefaults(\@buildArgs, \$qconfigs);
 
     my $svnRevision = currentSVNRevision();
 
@@ -2295,6 +2312,8 @@
     my $pathToDefinesCache = File::Spec->catfile($dir, ".webkit.config");
     my $pathToOldDefinesFile = File::Spec->catfile($dir, "defaults.txt");
 
+    # FIXME: Get rid of .webkit.config and defaults.txt and move all the logic to .qmake.cache
+
     # Ease transition to new build layout
     if (-e $pathToOldDefinesFile) {
         print "Old build layout detected";
@@ -2357,13 +2376,24 @@
 
             # After removing WebKitBuild directory, we have to call qtFeatureDefaults()
             # to run config tests and generate the removed Tools/qmake/.qmake.cache again.
-            qtFeatureDefaults(\@buildArgs);
+            qtFeatureDefaults(\@buildArgs, \$qconfigs);
         #}
 
         # Still trigger an incremental build
         $buildHint = "incremental";
     }
 
+    if ($buildHint eq "incremental") {
+        my $qmakeDefines = "DEFINES +=";
+        foreach my $key (sort keys %defines) {
+            $qmakeDefines .= " \\\n    $key=$defines{$key}";
+        }
+        open(QMAKE_CACHE, ">.qmake.cache") or die "Cannot create .qmake.cache!\n";
+        print QMAKE_CACHE "CONFIG += webkit_configured $qconfigs\n";
+        print QMAKE_CACHE $qmakeDefines."\n";
+        close(QMAKE_CACHE);
+    }
+
     # Save config up-front so we can detect changes to the build config even
     # when the user re-configures after aborting the build.
     open(DEFAULTS, ">$pathToDefinesCache");

Modified: trunk/Tools/Tools.pro (121765 => 121766)


--- trunk/Tools/Tools.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/Tools.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -7,8 +7,6 @@
 TEMPLATE = subdirs
 CONFIG += ordered
 
-load(features)
-
 !no_webkit1 {
     SUBDIRS += QtTestBrowser/QtTestBrowser.pro
     SUBDIRS += DumpRenderTree/qt/DumpRenderTree.pro

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/DerivedSources.pri (121765 => 121766)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/DerivedSources.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/DerivedSources.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -11,8 +11,6 @@
 sanitizedFile = $$toSanitizedPath($$_FILE_)
 equals(sanitizedFile, $$toSanitizedPath($$_PRO_FILE_)):TEMPLATE = derived
 
-load(features)
-
 IDL_BINDINGS += \
     Bindings/AccessibilityController.idl \
     Bindings/AccessibilityTextMarker.idl \

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Target.pri (121765 => 121766)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/Target.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Target.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -52,8 +52,6 @@
 
 QT += declarative widgets webkit
 
-load(features)
-
 WEBKIT += wtf _javascript_core webcore
 
 CONFIG += plugin rpath

Modified: trunk/Tools/WebKitTestRunner/Target.pri (121765 => 121766)


--- trunk/Tools/WebKitTestRunner/Target.pri	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/WebKitTestRunner/Target.pri	2012-07-03 15:23:20 UTC (rev 121766)
@@ -27,8 +27,6 @@
 
 QT = core gui widgets network declarative testlib quick quick-private webkit
 
-load(features)
-
 WEBKIT += wtf _javascript_core webkit2
 
 DEFINES += USE_SYSTEM_MALLOC=1

Added: trunk/Tools/qmake/.qmake.conf (0 => 121766)


--- trunk/Tools/qmake/.qmake.conf	                        (rev 0)
+++ trunk/Tools/qmake/.qmake.conf	2012-07-03 15:23:20 UTC (rev 121766)
@@ -0,0 +1,2 @@
+# This file is only here to isolate the configure project
+# from the rest of the tree.

Modified: trunk/Tools/qmake/configure.pro (121765 => 121766)


--- trunk/Tools/qmake/configure.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/qmake/configure.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -1,3 +1,18 @@
+# -------------------------------------------------------------------
+# This file is used by build-webkit to compute the various feature
+# defines, which are then cached in .qmake.cache.
+#
+# See 'Tools/qmake/README' for an overview of the build system
+# -------------------------------------------------------------------
+
+# Will compute features based on command line arguments, config tests,
+# dependency availability, and defaults.
 load(features)
-message($$DEFINES)
+
+# Compute delta
+CONFIG -= $$BASE_CONFIG
+DEFINES -= $$BASE_DEFINES
+
+message(CONFIG: $$CONFIG)
+message(DEFINES: $$DEFINES)
 error("Done computing defaults")

Modified: trunk/Tools/qmake/mkspecs/features/default_post.prf (121765 => 121766)


--- trunk/Tools/qmake/mkspecs/features/default_post.prf	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/qmake/mkspecs/features/default_post.prf	2012-07-03 15:23:20 UTC (rev 121766)
@@ -5,8 +5,6 @@
 # See 'Tools/qmake/README' for an overview of the build system
 # -------------------------------------------------------------------
 
-load(features)
-
 # Flag that we're now done processing the project file. This allows
 # a feature to distinguish between being processed due to a load()
 # or include() and a CONFIG += feature.

Modified: trunk/Tools/qmake/mkspecs/features/default_pre.prf (121765 => 121766)


--- trunk/Tools/qmake/mkspecs/features/default_pre.prf	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/qmake/mkspecs/features/default_pre.prf	2012-07-03 15:23:20 UTC (rev 121766)
@@ -27,10 +27,13 @@
 WEBKIT_SUBDIR = $$replace(_PRO_FILE_PWD_, $${ROOT_WEBKIT_DIR},)
 ROOT_BUILD_DIR = $$replace(OUT_PWD, $${WEBKIT_SUBDIR}$,)
 
+# Detect if we're running the initial configure step
+pro_file_name = $$basename(_PRO_FILE_)
+equals(pro_file_name, configure.pro): CONFIG += configure_pass
+
 # We want the QtWebKit API forwarding includes to live in the root build dir,
 # except when we are running the config.tests in Tools/qmake.
-pro_file_name = $$basename(_PRO_FILE_)
-!equals(pro_file_name, configure.pro): QMAKE_SYNCQT_OUTDIR = $$ROOT_BUILD_DIR
+!configure_pass: QMAKE_SYNCQT_OUTDIR = $$ROOT_BUILD_DIR
 
 # Load Qt's defaults after we've resolved the build directory. This will also
 # run syncqt if there is a sync.profile in the $$_PRO_FILE_PWD_. We never want
@@ -123,3 +126,30 @@
 
 # Set some defaults for specific platforms
 CONFIG += include_webinspector
+
+# Try to locate sqlite3 source (for WebCore)
+SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
+isEmpty(SQLITE3SRCDIR) {
+    haveQt(5): SQLITE3SRCDIR = $$QT.core.sources/../3rdparty/sqlite/
+    else: SQLITE3SRCDIR = $$[QT_INSTALL_PREFIX]/src/3rdparty/sqlite/
+}
+
+# --------- 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
+
+for(define, DEFINES) {
+    enabled_feature_define = $$find(define, ^ENABLE_.+=1$)
+    isEmpty(enabled_feature_define): next()
+
+    FEATURE_DEFINES_JAVASCRIPT += $$enabled_feature_define
+}
+
+configure_pass {
+    # Save the base config and defines so we can compute the delta between
+    # what features.prf introduced and what was already there.
+    BASE_CONFIG = $$CONFIG
+    BASE_DEFINES = $$DEFINES
+}

Modified: trunk/Tools/qmake/mkspecs/features/features.prf (121765 => 121766)


--- trunk/Tools/qmake/mkspecs/features/features.prf	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/Tools/qmake/mkspecs/features/features.prf	2012-07-03 15:23:20 UTC (rev 121766)
@@ -20,13 +20,6 @@
 ## load mobilityconfig if mobility is available
 load(mobilityconfig, true)
 
-# Try to locate sqlite3 source
-SQLITE3SRCDIR = $$(SQLITE3SRCDIR)
-isEmpty(SQLITE3SRCDIR) {
-    haveQt(5):SQLITE3SRCDIR = $$QT.core.sources/../3rdparty/sqlite/
-    else:SQLITE3SRCDIR = $$[QT_INSTALL_PREFIX]/src/3rdparty/sqlite/
-}
-
 # ---------- Dynamically detect optional features -------------
 #
 # Please note, static feature defaults go in features.pri
@@ -220,24 +213,13 @@
     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
-
-for(define, DEFINES) {
-    enabled_feature_define = $$find(define, ^ENABLE_.+=1$)
-    isEmpty(enabled_feature_define): next()
-
-    FEATURE_DEFINES_JAVASCRIPT += $$enabled_feature_define
-}
-
 # ---------------------- The end ----------------------
 
 # Used to compute defaults for the build-webkit script
 # Don't place anything after this!
 CONFIG(compute_defaults) {
-    message($$DEFINES)
+    # FIXME: We should have configure.pro do this when the config tests
+    # can be selectivly run.
+    message(DEFINES: $$DEFINES)
     error("Done computing defaults")
 }

Modified: trunk/WebKit.pro (121765 => 121766)


--- trunk/WebKit.pro	2012-07-03 15:00:09 UTC (rev 121765)
+++ trunk/WebKit.pro	2012-07-03 15:23:20 UTC (rev 121766)
@@ -8,8 +8,6 @@
 TEMPLATE = subdirs
 CONFIG += ordered
 
-load(features)
-
 QMAKEPATH = $$(QMAKEPATH)
 isEmpty(QMAKEPATH)|!exists($${QMAKEPATH}/mkspecs) {
     error("The environment variable QMAKEPATH needs to point to $WEBKITSRC/Tools/qmake")
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to