Title: [103678] trunk/Source/WebCore
Revision
103678
Author
[email protected]
Date
2011-12-25 22:16:15 -0800 (Sun, 25 Dec 2011)

Log Message

REGRESSION(r102987): Fix the filename prefix of the generated empty .h
and .cpp files for [Supplemental] IDLs
https://bugs.webkit.org/show_bug.cgi?id=75082

Reviewed by Darin Adler.

In bug 74481, we changed generate-bindings.pl so that it generates empty .h
and .cpp files for the [Supplemental] IDLs. However, the filename prefixes of
those .h and .cpp files are wrong. This patch fixes the prefixes as follows:

    generator=JS  => JS*.h, JS*.cpp
    generator=V8  => V8*.h, V8*.cpp
    generator=ObjC  => DOM*.h, DOM*.cpp
    generator=GObject  => WebKitDOM*.h, WebKitDOM*.cpp
    generator=CPP  => WebDOM*.h, WebDOM*.cpp

No new tests. No change in behavior.
I confirmed that the names of generated .h and .cpp files are correct.

* bindings/scripts/CodeGenerator.pm:
(FileNamePrefix): Returns the prefix of file names.
* bindings/scripts/CodeGeneratorCPP.pm:
(GenerateInterface): Uses CodeGenerator::FileNamePrefix.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateInterface): Ditto.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateInterface): Ditto.
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateInterface): Ditto.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateInterface): Ditto.
* bindings/scripts/generate-bindings.pl:
(generateEmptyHeaderAndCpp): Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (103677 => 103678)


--- trunk/Source/WebCore/ChangeLog	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/ChangeLog	2011-12-26 06:16:15 UTC (rev 103678)
@@ -1,3 +1,39 @@
+2011-12-25  Kentaro Hara  <[email protected]>
+
+        REGRESSION(r102987): Fix the filename prefix of the generated empty .h
+        and .cpp files for [Supplemental] IDLs
+        https://bugs.webkit.org/show_bug.cgi?id=75082
+
+        Reviewed by Darin Adler.
+
+        In bug 74481, we changed generate-bindings.pl so that it generates empty .h
+        and .cpp files for the [Supplemental] IDLs. However, the filename prefixes of
+        those .h and .cpp files are wrong. This patch fixes the prefixes as follows:
+
+            generator=JS  => JS*.h, JS*.cpp
+            generator=V8  => V8*.h, V8*.cpp
+            generator=ObjC  => DOM*.h, DOM*.cpp
+            generator=GObject  => WebKitDOM*.h, WebKitDOM*.cpp
+            generator=CPP  => WebDOM*.h, WebDOM*.cpp
+
+        No new tests. No change in behavior.
+        I confirmed that the names of generated .h and .cpp files are correct.
+
+        * bindings/scripts/CodeGenerator.pm:
+        (FileNamePrefix): Returns the prefix of file names.
+        * bindings/scripts/CodeGeneratorCPP.pm:
+        (GenerateInterface): Uses CodeGenerator::FileNamePrefix.
+        * bindings/scripts/CodeGeneratorGObject.pm:
+        (GenerateInterface): Ditto.
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateInterface): Ditto.
+        * bindings/scripts/CodeGeneratorObjC.pm:
+        (GenerateInterface): Ditto.
+        * bindings/scripts/CodeGeneratorV8.pm:
+        (GenerateInterface): Ditto.
+        * bindings/scripts/generate-bindings.pl:
+        (generateEmptyHeaderAndCpp): Ditto.
+
 2011-12-25  Dan Bernstein  <[email protected]>
 
         WebCore changes for: Find indicators overlap when a match spans multiple text boxes

Modified: trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm (103677 => 103678)


--- trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm	2011-12-26 06:16:15 UTC (rev 103678)
@@ -151,6 +151,18 @@
     $codeGenerator->finish();
 }
 
+sub FileNamePrefix
+{
+    my $object = shift;
+
+    my $ifaceName = "CodeGenerator" . $useGenerator;
+    require $ifaceName . ".pm";
+
+    # Dynamically load external code generation perl module
+    $codeGenerator = $ifaceName->new($object, $useOutputDir, $useOutputHeadersDir, $useLayerOnTop, $preprocessor, $writeDependencies, $verbose);
+    return $codeGenerator->FileNamePrefix();
+}
+
 sub ForAllParents
 {
     my $object = shift;

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm (103677 => 103678)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm	2011-12-26 06:16:15 UTC (rev 103678)
@@ -25,6 +25,8 @@
 
 package CodeGeneratorCPP;
 
+use constant FileNamePrefix => "WebDOM";
+
 # Global Variables
 my $module = "";
 my $outputDir = "";
@@ -126,7 +128,7 @@
     $object->GenerateImplementation($dataNode);
 
     # Write changes.
-    $object->WriteData("WebDOM" . $name);
+    $object->WriteData(FileNamePrefix . $name);
 }
 
 # Params: 'idlDocument' struct

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm (103677 => 103678)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm	2011-12-26 06:16:15 UTC (rev 103678)
@@ -22,6 +22,8 @@
 
 package CodeGeneratorGObject;
 
+use constant FileNamePrefix => "WebKitDOM";
+
 # Global Variables
 my %implIncludes = ();
 my %hdrIncludes = ();
@@ -1404,7 +1406,7 @@
     $object->Generate($dataNode);
 
     # Write changes
-    my $fname = "WebKitDOM_" . $name;
+    my $fname = FileNamePrefix . $name;
     $fname =~ s/_//g;
     $object->WriteData($fname);
 }

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (103677 => 103678)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2011-12-26 06:16:15 UTC (rev 103678)
@@ -28,6 +28,8 @@
 
 use strict;
 
+use constant FileNamePrefix => "JS";
+
 my ($codeGenerator, $IMPL, $HEADER, $DEPS);
 
 my $module = "";
@@ -120,9 +122,10 @@
     my $name = $dataNode->name;
 
     # Open files for writing
-    my $headerFileName = "$outputDir/JS$name.h";
-    my $implFileName = "$outputDir/JS$name.cpp";
-    my $depsFileName = "$outputDir/JS$name.dep";
+    my $prefix = FileNamePrefix;
+    my $headerFileName = "$outputDir/$prefix$name.h";
+    my $implFileName = "$outputDir/$prefix$name.cpp";
+    my $depsFileName = "$outputDir/$prefix$name.dep";
 
     # Remove old dependency file.
     unlink($depsFileName);

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm (103677 => 103678)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm	2011-12-26 06:16:15 UTC (rev 103678)
@@ -26,6 +26,8 @@
 
 package CodeGeneratorObjC;
 
+use constant FileNamePrefix => "DOM";
+
 # Global Variables
 my $module = "";
 my $outputDir = "";
@@ -311,7 +313,7 @@
     $object->GenerateImplementation($dataNode) unless $noImpl;
 
     # Write changes.
-    $object->WriteData("DOM" . $name);
+    $object->WriteData(FileNamePrefix . $name);
 
     # Check for missing public API
     if (keys %publicInterfaces > 0) {

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (103677 => 103678)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm	2011-12-26 06:16:15 UTC (rev 103678)
@@ -30,6 +30,8 @@
 
 use Digest::MD5;
 
+use constant FileNamePrefix => "V8";
+
 my ($codeGenerator, $IMPL, $HEADER);
 
 my $module = "";
@@ -110,8 +112,9 @@
     my $name = $dataNode->name;
 
     # Open files for writing
-    my $headerFileName = "$outputHeadersDir/V8$name.h";
-    my $implFileName = "$outputDir/V8$name.cpp";
+    my $prefix = FileNamePrefix;
+    my $headerFileName = "$outputHeadersDir/$prefix$name.h";
+    my $implFileName = "$outputDir/$prefix$name.cpp";
 
     open($IMPL, ">$implFileName") || die "Couldn't open file $implFileName";
     open($HEADER, ">$headerFileName") || die "Couldn't open file $headerFileName";

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


--- trunk/Source/WebCore/bindings/scripts/generate-bindings.pl	2011-12-26 05:20:02 UTC (rev 103677)
+++ trunk/Source/WebCore/bindings/scripts/generate-bindings.pl	2011-12-26 06:16:15 UTC (rev 103678)
@@ -118,8 +118,10 @@
     }
 
     if (!$idlFound) {
+        my $codeGen = CodeGenerator->new(\@idlDirectories, $generator, $outputDirectory, $outputHeadersDirectory, 0, $preprocessor, $writeDependencies, $verbose);
+
         # We generate empty .h and .cpp files just to tell build scripts that .h and .cpp files are created.
-        generateEmptyHeaderAndCpp($generator, $targetInterfaceName, $outputHeadersDirectory, $outputDirectory);
+        generateEmptyHeaderAndCpp($codeGen->FileNamePrefix(), $targetInterfaceName, $outputHeadersDirectory, $outputDirectory);
         exit 0;
     }
 }
@@ -240,10 +242,10 @@
 
 sub generateEmptyHeaderAndCpp
 {
-    my ($generator, $targetInterfaceName, $outputHeadersDirectory, $outputDirectory) = @_;
+    my ($prefix, $targetInterfaceName, $outputHeadersDirectory, $outputDirectory) = @_;
 
-    my $headerName = "${generator}${targetInterfaceName}.h";
-    my $cppName = "${generator}${targetInterfaceName}.cpp";
+    my $headerName = "${prefix}${targetInterfaceName}.h";
+    my $cppName = "${prefix}${targetInterfaceName}.cpp";
     my $contents = "/*
     This file is generated just to tell build scripts that $headerName and
     $cppName are created for ${targetInterfaceName}.idl, and thus
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to