Title: [137519] trunk/Source/WebCore
Revision
137519
Author
t...@chromium.org
Date
2012-12-12 15:01:06 -0800 (Wed, 12 Dec 2012)

Log Message

[chromium] don't write additional idl files to a gyp temp file
https://bugs.webkit.org/show_bug.cgi?id=104831

Reviewed by Kentaro Hara.

The <|( command doesn't work for files like <(PRODUCT_DIR) or <(SHARED_INTERMEDIATE_DIR).
For additional_idl_files, pass it as a parameter instead of a file listing the filenames.
There are currently only 3 files in this variable. This shouldn't overflow the command
line since the limit on Windows is 8k and with this change, we're still only around 4.5k.
Also, the longest part of the command line is the list of defines. If needed, we could put
that in a file instead.

No new tests, this is a refactoring of the build files.

* WebCore.gyp/WebCore.gyp: Don't use <|( for additional_idl_files.
* bindings/scripts/generate-bindings.pl: Change --additionalIdlFilesList to
--additionalIdlFiles, which is a shell argument containing the filenames.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (137518 => 137519)


--- trunk/Source/WebCore/ChangeLog	2012-12-12 22:56:53 UTC (rev 137518)
+++ trunk/Source/WebCore/ChangeLog	2012-12-12 23:01:06 UTC (rev 137519)
@@ -1,3 +1,23 @@
+2012-12-12  Tony Chang  <t...@chromium.org>
+
+        [chromium] don't write additional idl files to a gyp temp file
+        https://bugs.webkit.org/show_bug.cgi?id=104831
+
+        Reviewed by Kentaro Hara.
+
+        The <|( command doesn't work for files like <(PRODUCT_DIR) or <(SHARED_INTERMEDIATE_DIR).
+        For additional_idl_files, pass it as a parameter instead of a file listing the filenames.
+        There are currently only 3 files in this variable. This shouldn't overflow the command
+        line since the limit on Windows is 8k and with this change, we're still only around 4.5k.
+        Also, the longest part of the command line is the list of defines. If needed, we could put
+        that in a file instead.
+
+        No new tests, this is a refactoring of the build files.
+
+        * WebCore.gyp/WebCore.gyp: Don't use <|( for additional_idl_files.
+        * bindings/scripts/generate-bindings.pl: Change --additionalIdlFilesList to
+        --additionalIdlFiles, which is a shell argument containing the filenames.
+
 2012-12-12  Chris Rogers  <crog...@google.com>
 
         Implement OfflineAudioContext constructor

Modified: trunk/Source/WebCore/WebCore.gyp/WebCore.gyp (137518 => 137519)


--- trunk/Source/WebCore/WebCore.gyp/WebCore.gyp	2012-12-12 22:56:53 UTC (rev 137518)
+++ trunk/Source/WebCore/WebCore.gyp/WebCore.gyp	2012-12-12 23:01:06 UTC (rev 137519)
@@ -580,11 +580,6 @@
       'dependencies': [
         'generate_supplemental_dependency',
       ],
-      'variables': {
-        # Write sources into a file, so that the action command line won't
-        # exceed OS limits.
-        'additional_idl_files_list': '<|(additional_idl_files_list.tmp <@(webcore_test_support_idl_files))',
-      },
       'sources': [
         # bison rule
         '<(SHARED_INTERMEDIATE_DIR)/webkit/CSSGrammar.y',
@@ -1169,8 +1164,7 @@
             '../bindings/scripts/IDLParser.pm',
             '../bindings/scripts/preprocessor.pm',
             '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
-            '<(additional_idl_files_list)',
-            '<!@(cat <(additional_idl_files_list))',
+            '<@(webcore_test_support_idl_files)',
           ],
           'outputs': [
             # FIXME:  The .cpp file should be in webkit/bindings once
@@ -1224,8 +1218,8 @@
             '<@(generator_include_dirs)',
             '--supplementalDependencyFile',
             '<(SHARED_INTERMEDIATE_DIR)/supplemental_dependency.tmp',
-            '--additionalIdlFilesList',
-            '<(additional_idl_files_list)',
+            '--additionalIdlFiles',
+            '<(webcore_test_support_idl_files)',
             '<(RULE_INPUT_PATH)',
             '<@(preprocessor)',
           ],

Modified: trunk/Source/WebCore/bindings/scripts/generate-bindings.pl (137518 => 137519)


--- trunk/Source/WebCore/bindings/scripts/generate-bindings.pl	2012-12-12 22:56:53 UTC (rev 137518)
+++ trunk/Source/WebCore/bindings/scripts/generate-bindings.pl	2012-12-12 23:01:06 UTC (rev 137519)
@@ -33,6 +33,7 @@
 use File::Path;
 use File::Basename;
 use Getopt::Long;
+use Text::ParseWords;
 use Cwd;
 
 use IDLParser;
@@ -49,7 +50,7 @@
 my $writeDependencies;
 my $verbose;
 my $supplementalDependencyFile;
-my $additionalIdlFilesList;
+my $additionalIdlFiles;
 
 GetOptions('include=s@' => \@idlDirectories,
            'outputDir=s' => \$outputDirectory,
@@ -62,7 +63,7 @@
            'verbose' => \$verbose,
            'write-dependencies' => \$writeDependencies,
            'supplementalDependencyFile=s' => \$supplementalDependencyFile,
-           'additionalIdlFilesList=s' => \$additionalIdlFilesList);
+           'additionalIdlFiles=s' => \$additionalIdlFiles);
 
 my $targetIdlFile = $ARGV[0];
 
@@ -102,19 +103,12 @@
     }
     close FH;
 
-    # The file $additionalIdlFilesList contains one IDL file per line:
-    # P.idl
-    # Q.idl
-    # ...
-    # These IDL files are ones which should not be included in DerivedSources*.cpp
-    # (i.e. they are not described in the supplemental dependency file)
-    # but should generate .h and .cpp files.
-    if (!$idlFound and $additionalIdlFilesList) {
-        open FH, "< $additionalIdlFilesList" or die "Cannot open $additionalIdlFilesList\n";
-        my @idlFiles = <FH>;
-        chomp(@idlFiles);
+    # $additionalIdlFiles is list of IDL files which should not be included in
+    # DerivedSources*.cpp (i.e. they are not described in the supplemental
+    # dependency file) but should generate .h and .cpp files.
+    if (!$idlFound and $additionalIdlFiles) {
+        my @idlFiles = shellwords($additionalIdlFiles);
         $idlFound = grep { $_ and basename($_) eq basename($targetIdlFile) } @idlFiles;
-        close FH;
     }
 
     if (!$idlFound) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to