Title: [122963] trunk/Source/WebCore
Revision
122963
Author
[email protected]
Date
2012-07-18 06:42:57 -0700 (Wed, 18 Jul 2012)

Log Message

Use cl to preprocess IDL for Chromium Windows generate_supplemental_dependency
https://bugs.webkit.org/show_bug.cgi?id=91548

Patch by Scott Graham <[email protected]> on 2012-07-18
Reviewed by Kentaro Hara.

Use cl.exe as preprocessor for IDL files rather than cygwin gcc. Cuts
two minute execution time on Windows by a bit better than 50%.

No new tests.

* WebCore.gyp/WebCore.gyp:
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (122962 => 122963)


--- trunk/Source/WebCore/ChangeLog	2012-07-18 13:41:07 UTC (rev 122962)
+++ trunk/Source/WebCore/ChangeLog	2012-07-18 13:42:57 UTC (rev 122963)
@@ -1,3 +1,19 @@
+2012-07-18  Scott Graham  <[email protected]>
+
+        Use cl to preprocess IDL for Chromium Windows generate_supplemental_dependency
+        https://bugs.webkit.org/show_bug.cgi?id=91548
+
+        Reviewed by Kentaro Hara.
+
+        Use cl.exe as preprocessor for IDL files rather than cygwin gcc. Cuts
+        two minute execution time on Windows by a bit better than 50%.
+
+        No new tests.
+
+        * WebCore.gyp/WebCore.gyp:
+        * bindings/scripts/preprocessor.pm:
+        (applyPreprocessor):
+
 2012-07-18  Pavel Feldman  <[email protected]>
 
         Web Inspector: remove search replace from behind experiment, polish the behavior

Modified: trunk/Source/WebCore/WebCore.gyp/WebCore.gyp (122962 => 122963)


--- trunk/Source/WebCore/WebCore.gyp/WebCore.gyp	2012-07-18 13:41:07 UTC (rev 122962)
+++ trunk/Source/WebCore/WebCore.gyp/WebCore.gyp	2012-07-18 13:42:57 UTC (rev 122963)
@@ -511,6 +511,17 @@
           'outputs': [
             '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
           ],
+          'conditions': [
+            ['OS=="win"', {
+              'variables': {
+                # Using cl instead of cygwin gcc cuts the processing time from
+                # 1m58s to 0m52s.
+                'preprocessor': '--preprocessor "cl.exe /nologo /EP /TP"',
+              },
+            }, {
+              'variables': { 'preprocessor': '', }
+            }],
+          ],
           'action': [
             'perl',
             '-w',
@@ -524,6 +535,7 @@
             '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
             '--idlAttributesFile',
             '../bindings/scripts/IDLAttributes.txt',
+            '<@(preprocessor)',
           ],
           'message': 'Resolving [Supplemental=XXX] dependencies in all IDL files',
         }

Modified: trunk/Source/WebCore/bindings/scripts/preprocessor.pm (122962 => 122963)


--- trunk/Source/WebCore/bindings/scripts/preprocessor.pm	2012-07-18 13:41:07 UTC (rev 122962)
+++ trunk/Source/WebCore/bindings/scripts/preprocessor.pm	2012-07-18 13:42:57 UTC (rev 122963)
@@ -23,6 +23,7 @@
 
 use Config;
 use IPC::Open2;
+use IPC::Open3;
 
 BEGIN {
    use Exporter   ();
@@ -66,7 +67,10 @@
         # This call can fail if Windows rebases cygwin, so retry a few times until it succeeds.
         for (my $tries = 0; !$pid && ($tries < 20); $tries++) {
             eval {
-                $pid = open2(\*PP_OUT, \*PP_IN, split(' ', $preprocessor), @args, @macros, $fileName);
+                # Suppress STDERR so that if we're using cl.exe, the output
+                # name isn't needlessly echoed.
+                use Symbol 'gensym'; my $err = gensym;
+                $pid = open3(\*PP_IN, \*PP_OUT, $err, split(' ', $preprocessor), @args, @macros, $fileName);
                 1;
             } or do {
                 sleep 1;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to