- 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