+2007-11-04 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ <rdar://problem/5435940>
+ The COM bindings for the DOM should be autogenerated like the other DOM bindings
+
+ Initial commit of the autogeneration of the COM DOM Bindings. No behavior change
+ is being introduced in this patch and to insure that no conflicts arise, a temporary
+ prefix of "GEN_" has been used for all the new classes.
+
+ The build architecture for these bindings differs slightly from the other autogenerated
+ bindings. Instead of building in WebCore and migrating the resuting code to WebKit (as
+ is done for the Objective-C bindigs currently), the IDLs and generation scripts are
+ migrated to WebKit and built there. This is done with a series of scripts and Makefiles.
+
+ This commit includes:
+ - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
+ and ref-counting.
+ - Generating all of the Core DOM and most of HTML and CSS
+ - Generating Event, EventTarget, and EventListener
+
+ * WebCore.vcproj/MigrateIDLAndScripts.make: Added.
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.vcproj/migrate-idls.sh: Added.
+ * bindings/scripts/CodeGenerator.pm:
+ * bindings/scripts/CodeGeneratorCOM.pm: Added.
+ * dom/EventListener.h: Make the isWindowEvent parameter default to false
+ to allow autogeneration based on the IDL.
+
2007-11-09 Tristan O'Tierney <tristan@apple.com>
Reviewed by Timothy Hatcher.
--- /dev/null
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+.PHONY : all
+all : \
+ $(WEBKIT_OUTPUT)/Node.idl \
+ $(WEBKIT_OUTPUT)/Attr.idl \
+ $(WEBKIT_OUTPUT)/Element.idl \
+ $(WEBKIT_OUTPUT)/NodeList.idl \
+ $(WEBKIT_OUTPUT)/Document.idl \
+ $(WEBKIT_OUTPUT)/CharacterData.idl \
+ $(WEBKIT_OUTPUT)/CDATASection.idl \
+ $(WEBKIT_OUTPUT)/Comment.idl \
+ $(WEBKIT_OUTPUT)/Text.idl \
+ $(WEBKIT_OUTPUT)/DocumentFragment.idl \
+ $(WEBKIT_OUTPUT)/DocumentType.idl \
+ $(WEBKIT_OUTPUT)/DOMImplementation.idl \
+ $(WEBKIT_OUTPUT)/Entity.idl \
+ $(WEBKIT_OUTPUT)/EntityReference.idl \
+ $(WEBKIT_OUTPUT)/NamedNodeMap.idl \
+ $(WEBKIT_OUTPUT)/Notation.idl \
+ $(WEBKIT_OUTPUT)/ProcessingInstruction.idl \
+ \
+ $(WEBKIT_OUTPUT)/HTMLAnchorElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLAppletElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLAreaElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLBRElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLBaseElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLBaseFontElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLBlockquoteElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLBodyElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLButtonElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLCollection.idl \
+ $(WEBKIT_OUTPUT)/HTMLDListElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLDirectoryElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLDivElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLDocument.idl \
+ $(WEBKIT_OUTPUT)/HTMLElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLEmbedElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLFieldSetElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLFontElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLFormElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLFrameElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLFrameSetElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLHRElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLHeadElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLHeadingElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLHtmlElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLIFrameElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLImageElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLInputElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLIsIndexElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLLIElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLLabelElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLLegendElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLLinkElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLMapElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLMarqueeElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLMenuElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLMetaElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLModElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLOListElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLObjectElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLOptGroupElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLOptionElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLOptionsCollection.idl \
+ $(WEBKIT_OUTPUT)/HTMLParagraphElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLParamElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLPreElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLQuoteElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLScriptElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLSelectElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLStyleElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTableCaptionElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTableCellElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTableColElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTableElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTableRowElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTableSectionElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTextAreaElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLTitleElement.idl \
+ $(WEBKIT_OUTPUT)/HTMLUListElement.idl \
+ \
+ $(WEBKIT_OUTPUT)/CSSCharsetRule.idl \
+ $(WEBKIT_OUTPUT)/CSSFontFaceRule.idl \
+ $(WEBKIT_OUTPUT)/CSSImportRule.idl \
+ $(WEBKIT_OUTPUT)/CSSMediaRule.idl \
+ $(WEBKIT_OUTPUT)/CSSPageRule.idl \
+ $(WEBKIT_OUTPUT)/CSSPrimitiveValue.idl \
+ $(WEBKIT_OUTPUT)/CSSRule.idl \
+ $(WEBKIT_OUTPUT)/CSSRuleList.idl \
+ $(WEBKIT_OUTPUT)/CSSStyleDeclaration.idl \
+ $(WEBKIT_OUTPUT)/CSSStyleRule.idl \
+ $(WEBKIT_OUTPUT)/CSSStyleSheet.idl \
+ $(WEBKIT_OUTPUT)/CSSUnknownRule.idl \
+ $(WEBKIT_OUTPUT)/CSSValue.idl \
+ $(WEBKIT_OUTPUT)/CSSValueList.idl \
+ $(WEBKIT_OUTPUT)/Counter.idl \
+ $(WEBKIT_OUTPUT)/MediaList.idl \
+ $(WEBKIT_OUTPUT)/Rect.idl \
+ $(WEBKIT_OUTPUT)/StyleSheet.idl \
+ $(WEBKIT_OUTPUT)/StyleSheetList.idl \
+ \
+ $(WEBKIT_OUTPUT)/Event.idl \
+ $(WEBKIT_OUTPUT)/EventTarget.idl \
+ $(WEBKIT_OUTPUT)/EventListener.idl \
+ \
+ $(WEBKIT_OUTPUT)/CodeGenerator.pm \
+ $(WEBKIT_OUTPUT)/CodeGeneratorCOM.pm \
+ $(WEBKIT_OUTPUT)/IDLParser.pm \
+ $(WEBKIT_OUTPUT)/IDLStructure.pm \
+ $(WEBKIT_OUTPUT)/generate-bindings.pl \
+#
+
+# $(WEBKIT_OUTPUT)/CanvasGradient.idl \
+# $(WEBKIT_OUTPUT)/CanvasPattern.idl \
+# $(WEBKIT_OUTPUT)/CanvasRenderingContext2D.idl \
+# $(WEBKIT_OUTPUT)/HTMLCanvasElement.idl \
+# $(WEBKIT_OUTPUT)/RGBColor.idl \
+
+MIGRATE_CMD = cp $< $@
+
+# Migrate core/event IDLs
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/dom/%
+ $(MIGRATE_CMD)
+
+# Migrate html IDLs
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/html/%
+ $(MIGRATE_CMD)
+
+# Migrate css IDLs
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/css/%
+ $(MIGRATE_CMD)
+
+# Migrate generation scripts
+$(WEBKIT_OUTPUT)/% : $(WEBCORE)/bindings/scripts/%
+ $(MIGRATE_CMD)
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"
bash build-generated-files.sh "$(WebKitOutputDir)" "$(WebKitLibrariesDir)"
"\r
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"
bash build-generated-files.sh "$(WebKitOutputDir)" "$(WebKitLibrariesDir)"
bash migrate-idls.sh "$(WebKitOutputDir)/obj/WebKit/DOMInterfaces"
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"
bash build-generated-files.sh "$(WebKitOutputDir)" "$(WebKitLibrariesDir)"
"\r
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"
bash build-generated-files.sh "$(WebKitOutputDir)" "$(WebKitLibrariesDir)"
bash migrate-idls.sh "$(WebKitOutputDir)/obj/WebKit/DOMInterfaces"
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"
bash build-generated-files.sh "$(WebKitOutputDir)" "$(WebKitLibrariesDir)"
"\r
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"
bash build-generated-files.sh "$(WebKitOutputDir)" "$(WebKitLibrariesDir)"
bash migrate-idls.sh "$(WebKitOutputDir)/obj/WebKit/DOMInterfaces"
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
--- /dev/null
+#!/usr/bin/bash
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.\r
+#\r
+# Redistribution and use in source and binary forms, with or without\r
+# modification, are permitted provided that the following conditions\r
+# are met:\r
+#\r
+# 1. Redistributions of source code must retain the above copyright\r
+# notice, this list of conditions and the following disclaimer. \r
+# 2. Redistributions in binary form must reproduce the above copyright\r
+# notice, this list of conditions and the following disclaimer in the\r
+# documentation and/or other materials provided with the distribution. \r
+# 3. Neither the name of Apple puter, Inc. ("Apple") nor the names of\r
+# its contributors may be used to endorse or promote products derived\r
+# from this software without specific prior written permission. \r
+#\r
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+NUMCPUS=`../../WebKitTools/Scripts/num-cpus`
+
+mkdir -p "$1"
+
+XSRCROOT="`pwd`/.."
+XSRCROOT=`realpath "$XSRCROOT"`
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XSRCROOT=`cygpath -m -s "$XSRCROOT"`
+XSRCROOT=`cygpath -u "$XSRCROOT"`
+export XSRCROOT
+export SOURCE_ROOT=$XSRCROOT
+
+XDSTROOT="$1"
+export XDSTROOT
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XDSTROOT=`cygpath -m -s "$XDSTROOT"`
+XDSTROOT=`cygpath -u "$XDSTROOT"`
+export XDSTROOT
+
+export WEBCORE=$XSRCROOT
+export WEBKIT_OUTPUT=$XDSTROOT
+
+make -f "$WEBCORE/WebCore.vcproj/MigrateIDLandScripts.make" -j ${NUMCPUS} || exit 1
}
}
+sub GetMethodsAndAttributesFromParentClasses
+{
+ # For the passed interface, recursively parse all parent
+ # IDLs in order to find out all inherited properties/methods.
+
+ my $object = shift;
+ my $dataNode = shift;
+
+ my @parents = @{$dataNode->parents};
+
+ return if @{$dataNode->parents} == 0;
+
+ my @parentList = ();
+
+ foreach (@{$dataNode->parents}) {
+ my $interface = $object->StripModule($_);
+ if ($interface eq "EventTargetNode") {
+ $interface = "Node";
+ }
+
+ # Step #1: Find the IDL file associated with 'interface'
+ $endCondition = 0;
+ $foundFilename = "";
+
+ foreach (@{$useDirectories}) {
+ $object->ScanDirectory("${interface}.idl", $_, $_, 0) if $foundFilename eq "";
+ }
+
+ die("Could NOT find specified parent interface \"$interface\"!\n") if $foundFilename eq "";
+
+ print " | |> Parsing parent IDL \"$foundFilename\" for interface \"$interface\"\n" if $verbose;
+
+ # Step #2: Parse the found IDL file (in quiet mode).
+ my $parser = IDLParser->new(1);
+ my $document = $parser->Parse($foundFilename, $defines);
+
+ foreach my $class (@{$document->classes}) {
+ # Step #3: Enter recursive parent search
+ push(@parentList, GetMethodsAndAttributesFromParentClasses($object, $class));
+
+ # Step #4: Collect constants & functions & attributes of this parent-class
+
+ # print " | |> -> Inheriting $functionsMax functions amd $attributesMax attributes...\n | |>\n" if $verbose;
+ my $hash = {
+ "name" => $class->name,
+ "functions" => $class->functions,
+ "attributes" => $class->attributes
+ };
+
+ # Step #5: Concatenate data
+ unshift(@parentList, $hash);
+ }
+ }
+
+ return @parentList;
+}
+
+sub ParseInterface
+{
+ my ($object, $interfaceName) = @_;
+
+ # Step #1: Find the IDL file associated with 'interface'
+ $endCondition = 0;
+ $foundFilename = "";
+
+ foreach (@{$useDirectories}) {
+ $object->ScanDirectory("${interfaceName}.idl", $_, $_, 0) if $foundFilename eq "";
+ }
+ die "Could NOT find specified parent interface \"$interfaceName\"!\n" if $foundFilename eq "";
+
+ print " | |> Parsing parent IDL \"$foundFilename\" for interface \"$interfaceName\"\n" if $verbose;
+
+ # Step #2: Parse the found IDL file (in quiet mode).
+ my $parser = IDLParser->new(1);
+ my $document = $parser->Parse($foundFilename, $defines);
+
+ foreach my $interface (@{$document->classes}) {
+ return $interface if $interface->name eq $interfaceName;
+ }
+
+ die "Interface definition not found";
+}
+
# Helpers for all CodeGenerator***.pm modules
sub IsPodType
{
if ($sourceRoot) {
$thisDir = "$sourceRoot/$directory";
} else {
- $thisDir = "$directory";
+ $thisDir = $directory;
}
- opendir(DIR, $thisDir) or die "[ERROR] Can't open directory $thisDir: \"$!\"\n";
+ if (!opendir(DIR, $thisDir)) {
+ opendir(DIR, $directory) or die "[ERROR] Can't open directory $thisDir or $directory: \"$!\"\n";
+ $thisDir = $directory;
+ }
my @names = readdir(DIR) or die "[ERROR] Cant't read directory $thisDir \"$!\"\n";
closedir(DIR);
--- /dev/null
+#
+# Copyright (C) 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org>
+# Copyright (C) 2006 Anders Carlsson <andersca@mac.com>
+# Copyright (C) 2006, 2007 Samuel Weinig <sam@webkit.org>
+# Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org>
+# Copyright (C) 2006, 2007 Apple Inc. All rights reserved.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public License
+# aint with this library; see the file COPYING.LIB. If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+#
+
+package CodeGeneratorCOM;
+
+use File::stat;
+
+# Global Variables
+my $module = "";
+my $outputDir = "";
+
+my @IDLHeader = ();
+my @IDLContent = ();
+my %IDLIncludes = ();
+my %IDLForwardDeclarations = ();
+my %IDLDontForwardDeclare = ();
+my %IDLImports = ();
+my %IDLDontImport = ();
+
+my @CPPInterfaceHeader = ();
+
+my @CPPHeaderHeader = ();
+my @CPPHeaderContent = ();
+my %CPPHeaderIncludes = ();
+my %CPPHeaderIncludesAngle = ();
+my %CPPHeaderForwardDeclarations = ();
+my %CPPHeaderDontForwardDeclarations = ();
+
+my @CPPImplementationHeader = ();
+my @CPPImplementationContent = ();
+my %CPPImplementationIncludes = ();
+my %CPPImplementationWebCoreIncludes = ();
+my %CPPImplementationIncludesAngle = ();
+my %CPPImplementationDontIncludes = ();
+
+my @additionalInterfaceDefinitions = ();
+
+my $DASHES = "----------------------------------------";
+my $TEMP_PREFIX = "GEN_";
+
+# Hashes
+
+my %includeCorrector = map {($_, 1)} qw{UIEvent KeyboardEvent MouseEvent
+ MutationEvent OverflowEvent WheelEvent};
+
+my %conflictMethod = (
+ # FIXME: Add C language keywords?
+);
+
+# Default License Templates
+my @licenseTemplate = split(/\r/, << "EOF");
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+EOF
+
+# Default constructor
+sub new
+{
+ my $object = shift;
+ my $reference = { };
+
+ $codeGenerator = shift;
+ $outputDir = shift;
+
+ bless($reference, $object);
+ return $reference;
+}
+
+sub finish
+{
+ my $object = shift;
+}
+
+# Uppercase the first letter, while respecting WebKit style guidelines.
+# E.g., xmlEncoding becomes XMLEncoding, but xmlllang becomes Xmllang.
+sub WK_ucfirst
+{
+ my $param = shift;
+ my $ret = ucfirst($param);
+ $ret =~ s/Xml/XML/ if $ret =~ /^Xml[^a-z]/;
+ return $ret;
+}
+
+# Params: 'domClass' struct
+sub GenerateInterface
+{
+ my $object = shift;
+ my $dataNode = shift;
+ my $defines = shift;
+
+ my $name = $dataNode->name;
+
+ my $pureInterface = $dataNode->extendedAttributes->{"PureInterface"};
+
+ # Start actual generation..
+ $object->GenerateIDL($dataNode, $pureInterface);
+ if ($pureInterface) {
+ $object->GenerateInterfaceHeader($dataNode);
+ } else {
+ $object->GenerateCPPHeader($dataNode);
+ $object->GenerateCPPImplementation($dataNode);
+ }
+
+ # Write changes.
+ $object->WriteData($name, $pureInterface);
+}
+
+# Params: 'idlDocument' struct
+sub GenerateModule
+{
+ my $object = shift;
+ my $dataNode = shift;
+
+ $module = $dataNode->module;
+}
+
+sub GetInterfaceName
+{
+ my $name = $codeGenerator->StripModule(shift);
+
+ die "GetInterfaceName should only be used on interfaces." if ($codeGenerator->IsStringType($name) or $codeGenerator->IsPrimitiveType($name));
+
+ # special cases
+ return "I" . $TEMP_PREFIX . "DOMAbstractView" if $name eq "DOMWindow";
+ return "I" . $TEMP_PREFIX . $name if $name eq "DOMImplementation" or $name eq "DOMTimeStamp";
+
+ # Default, assume COM type has the same type name as
+ # idl type prefixed with "IDOM".
+ return "I" . $TEMP_PREFIX . "DOM" . $name;
+}
+
+sub GetClassName
+{
+ my $name = $codeGenerator->StripModule(shift);
+
+ # special cases
+ return "BSTR" if $codeGenerator->IsStringType($name);
+ return "BOOL" if $name eq "boolean";
+ return "unsigned" if $name eq "unsigned long";
+ return "int" if $name eq "long";
+ return $name if $codeGenerator->IsPrimitiveType($name);
+ return $TEMP_PREFIX . "DOMAbstractView" if $name eq "DOMWindow";
+ return $TEMP_PREFIX . $name if $name eq "DOMImplementation" or $name eq "DOMTimeStamp";
+
+ # Default, assume COM type has the same type name as
+ # idl type prefixed with "DOM".
+ return $TEMP_PREFIX . "DOM" . $name;
+}
+
+sub GetCOMType
+{
+ my ($type) = @_;
+
+ die "Don't use GetCOMType for string types, use one of In/Out variants instead." if $codeGenerator->IsStringType($type);
+
+ return "BOOL" if $type eq "boolean";
+ return "UINT" if $type eq "unsigned long";
+ return "INT" if $type eq "long";
+ return $type if $codeGenerator->IsPrimitiveType($type) or $type eq "DOMTimeStamp";
+ # return "unsigned short" if $type eq "CompareHow" or $type eq "SVGPaintType";
+
+ return GetInterfaceName($type) . "*";
+}
+
+sub GetCOMTypeIn
+{
+ my ($type) = @_;
+ return "LPCTSTR" if $codeGenerator->IsStringType($type);
+ return GetCOMType($type);
+}
+
+sub GetCOMTypeOut
+{
+ my ($type) = @_;
+ return "BSTR" if $codeGenerator->IsStringType($type);
+ return GetCOMType($type);
+}
+
+sub IDLTypeToImplementationType
+{
+ my $type = $codeGenerator->StripModule(shift);
+
+ return "bool" if $type eq "boolean";
+ return "unsigned" if $type eq "unsigned long";
+ return "int" if $type eq "long";
+ return $type if $codeGenerator->IsPrimitiveType($type);
+
+ return "WebCore::String" if $codeGenerator->IsStringType($type);
+ return "WebCore::${type}";
+}
+
+sub StripNamespace
+{
+ my ($type) = @_;
+
+ $type =~ s/^WebCore:://;
+
+ return $type;
+}
+
+sub GetParentInterface
+{
+ my ($dataNode) = @_;
+ return "I" . $TEMP_PREFIX . "DOMObject" if (@{$dataNode->parents} == 0);
+ return "I" . $TEMP_PREFIX . "DOMNode" if $codeGenerator->StripModule($dataNode->parents(0)) eq "EventTargetNode";
+ return GetInterfaceName($codeGenerator->StripModule($dataNode->parents(0)));
+}
+
+sub GetParentClass
+{
+ my ($dataNode) = @_;
+ return $TEMP_PREFIX . "DOMObject" if (@{$dataNode->parents} == 0);
+ return $TEMP_PREFIX . "DOMNode" if $codeGenerator->StripModule($dataNode->parents(0)) eq "EventTargetNode";
+ return GetClassName($codeGenerator->StripModule($dataNode->parents(0)));
+}
+
+sub AddForwardDeclarationsForTypeInIDL
+{
+ my $type = $codeGenerator->StripModule(shift);
+
+ return if $codeGenerator->IsNonPointerType($type) or $codeGenerator->IsStringType($type);
+
+ my $interface = GetInterfaceName($type);
+ $IDLForwardDeclarations{$interface} = 1;
+ $IDLImports{$interface} = 1;
+}
+
+sub AddIncludesForTypeInCPPHeader
+{
+ my $type = $codeGenerator->StripModule(shift);
+ my $useAngleBrackets = shift;
+
+ return if $codeGenerator->IsNonPointerType($type);
+
+ # Add special Cases HERE
+ if ($useAngleBrackets) {
+ $CPPHeaderIncludesAngle{"$type.h"} = 1;
+ return;
+ }
+
+ if ($type eq "GEN_DOMImplementation") {
+ $CPPHeaderIncludes{"GEN_DOMDOMImplementation.h"} = 1;
+ return;
+ }
+
+ if ($type eq "IGEN_DOMImplementation") {
+ $CPPHeaderIncludes{"IGEN_DOMDOMImplementation.h"} = 1;
+ return;
+ }
+
+ $CPPHeaderIncludes{"$type.h"} = 1;
+}
+
+sub AddForwardDeclarationsForTypeInCPPHeader
+{
+ my $type = $codeGenerator->StripModule(shift);
+
+ return if $codeGenerator->IsNonPointerType($type) or $codeGenerator->IsStringType($type);
+
+ my $interface = GetInterfaceName($type);
+ $CPPHeaderForwardDeclarations{$interface} = 1;
+}
+
+sub AddIncludesForTypeInCPPImplementation
+{
+ my $type = $codeGenerator->StripModule(shift);
+
+ die "Include type not supported!" if $includeCorrector{$type};
+
+ return if $codeGenerator->IsNonPointerType($type);
+
+ if ($codeGenerator->IsStringType($type)) {
+ $CPPImplementationWebCoreIncludes{"PlatformString.h"} = 1;
+ $CPPImplementationWebCoreIncludes{"BString.h"} = 1;
+ $CPPImplementationWebCoreIncludes{"AtomicString.h"} = 1;
+ return;
+ }
+
+ # Special casing
+ $CPPImplementationWebCoreIncludes{"EventTargetNode.h"} = 1 if $type eq "Node";
+ $CPPImplementationWebCoreIncludes{"NameNodeList.h"} = 1 if $type eq "NodeList";
+ $CPPImplementationWebCoreIncludes{"CSSMutableStyleDeclaration.h"} = 1 if $type eq "CSSStyleDeclaration";
+
+ # Add implementation type
+ $CPPImplementationWebCoreIncludes{StripNamespace(IDLTypeToImplementationType($type)) . ".h"} = 1;
+
+ my $COMClassName = GetClassName($type);
+ $CPPImplementationIncludes{"${COMClassName}.h"} = 1;
+}
+
+sub GetAdditionalInterfaces
+{
+ my $type = $codeGenerator->StripModule(shift);
+
+ return ("EventTarget") if $type eq "Node";
+ return ();
+}
+
+sub GenerateIDL
+{
+ my ($object, $dataNode, $pureInterface) = @_;
+
+ my $inInterfaceName = $dataNode->name;
+ my $outInterfaceName = GetInterfaceName($inInterfaceName);
+ my $uuid = $dataNode->extendedAttributes->{"InterfaceUUID"} || die "All classes require an InterfaceUUID extended attribute.";
+
+ my $parentInterfaceName = ($pureInterface) ? "IUnknown" : GetParentInterface($dataNode);
+
+ my $numConstants = @{$dataNode->constants};
+ my $numAttributes = @{$dataNode->attributes};
+ my $numFunctions = @{$dataNode->functions};
+
+ # - Add default header template
+ @IDLHeader = @licenseTemplate;
+ push(@IDLHeader, "\n");
+
+ # - INCLUDES -
+ push(@IDLHeader, "import \"oaidl.idl\";\n");
+ push(@IDLHeader, "import \"ocidl.idl\";\n\n");
+
+ unless ($pureInterface) {
+ push(@IDLHeader, "import \"${parentInterfaceName}.idl\";\n\n");
+
+ $IDLDontForwardDeclare{$outInterfaceName} = 1;
+ $IDLDontImport{$outInterfaceName} = 1;
+ $IDLDontForwardDeclare{$parentInterfaceName} = 1;
+ $IDLDontImport{$parentInterfaceName} = 1;
+ }
+
+ # - Begin
+ # -- Attributes
+ push(@IDLContent, "[\n");
+ push(@IDLContent, " object,\n");
+ push(@IDLContent, " oleautomation,\n");
+ push(@IDLContent, " uuid(" . $uuid . "),\n");
+ push(@IDLContent, " pointer_default(unique)\n");
+ push(@IDLContent, "]\n");
+
+ # -- Interface
+ push(@IDLContent, "interface " . $outInterfaceName . " : " . $parentInterfaceName . "\n");
+ push(@IDLContent, "{\n");
+
+
+ # - FIXME: Add constants.
+
+
+ # - Add attribute getters/setters.
+ if ($numAttributes > 0) {
+ foreach my $attribute (@{$dataNode->attributes}) {
+ my $attributeName = $attribute->signature->name;
+ my $attributeIDLType = $attribute->signature->type;
+ my $attributeTypeIn = GetCOMTypeIn($attributeIDLType);
+ my $attributeTypeOut = GetCOMTypeOut($attributeIDLType);
+ my $attributeIsReadonly = ($attribute->type =~ /^readonly/);
+
+ AddForwardDeclarationsForTypeInIDL($attributeIDLType);
+
+ unless ($attributeIsReadonly) {
+ # Setter
+ my $setterName = "set" . WK_ucfirst($attributeName);
+ my $setter = " HRESULT " . $setterName . "([in] " . $attributeTypeIn . ");\n";
+ push(@IDLContent, $setter);
+ }
+
+ # Getter
+ my $getter = " HRESULT " . $attributeName . "([out, retval] " . $attributeTypeOut . "*);\n\n";
+ push(@IDLContent, $getter);
+ }
+ }
+
+ # - Add functions.
+ if ($numFunctions > 0) {
+ foreach my $function (@{$dataNode->functions}) {
+ my $functionName = $function->signature->name;
+ my $returnIDLType = $function->signature->type;
+ my $returnType = GetCOMTypeOut($returnIDLType);
+ my $noReturn = ($returnType eq "void");
+
+ AddForwardDeclarationsForTypeInIDL($returnIDLType);
+
+ my @paramArgList = ();
+ foreach my $param (@{$function->parameters}) {
+ my $paramName = $param->name;
+ my $paramIDLType = $param->type;
+ my $paramType = GetCOMTypeIn($param->type);
+
+ AddForwardDeclarationsForTypeInIDL($paramIDLType);
+
+ # Form parameter
+ my $parameter = "[in] ${paramType} ${paramName}";
+
+ # Add parameter to function signature
+ push(@paramArgList, $parameter);
+ }
+
+ unless ($noReturn) {
+ my $resultParameter = "[out, retval] " . $returnType . "* result";
+ push(@paramArgList, $resultParameter);
+ }
+
+ my $functionSig = " HRESULT " . $functionName . "(";
+ $functionSig .= join(", ", @paramArgList);
+ $functionSig .= ");\n\n";
+ push(@IDLContent, $functionSig);
+ }
+ }
+
+ # - End
+ push(@IDLContent, "}\n\n");
+}
+
+sub GenerateInterfaceHeader
+{
+ my ($object, $dataNode) = @_;
+
+ my $IDLType = $dataNode->name;
+ my $implementationClass = IDLTypeToImplementationType($IDLType);
+ my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+ my $className = GetClassName($IDLType);
+ my $interfaceName = GetInterfaceName($IDLType);
+
+ # - Add default header template
+ @CPPInterfaceHeader = @licenseTemplate;
+ push(@CPPInterfaceHeader, "\n");
+
+ # - Header gaurds -
+ push(@CPPInterfaceHeader, "#ifndef " . $className . "_h\n");
+ push(@CPPInterfaceHeader, "#define " . $className . "_h\n\n");
+
+ # - Forward Declarations -
+ push(@CPPInterfaceHeader, "interface ${interfaceName};\n\n");
+ push(@CPPInterfaceHeader, "namespace WebCore {\n");
+ push(@CPPInterfaceHeader, " class ${implementationClassWithoutNamespace};\n");
+ push(@CPPInterfaceHeader, "}\n\n");
+
+ # - Default Interface Creator -
+ push(@CPPInterfaceHeader, "${interfaceName}* to${interfaceName}(${implementationClass}*) { return 0; }\n\n");
+
+ push(@CPPInterfaceHeader, "#endif // " . $className . "_h\n");
+}
+
+# -----------------------------------------------------------------------------
+# CPP Helper Functions
+# -----------------------------------------------------------------------------
+
+sub GenerateCPPAttributeSignature
+{
+ my ($attribute, $className, $options) = @_;
+
+ my $attributeName = $attribute->signature->name;
+ my $isReadonly = ($attribute->type =~ /^readonly/);
+
+ my $newline = $$options{"NewLines"} ? "\n" : "";
+ my $indent = $$options{"Indent"} ? " " x $$options{"Indent"} : "";
+ my $semicolon = $$options{"IncludeSemiColon"} ? ";" : "";
+ my $virtual = $$options{"AddVirtualKeyword"} ? "virtual " : "";
+ my $class = $$options{"UseClassName"} ? "${className}::" : "";
+ my $forwarder = $$options{"Forwarder"} ? 1 : 0;
+ my $joiner = ($$options{"NewLines"} ? "\n" . $indent . " " : "");
+
+ my %attributeSignatures = ();
+
+ unless ($isReadonly) {
+ my $attributeTypeIn = GetCOMTypeIn($attribute->signature->type);
+ my $setterName = "set" . WK_ucfirst($attributeName);
+ my $setter = $indent . $virtual . "HRESULT STDMETHODCALLTYPE ". $class . $setterName . "(";
+ $setter .= $joiner . "/* [in] */ ${attributeTypeIn} ${attributeName})" . $semicolon . $newline;
+ if ($forwarder) {
+ $setter .= " { return " . $$options{"Forwarder"} . "::" . $setterName . "(${attributeName}); }\n";
+ }
+ $attributeSignatures{"Setter"} = $setter;
+ }
+
+ my $attributeTypeOut = GetCOMTypeOut($attribute->signature->type);
+ my $getter = $indent . $virtual . "HRESULT STDMETHODCALLTYPE " . $class . $attributeName . "(";
+ $getter .= $joiner . "/* [retval][out] */ ${attributeTypeOut}* result)" . $semicolon . $newline;
+ if ($forwarder) {
+ $getter .= " { return " . $$options{"Forwarder"} . "::" . $attributeName . "(result); }\n";
+ }
+ $attributeSignatures{"Getter"} = $getter;
+
+ return %attributeSignatures;
+}
+
+
+sub GenerateCPPAttribute
+{
+ my ($attribute, $className, $implementationClass) = @_;
+
+ my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+
+ my $attributeName = $attribute->signature->name;
+ my $attributeIDLType = $attribute->signature->type;
+ my $hasSetterException = @{$attribute->setterExceptions};
+ my $hasGetterException = @{$attribute->getterExceptions};
+ my $isReadonly = ($attribute->type =~ /^readonly/);
+ my $attributeTypeIsPrimitive = $codeGenerator->IsPrimitiveType($attributeIDLType);
+ my $attributeTypeIsString = $codeGenerator->IsStringType($attributeIDLType);
+ my $attributeImplementationType = IDLTypeToImplementationType($attributeIDLType);
+ my $attributeImplementationTypeWithoutNamespace = StripNamespace($attributeImplementationType);
+ my $attributeTypeCOMClassName = GetClassName($attributeIDLType);
+
+ $CPPImplementationWebCoreIncludes{"ExceptionCode.h"} = 1 if $hasSetterException or $hasGetterException;
+
+ my %signatures = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 1,
+ "Indent" => 0,
+ "IncludeSemiColon" => 0,
+ "UseClassName" => 1,
+ "AddVirtualKeyword" => 0 });
+
+ my %attrbutesToReturn = ();
+
+ unless ($isReadonly) {
+ my @setterImplementation = ();
+ push(@setterImplementation, $signatures{"Setter"});
+ push(@setterImplementation, "{\n");
+
+ my $setterName = "set" . WK_ucfirst($attributeName);
+
+ my @setterParams = ();
+ if ($attributeTypeIsString) {
+ push(@setterParams, $attributeName);
+ if ($hasSetterException) {
+ push(@setterImplementation, " WebCore::ExceptionCode ec = 0;\n");
+ push(@setterParams, "ec");
+ }
+ } elsif ($attributeTypeIsPrimitive) {
+ if ($attribute->signature->extendedAttributes->{"ConvertFromString"}) {
+ push(@setterParams, "WebCore::String::number(${attributeName})");
+ } elsif ($attributeIDLType eq "boolean") {
+ push(@setterParams, "!!${attributeName}");
+ } else {
+ my $primitiveImplementationType = IDLTypeToImplementationType($attributeIDLType);
+ push(@setterParams, "static_cast<${primitiveImplementationType}>(${attributeName})");
+ }
+
+ if ($hasSetterException) {
+ push(@setterImplementation, " WebCore::ExceptionCode ec = 0;\n");
+ push(@setterParams, "ec");
+ }
+ } else {
+ $CPPImplementationWebCoreIncludes{"COMPtr.h"} = 1;
+
+ push(@setterImplementation, " if (!${attributeName})\n");
+ push(@setterImplementation, " return E_POINTER;\n\n");
+ push(@setterImplementation, " COMPtr<${attributeTypeCOMClassName}> ptr(Query, ${attributeName});\n");
+ push(@setterImplementation, " if (!ptr)\n");
+ push(@setterImplementation, " return E_NOINTERFACE;\n");
+
+ push(@setterParams, "ptr->impl${attributeImplementationTypeWithoutNamespace}()");
+ if ($hasSetterException) {
+ push(@setterImplementation, " WebCore::ExceptionCode ec = 0;\n");
+ push(@setterParams, "ec");
+ }
+ }
+
+ # FIXME: CHECK EXCEPTION AND DO SOMETHING WITH IT
+
+ my $setterCall = " impl${implementationClassWithoutNamespace}()->${setterName}(" . join(", ", @setterParams) . ");\n";
+
+ push(@setterImplementation, $setterCall);
+ push(@setterImplementation, " return S_OK;\n");
+ push(@setterImplementation, "}\n\n");
+
+ $attrbutesToReturn{"Setter"} = join("", @setterImplementation);
+ }
+
+ my @getterImplementation = ();
+ push(@getterImplementation, $signatures{"Getter"});
+ push(@getterImplementation, "{\n");
+ push(@getterImplementation, " if (!result)\n");
+ push(@getterImplementation, " return E_POINTER;\n\n");
+
+ my $implementationGetter = "impl${implementationClassWithoutNamespace}()->${attributeName}(" . ($hasGetterException ? "ec" : ""). ")";
+
+ push(@getterImplementation, " WebCore::ExceptionCode ec = 0;\n") if $hasGetterException;
+
+ if ($attributeTypeIsString) {
+ push(@getterImplementation, " *result = WebCore::BString(${implementationGetter}).release();\n");
+ } elsif ($attributeTypeIsPrimitive) {
+ if ($attribute->signature->extendedAttributes->{"ConvertFromString"}) {
+ push(@getterImplementation, " *result = static_cast<${attributeTypeCOMClassName}>(${implementationGetter}.toInt());\n");
+ } else {
+ push(@getterImplementation, " *result = static_cast<${attributeTypeCOMClassName}>(${implementationGetter});\n");
+ }
+ } else {
+ $CPPImplementationIncludesAngle{"wtf/GetPtr.h"} = 1;
+ my $attributeTypeCOMInterfaceName = GetInterfaceName($attributeIDLType);
+ push(@getterImplementation, " *result = 0;\n");
+ push(@getterImplementation, " ${attributeImplementationType}* resultImpl = WTF::getPtr(${implementationGetter});\n");
+ push(@getterImplementation, " if (!resultImpl)\n");
+ push(@getterImplementation, " return E_POINTER;\n\n");
+ push(@getterImplementation, " *result = to${attributeTypeCOMInterfaceName}(resultImpl);\n");
+ }
+
+ # FIXME: CHECK EXCEPTION AND DO SOMETHING WITH IT
+
+ push(@getterImplementation, " return S_OK;\n");
+ push(@getterImplementation, "}\n\n");
+
+ $attrbutesToReturn{"Getter"} = join("", @getterImplementation);
+
+ return %attrbutesToReturn;
+}
+
+sub GenerateCPPFunctionSignature
+{
+ my ($function, $className, $options) = @_;
+
+ my $functionName = $function->signature->name;
+ my $returnIDLType = $function->signature->type;
+ my $returnType = GetCOMTypeOut($returnIDLType);
+ my $noReturn = ($returnType eq "void");
+
+ my $newline = $$options{"NewLines"} ? "\n" : "";
+ my $indent = $$options{"Indent"} ? " " x $$options{"Indent"} : "";
+ my $semicolon = $$options{"IncludeSemiColon"} ? ";" : "";
+ my $virtual = $$options{"AddVirtualKeyword"} ? "virtual " : "";
+ my $class = $$options{"UseClassName"} ? "${className}::" : "";
+ my $forwarder = $$options{"Forwarder"} ? 1 : 0;
+ my $joiner = ($$options{"NewLines"} ? "\n" . $indent . " " : " ");
+
+ my @paramArgList = ();
+ foreach my $param (@{$function->parameters}) {
+ my $paramName = $param->name;
+ my $paramType = GetCOMTypeIn($param->type);
+ my $parameter = "/* [in] */ ${paramType} ${paramName}";
+ push(@paramArgList, $parameter);
+ }
+
+ unless ($noReturn) {
+ my $resultParameter .= "/* [out, retval] */ ${returnType}* result";
+ push(@paramArgList, $resultParameter);
+ }
+
+ my $functionSig = $indent . $virtual . "HRESULT STDMETHODCALLTYPE " . $class . $functionName . "(";
+ $functionSig .= $joiner . join("," . $joiner, @paramArgList) if @paramArgList > 0;
+ $functionSig .= ")" . $semicolon . $newline;
+ if ($forwarder) {
+ my @paramNameList = ();
+ push(@paramNameList, $_->name) foreach (@{$function->parameters});
+ push(@paramNameList, "result") unless $noReturn;
+ $functionSig .= " { return " . $$options{"Forwarder"} . "::" . $functionName . "(" . join(", ", @paramNameList) . "); }\n";
+ }
+
+ return $functionSig
+}
+
+sub GenerateCPPFunction
+{
+ my ($function, $className, $implementationClass) = @_;
+
+ my @functionImplementation = ();
+
+ my $signature = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 1,
+ "Indent" => 0,
+ "IncludeSemiColon" => 0,
+ "UseClassName" => 1,
+ "AddVirtualKeyword" => 0 });
+
+ my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+
+ my $functionName = $function->signature->name;
+ my $returnIDLType = $function->signature->type;
+ my $noReturn = ($returnIDLType eq "void");
+ my $requiresEventTargetNodeCast = $function->signature->extendedAttributes->{"EventTargetNodeCast"};
+ my $raisesExceptions = @{$function->raisesExceptions};
+
+ AddIncludesForTypeInCPPImplementation($returnIDLType);
+ $CPPImplementationWebCoreIncludes{"ExceptionCode.h"} = 1 if $raisesExceptions;
+
+ my %needsCustom = ();
+ my @parameterInitialization = ();
+ my @parameterList = ();
+ foreach my $param (@{$function->parameters}) {
+ my $paramName = $param->name;
+ my $paramIDLType = $param->type;
+
+ my $paramTypeIsPrimitive = $codeGenerator->IsPrimitiveType($paramIDLType);
+ my $paramTypeIsString = $codeGenerator->IsStringType($paramIDLType);
+
+ $needsCustom{"NodeToReturn"} = $paramName if $param->extendedAttributes->{"Return"};
+
+ AddIncludesForTypeInCPPImplementation($paramIDLType);
+
+ # FIXME: We may need to null check the arguments as well
+
+ if ($paramTypeIsString) {
+ push(@parameterList, $paramName);
+ } elsif ($paramTypeIsPrimitive) {
+ if ($paramIDLType eq "boolean") {
+ push(@parameterList, "!!${paramName}");
+ } else {
+ my $primitiveImplementationType = IDLTypeToImplementationType($paramIDLType);
+ push(@parameterList, "static_cast<${primitiveImplementationType}>(${paramName})");
+ }
+ } else {
+ $CPPImplementationWebCoreIncludes{"COMPtr.h"} = 1;
+
+ $needsCustom{"CanReturnEarly"} = 1;
+
+ my $paramTypeCOMClassName = GetClassName($paramIDLType);
+ my $paramTypeImplementationWithoutNamespace = StripNamespace(IDLTypeToImplementationType($paramIDLType));
+ my $ptrName = "ptrFor" . WK_ucfirst($paramName);
+ my $paramInit = " COMPtr<${paramTypeCOMClassName}> ${ptrName}(Query, ${paramName});\n";
+ $paramInit .= " if (!${ptrName})\n";
+ $paramInit .= " return E_NOINTERFACE;";
+ push(@parameterInitialization, $paramInit);
+ push(@parameterList, "${ptrName}->impl${paramTypeImplementationWithoutNamespace}()");
+ }
+ }
+
+ push(@parameterList, "ec") if $raisesExceptions;
+
+ my $implementationGetter = "impl${implementationClassWithoutNamespace}()";
+ if ($requiresEventTargetNodeCast) {
+ $implementationGetter = "WebCore::EventTargetNodeCast(${implementationGetter})";
+ }
+
+ my $callSigBegin = " ";
+ my $callSigMiddle = "${implementationGetter}->${functionName}(" . join(", ", @parameterList) . ")";
+ my $callSigEnd = ";\n";
+
+ if (defined $needsCustom{"NodeToReturn"}) {
+ my $nodeToReturn = $needsCustom{"NodeToReturn"};
+ $callSigBegin .= "if (";
+ $callSigEnd = ")\n";
+ $callSigEnd .= " *result = ${nodeToReturn};";
+ } elsif (!$noReturn) {
+ my $returnTypeIsString = $codeGenerator->IsStringType($returnIDLType);
+ my $returnTypeIsPrimitive = $codeGenerator->IsPrimitiveType($returnIDLType);
+
+ if ($returnTypeIsString) {
+ $callSigBegin .= "*result = WebCore::BString(";
+ $callSigEnd = ").release();\n";
+ } elsif ($returnTypeIsPrimitive) {
+ my $primitiveCOMType = GetClassName($returnIDLType);
+ $callSigBegin .= "*result = static_cast<${primitiveCOMType}>(";
+ $callSigEnd = ");";
+ } else {
+ $CPPImplementationIncludesAngle{"wtf/GetPtr.h"} = 1;
+ my $returnImplementationType = IDLTypeToImplementationType($returnIDLType);
+ my $returnTypeCOMInterfaceName = GetInterfaceName($returnIDLType);
+ $callSigBegin .= "${returnImplementationType}* resultImpl = WTF::getPtr(";
+ $callSigEnd = ");\n";
+ $callSigEnd .= " if (!resultImpl)\n";
+ $callSigEnd .= " return E_POINTER;\n\n";
+ $callSigEnd .= " *result = to${returnTypeCOMInterfaceName}(resultImpl);";
+ }
+ }
+
+ push(@functionImplementation, $signature);
+ push(@functionImplementation, "{\n");
+ unless ($noReturn) {
+ push(@functionImplementation, " if (!result)\n");
+ push(@functionImplementation, " return E_POINTER;\n\n");
+ push(@functionImplementation, " *result = 0;\n\n") if $needsCustom{"CanReturnEarly"};
+ }
+ push(@functionImplementation, " WebCore::ExceptionCode ec = 0;\n") if $raisesExceptions; # FIXME: CHECK EXCEPTION AND DO SOMETHING WITH IT
+ push(@functionImplementation, join("\n", @parameterInitialization) . (@parameterInitialization > 0 ? "\n" : ""));
+ if ($requiresEventTargetNodeCast) {
+ push(@functionImplementation, " if (!impl${implementationClassWithoutNamespace}()->isEventTargetNode())\n");
+ push(@functionImplementation, " return E_FAIL;\n");
+ }
+ push(@functionImplementation, $callSigBegin . $callSigMiddle . $callSigEnd . "\n");
+ push(@functionImplementation, " return S_OK;\n");
+ push(@functionImplementation, "}\n\n");
+
+ return join("", @functionImplementation);
+}
+
+
+# -----------------------------------------------------------------------------
+# CPP Header
+# -----------------------------------------------------------------------------
+
+sub GenerateCPPHeader
+{
+ my ($object, $dataNode) = @_;
+
+ my $IDLType = $dataNode->name;
+ my $implementationClass = IDLTypeToImplementationType($IDLType);
+ my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+ my $className = GetClassName($IDLType);
+ my $interfaceName = GetInterfaceName($IDLType);
+
+ my $parentClassName = GetParentClass($dataNode);
+ my @otherInterfacesImplemented = GetAdditionalInterfaces($IDLType);
+ foreach my $otherInterface (@otherInterfacesImplemented) {
+ push(@additionalInterfaceDefinitions, $codeGenerator->ParseInterface($otherInterface));
+ }
+
+ # FIXME: strip whitespace from UUID
+ my $uuid = $dataNode->extendedAttributes->{"ImplementationUUID"} || die "All classes require an ImplementationUUID extended attribute.";
+
+ my $numAttributes = @{$dataNode->attributes};
+ my $numFunctions = @{$dataNode->functions};
+
+ # - Add default header template
+ @CPPHeaderHeader = @licenseTemplate;
+ push(@CPPHeaderHeader, "\n");
+
+ # - Header gaurds -
+ push(@CPPHeaderHeader, "#ifndef " . $className . "_h\n");
+ push(@CPPHeaderHeader, "#define " . $className . "_h\n\n");
+
+ AddIncludesForTypeInCPPHeader($interfaceName);
+ AddIncludesForTypeInCPPHeader($parentClassName);
+ $CPPHeaderDontForwardDeclarations{$className} = 1;
+ $CPPHeaderDontForwardDeclarations{$interfaceName} = 1;
+ $CPPHeaderDontForwardDeclarations{$parentClassName} = 1;
+
+ # -- Forward declare implementation type
+ push(@CPPHeaderContent, "namespace WebCore {\n");
+ push(@CPPHeaderContent, " class ". StripNamespace($implementationClass) . ";\n");
+ push(@CPPHeaderContent, "}\n\n");
+
+ # -- Start Class --
+ my @parentsClasses = ($parentClassName, $interfaceName);
+ push(@parentsClasses, map { GetInterfaceName($_) } @otherInterfacesImplemented);
+ push(@CPPHeaderContent, "class __declspec(uuid(\"$uuid\")) ${className} : " . join(", ", map { "public $_" } @parentsClasses) . " {\n");
+
+ # Add includes for all additional interfaces to implement
+ map { AddIncludesForTypeInCPPHeader(GetInterfaceName($_)) } @otherInterfacesImplemented;
+
+ # -- BASICS --
+ # FIXME: The constructor and destructor should be protected, but the current design of
+ # createInstance requires them to be public. One solution is to friend the constructor
+ # of the top-level-class with every one of its child classes, but that requires information
+ # this script currently does not have, though possibly could determine.
+ push(@CPPHeaderContent, "public:\n");
+ push(@CPPHeaderContent, " ${className}(${implementationClass}*);\n");
+ push(@CPPHeaderContent, " virtual ~${className}();\n\n");
+
+ push(@CPPHeaderContent, "public:\n");
+ push(@CPPHeaderContent, " static ${className}* createInstance(${implementationClass}*);\n\n");
+
+ push(@CPPHeaderContent, " // IUnknown\n");
+ push(@CPPHeaderContent, " virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void** ppvObject);\n");
+ push(@CPPHeaderContent, " virtual ULONG STDMETHODCALLTYPE AddRef() { return ${parentClassName}::AddRef(); }\n");
+ push(@CPPHeaderContent, " virtual ULONG STDMETHODCALLTYPE Release() { return ${parentClassName}::Release(); }\n\n");
+
+
+ # -- Parent Class Forwards --
+ if (@{$dataNode->parents}) {
+ my %attributeNameSet = map {($_->signature->name, 1)} @{$dataNode->attributes};
+ my %functionNameSet = map {($_->signature->name, 1)} @{$dataNode->functions};
+
+ my @parentLists = $codeGenerator->GetMethodsAndAttributesFromParentClasses($dataNode);
+ push(@CPPHeaderContent, "\n");
+ foreach my $parentHash (@parentLists) {
+
+ push(@CPPHeaderContent, " // " . GetInterfaceName($parentHash->{'name'}) . $DASHES . "\n");
+
+ my @attributeList = @{$parentHash->{'attributes'}};
+ push(@CPPHeaderContent, " // Attributes\n");
+ foreach my $attribute (@attributeList) {
+ # Don't forward an attribute that this class redefines.
+ next if $attributeNameSet{$attribute->signature->name};
+
+ AddForwardDeclarationsForTypeInCPPHeader($attribute->signature->type);
+
+ my %attributes = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 0,
+ "Indent" => 4,
+ "IncludeSemiColon" => 0,
+ "AddVirtualKeyword" => 1,
+ "UseClassName" => 0,
+ "Forwarder" => $parentClassName });
+ push(@CPPHeaderContent, values(%attributes));
+ }
+
+ # Add attribute names to attribute names set in case other ancestors
+ # also define them.
+ $attributeNameSet{$_->signature->name} = 1 foreach @attributeList;
+
+ push(@CPPHeaderContent, "\n");
+
+ my @functionList = @{$parentHash->{'functions'}};
+ push(@CPPHeaderContent, " // Functions\n");
+ foreach my $function (@functionList) {
+ # Don't forward a function that this class redefines.
+ next if $functionNameSet{$function->signature->name};
+
+ AddForwardDeclarationsForTypeInCPPHeader($function->signature->type);
+ AddForwardDeclarationsForTypeInCPPHeader($_->type) foreach (@{$function->parameters});
+
+ my $functionSig = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 0,
+ "Indent" => 4,
+ "IncludeSemiColon" => 0,
+ "AddVirtualKeyword" => 1,
+ "UseClassName" => 0,
+ "Forwarder" => $parentClassName });
+
+ push(@CPPHeaderContent, $functionSig);
+ }
+ # Add functions names to functions names set in case other ancestors
+ # also define them.
+ $functionNameSet{$_->signature->name} = 1 foreach @functionList;
+
+ push(@CPPHeaderContent, "\n");
+ }
+ }
+
+ # - Additional interfaces to implement -
+ foreach my $interfaceToImplement (@additionalInterfaceDefinitions) {
+ my $IDLTypeOfInterfaceToImplement = $interfaceToImplement->name;
+ my $nameOfInterfaceToImplement = GetInterfaceName($IDLTypeOfInterfaceToImplement);
+ my $numAttributesInInterface = @{$interfaceToImplement->attributes};
+ my $numFunctionsInInterface = @{$interfaceToImplement->functions};
+
+ push(@CPPHeaderContent, " // ${nameOfInterfaceToImplement} ${DASHES}\n\n");
+
+ # - Add attribute getters/setters.
+ if ($numAttributesInInterface > 0) {
+ push(@CPPHeaderContent, " // Attributes\n\n");
+ foreach my $attribute (@{$interfaceToImplement->attributes}) {
+ AddForwardDeclarationsForTypeInCPPHeader($attribute->signature->type);
+
+ my %attributeSigs = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 1,
+ "Indent" => 4,
+ "IncludeSemiColon" => 1,
+ "AddVirtualKeyword" => 1,
+ "UseClassName" => 0 });
+
+ push(@CPPHeaderContent, values(%attributeSigs));
+ push(@CPPHeaderContent, "\n");
+ }
+ }
+
+ # - Add functions.
+ if ($numFunctionsInInterface > 0) {
+ push(@CPPHeaderContent, " // Functions\n\n");
+ foreach my $function (@{$interfaceToImplement->functions}) {
+ AddForwardDeclarationsForTypeInCPPHeader($function->signature->type);
+ AddForwardDeclarationsForTypeInCPPHeader($_->type) foreach (@{$function->parameters});
+
+ my $functionSig = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 1,
+ "Indent" => 4,
+ "IncludeSemiColon" => 1,
+ "AddVirtualKeyword" => 1,
+ "UseClassName" => 0 });
+
+ push(@CPPHeaderContent, $functionSig);
+ push(@CPPHeaderContent, "\n");
+ }
+ }
+ }
+
+ if ($numAttributes > 0 || $numFunctions > 0) {
+ push(@CPPHeaderContent, " // ${interfaceName} ${DASHES}\n\n");
+ }
+
+ # - Add constants COMING SOON
+
+ # - Add attribute getters/setters.
+ if ($numAttributes > 0) {
+ push(@CPPHeaderContent, " // Attributes\n\n");
+ foreach my $attribute (@{$dataNode->attributes}) {
+ AddForwardDeclarationsForTypeInCPPHeader($attribute->signature->type);
+
+ my %attributeSigs = GenerateCPPAttributeSignature($attribute, $className, { "NewLines" => 1,
+ "Indent" => 4,
+ "IncludeSemiColon" => 1,
+ "AddVirtualKeyword" => 1,
+ "UseClassName" => 0 });
+
+ push(@CPPHeaderContent, values(%attributeSigs));
+ push(@CPPHeaderContent, "\n");
+ }
+ }
+
+ # - Add functions.
+ if ($numFunctions > 0) {
+ push(@CPPHeaderContent, " // Functions\n\n");
+ foreach my $function (@{$dataNode->functions}) {
+ AddForwardDeclarationsForTypeInCPPHeader($function->signature->type);
+ AddForwardDeclarationsForTypeInCPPHeader($_->type) foreach (@{$function->parameters});
+
+ my $functionSig = GenerateCPPFunctionSignature($function, $className, { "NewLines" => 1,
+ "Indent" => 4,
+ "IncludeSemiColon" => 1,
+ "AddVirtualKeyword" => 1,
+ "UseClassName" => 0 });
+
+ push(@CPPHeaderContent, $functionSig);
+ push(@CPPHeaderContent, "\n");
+ }
+ }
+
+ push(@CPPHeaderContent, " ${implementationClass}* impl${implementationClassWithoutNamespace}() const;\n");
+
+ if (@{$dataNode->parents} == 0) {
+ AddIncludesForTypeInCPPHeader("wtf/RefPtr", 1);
+ push(@CPPHeaderContent, "\n");
+ push(@CPPHeaderContent, " ${implementationClass}* impl() const { return m_impl.get(); }\n\n");
+ push(@CPPHeaderContent, "private:\n");
+ push(@CPPHeaderContent, " RefPtr<${implementationClass}> m_impl;\n");
+ }
+
+ # -- End Class --
+ push(@CPPHeaderContent, "};\n\n");
+
+ # -- Default Interface Creator --
+ push(@CPPHeaderContent, "${interfaceName}* to${interfaceName}(${implementationClass}*);\n\n");
+
+ push(@CPPHeaderContent, "#endif // " . $className . "_h\n");
+}
+
+
+# -----------------------------------------------------------------------------
+# CPP Implementation
+# -----------------------------------------------------------------------------
+
+sub GenerateCPPImplementation
+{
+ my ($object, $dataNode) = @_;
+
+ my $IDLType = $dataNode->name;
+ my $implementationClass = IDLTypeToImplementationType($IDLType);
+ my $implementationClassWithoutNamespace = StripNamespace($implementationClass);
+ my $className = GetClassName($IDLType);
+ my $interfaceName = GetInterfaceName($IDLType);
+
+ my $parentClassName = GetParentClass($dataNode);
+ my $isBaseClass = (@{$dataNode->parents} == 0);
+
+ my $uuid = $dataNode->extendedAttributes->{"ImplementationUUID"} || die "All classes require an ImplementationUUID extended attribute.";
+
+ my $numAttributes = @{$dataNode->attributes};
+ my $numFunctions = @{$dataNode->functions};
+
+ # - Add default header template
+ @CPPImplementationHeader = @licenseTemplate;
+ push(@CPPImplementationHeader, "\n");
+
+ push(@CPPImplementationHeader, "#include \"config.h\"\n");
+ push(@CPPImplementationHeader, "#include \"WebKitDLL.h\"\n");
+ push(@CPPImplementationHeader, "#include " . ($className eq "GEN_DOMImplementation" ? "\"GEN_DOMDOMImplementation.h\"" : "\"${className}.h\"") . "\n");
+ $CPPImplementationDontIncludes{"${className}.h"} = 1;
+ $CPPImplementationWebCoreIncludes{"${implementationClassWithoutNamespace}.h"} = 1;
+
+ # -- Constructor --
+ push(@CPPImplementationContent, "${className}::${className}(${implementationClass}* impl)\n");
+ if ($isBaseClass) {
+ push(@CPPImplementationContent, " : m_impl(impl)\n");
+ push(@CPPImplementationContent, "{\n");
+ push(@CPPImplementationContent, " ASSERT_ARG(impl, impl);\n");
+ push(@CPPImplementationContent, "}\n\n");
+ } else {
+ push(@CPPImplementationContent, " : ${parentClassName}(impl)\n");
+ push(@CPPImplementationContent, "{\n");
+ push(@CPPImplementationContent, "}\n\n");
+ }
+
+ # -- Destructor --
+ push(@CPPImplementationContent, "${className}::~${className}()\n");
+ push(@CPPImplementationContent, "{\n");
+ if ($isBaseClass) {
+ $CPPImplementationIncludes{"DOMCreateInstance.h"} = 1;
+ push(@CPPImplementationContent, " removeDOMWrapper(impl());\n");
+ }
+ push(@CPPImplementationContent, "}\n\n");
+
+ push(@CPPImplementationContent, "${implementationClass}* ${className}::impl${implementationClassWithoutNamespace}() const\n");
+ push(@CPPImplementationContent, "{\n");
+ push(@CPPImplementationContent, " return static_cast<${implementationClass}*>(impl());\n");
+ push(@CPPImplementationContent, "}\n\n");
+
+ # Base classes must implement the createInstance method externally.
+ if (@{$dataNode->parents} != 0) {
+ push(@CPPImplementationContent, "${className}* ${className}::createInstance(${implementationClass}* impl)\n");
+ push(@CPPImplementationContent, "{\n");
+ push(@CPPImplementationContent, " return static_cast<${className}*>(${parentClassName}::createInstance(impl));\n");
+ push(@CPPImplementationContent, "}\n");
+ }
+
+ push(@CPPImplementationContent, "// IUnknown $DASHES\n\n");
+
+ # -- QueryInterface --
+ push(@CPPImplementationContent, "HRESULT STDMETHODCALLTYPE ${className}::QueryInterface(REFIID riid, void** ppvObject)\n");
+ push(@CPPImplementationContent, "{\n");
+ push(@CPPImplementationContent, " *ppvObject = 0;\n");
+ push(@CPPImplementationContent, " if (IsEqualGUID(riid, IID_${interfaceName}))\n");
+ push(@CPPImplementationContent, " *ppvObject = reinterpret_cast<${interfaceName}*>(this);\n");
+ push(@CPPImplementationContent, " else if (IsEqualGUID(riid, __uuidof(${className})))\n");
+ push(@CPPImplementationContent, " *ppvObject = reinterpret_cast<${className}*>(this);\n");
+ push(@CPPImplementationContent, " else\n");
+ push(@CPPImplementationContent, " return ${parentClassName}::QueryInterface(riid, ppvObject);\n\n");
+ push(@CPPImplementationContent, " AddRef();\n");
+ push(@CPPImplementationContent, " return S_OK;\n");
+ push(@CPPImplementationContent, "}\n\n");
+
+ # - Additional interfaces to implement -
+ foreach my $interfaceToImplement (@additionalInterfaceDefinitions) {
+ my $IDLTypeOfInterfaceToImplement = $interfaceToImplement->name;
+ my $nameOfInterfaceToImplement = GetInterfaceName($IDLTypeOfInterfaceToImplement);
+ my $numAttributesInInterface = @{$interfaceToImplement->attributes};
+ my $numFunctionsInInterface = @{$interfaceToImplement->functions};
+
+ push(@CPPImplementationContent, " // ${nameOfInterfaceToImplement} ${DASHES}\n\n");
+
+ if ($numAttributesInInterface > 0) {
+ push(@CPPImplementationContent, "// Attributes\n\n");
+ foreach my $attribute (@{$interfaceToImplement->attributes}) {
+ # FIXME: Do this in one step.
+ # FIXME: Implement exception handling.
+
+ AddIncludesForTypeInCPPImplementation($attribute->signature->type);
+
+ my %attributes = GenerateCPPAttribute($attribute, $className, $implementationClass);
+ push(@CPPImplementationContent, values(%attributes));
+ }
+ }
+
+ # - Add functions.
+ if ($numFunctionsInInterface > 0) {
+ push(@CPPImplementationContent, "// Functions\n\n");
+
+ foreach my $function (@{$interfaceToImplement->functions}) {
+ my $functionImplementation = GenerateCPPFunction($function, $className, $implementationClass);
+ push(@CPPImplementationContent, $functionImplementation);
+ }
+ }
+ }
+
+ push(@CPPImplementationContent, "// ${interfaceName} $DASHES\n\n");
+
+ # - Add attribute getters/setters.
+ if ($numAttributes > 0) {
+ push(@CPPImplementationContent, "// Attributes\n\n");
+ foreach my $attribute (@{$dataNode->attributes}) {
+ # FIXME: do this in one step
+ my $hasSetterException = @{$attribute->setterExceptions};
+ my $hasGetterException = @{$attribute->getterExceptions};
+
+ AddIncludesForTypeInCPPImplementation($attribute->signature->type);
+
+ my %attributes = GenerateCPPAttribute($attribute, $className, $implementationClass);
+ push(@CPPImplementationContent, values(%attributes));
+ }
+ }
+
+ # - Add functions.
+ if ($numFunctions > 0) {
+ push(@CPPImplementationContent, "// Functions\n\n");
+
+ foreach my $function (@{$dataNode->functions}) {
+ my $functionImplementation = GenerateCPPFunction($function, $className, $implementationClass);
+ push(@CPPImplementationContent, $functionImplementation);
+ }
+ }
+
+ # - Default implementation for interface creator.
+ # FIXME: add extended attribute to add custom implementation if necessary.
+ push(@CPPImplementationContent, "${interfaceName}* to${interfaceName}(${implementationClass}* impl)\n");
+ push(@CPPImplementationContent, "{\n");
+ push(@CPPImplementationContent, " return ${className}::createInstance(impl);\n");
+ push(@CPPImplementationContent, "}\n");
+}
+
+sub WriteData
+{
+ my ($object, $name, $pureInterface) = @_;
+
+ # -- IDL --
+ my $IDLFileName = "$outputDir/I" . $TEMP_PREFIX . "DOM" . $name . ".idl";
+ unlink($IDLFileName);
+
+ # Write to output IDL.
+ open(OUTPUTIDL, ">$IDLFileName") or die "Couldn't open file $IDLFileName";
+
+ # Add header
+ print OUTPUTIDL @IDLHeader;
+
+ # Add forward declarations and imorts
+ delete $IDLForwardDeclarations{keys(%IDLDontForwardDeclare)};\r
+ delete $IDLImports{keys(%IDLDontImport)};
+
+ print OUTPUTIDL map { "cpp_quote(\"interface $_;\")\n" } sort keys(%IDLForwardDeclarations);
+ print OUTPUTIDL "\n";
+
+ print OUTPUTIDL map { "interface $_;\n" } sort keys(%IDLForwardDeclarations);
+ print OUTPUTIDL "\n";
+ print OUTPUTIDL map { ($_ eq "IGEN_DOMImplementation") ? "import \"IGEN_DOMDOMImplementation.idl\";\n" : "import \"$_.idl\";\n" } sort keys(%IDLImports);
+ print OUTPUTIDL "\n";
+
+ # Add content
+ print OUTPUTIDL @IDLContent;
+
+ close(OUTPUTIDL);
+
+ @IDLHeader = ();
+ @IDLContent = ();
+
+ if ($pureInterface) {
+ my $CPPInterfaceHeaderFileName = "$outputDir/" . $TEMP_PREFIX . "DOM" . $name . ".h";
+ unlink($CPPInterfaceHeaderFileName);
+
+ open(OUTPUTCPPInterfaceHeader, ">$CPPInterfaceHeaderFileName") or die "Couldn't open file $CPPInterfaceHeaderFileName";
+
+ print OUTPUTCPPInterfaceHeader @CPPInterfaceHeader;
+
+ close(OUTPUTCPPInterfaceHeader);
+
+ @CPPInterfaceHeader = ();
+ } else {
+ my $CPPHeaderFileName = "$outputDir/" . $TEMP_PREFIX . "DOM" . $name . ".h";
+ unlink($CPPHeaderFileName);
+
+ # -- CPP Header --
+ open(OUTPUTCPPHeader, ">$CPPHeaderFileName") or die "Couldn't open file $CPPHeaderFileName";
+
+ # Add header
+ print OUTPUTCPPHeader @CPPHeaderHeader;
+
+ # Add includes
+ print OUTPUTCPPHeader map { ($_ eq "GEN_DOMImplementation.h") ? "#include \"GEN_DOMDOMImplementation.h\"\n" : "#include \"$_\"\n" } sort keys(%CPPHeaderIncludes);
+ print OUTPUTCPPHeader map { "#include <$_>\n" } sort keys(%CPPHeaderIncludesAngle);
+
+ foreach my $dontDeclare (keys(%CPPHeaderDontForwardDeclarations)) {
+ delete $CPPHeaderForwardDeclarations{$dontDeclare} if ($CPPHeaderForwardDeclarations{$dontDeclare});
+ }
+ print OUTPUTCPPHeader "\n";
+ print OUTPUTCPPHeader map { "interface $_;\n" } sort keys(%CPPHeaderForwardDeclarations);
+ print OUTPUTCPPHeader "\n";
+
+ # Add content
+ print OUTPUTCPPHeader @CPPHeaderContent;
+
+ close(OUTPUTCPPHeader);
+
+ @CPPHeaderHeader = ();
+ @CPPHeaderContent = ();
+
+
+ # -- CPP Implementation --
+ my $CPPImplementationFileName = "$outputDir/" . $TEMP_PREFIX . "DOM" . $name . ".cpp";
+ unlink($CPPImplementationFileName);
+
+ open(OUTPUTCPPImplementation, ">$CPPImplementationFileName") or die "Couldn't open file $CPPImplementationFileName";
+
+ # Add header
+ print OUTPUTCPPImplementation @CPPImplementationHeader;
+ print OUTPUTCPPImplementation "\n";
+
+ # Add includes
+ foreach my $dontInclude (keys(%CPPImplementationDontIncludes)) {
+ delete $CPPImplementationIncludes{$dontInclude} if ($CPPImplementationIncludes{$dontInclude});
+ }
+ print OUTPUTCPPImplementation map { ($_ eq "GEN_DOMImplementation.h") ? "#include \"GEN_DOMDOMImplementation.h\"\n" : "#include \"$_\"\n" } sort keys(%CPPImplementationIncludes);
+ print OUTPUTCPPImplementation map { "#include <$_>\n" } sort keys(%CPPImplementationIncludesAngle);
+ print OUTPUTCPPImplementation "\n";
+
+ print OUTPUTCPPImplementation "#pragma warning(push, 0)\n";
+ print OUTPUTCPPImplementation map { "#include <WebCore/$_>\n" } sort keys(%CPPImplementationWebCoreIncludes);
+ print OUTPUTCPPImplementation "#pragma warning(pop)\n";
+
+ # Add content
+ print OUTPUTCPPImplementation @CPPImplementationContent;
+
+ close(OUTPUTCPPImplementation);
+
+ @CPPImplementationHeader = ();
+ @CPPImplementationContent = ();
+ }
+}
+
+1;
class EventListener : public Shared<EventListener> {
public:
virtual ~EventListener() { }
- virtual void handleEvent(Event*, bool isWindowEvent) = 0;
+ virtual void handleEvent(Event*, bool isWindowEvent = false) = 0;
virtual bool isHTMLEventListener() const { return false; }
};
+2007-11-04 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Adam Roben.
+
+ <rdar://problem/5435940>
+ The COM bindings for the DOM should be autogenerated like the other DOM bindings
+
+ Initial commit of the autogeneration of the COM DOM Bindings. No behavior change
+ is being introduced in this patch and to insure that no conflicts arise, a temporary
+ prefix of "GEN_" has been used for all the new classes.
+
+ The build architecture for these bindings differs slightly from the other autogenerated
+ bindings. Instead of building in WebCore and migrating the resuting code to WebKit (as
+ is done for the Objective-C bindigs currently), the IDLs and generation scripts are
+ migrated to WebKit and built there. This is done with a series of scripts and Makefiles.
+
+ This commit includes:
+ - Hand rolled root class/Interface GEN_DOMObject used to facilated object creation
+ and ref-counting.
+ - Generating all of the Core DOM and most of HTML and CSS
+ - Generating Event, EventTarget, and EventListener
+
+ * DOMCreateInstance.cpp: Added.
+ (domWrapperCache):
+ (getDOMWrapper):
+ (setDOMWrapper):
+ (removeDOMWrapper):
+ (GEN_DOMNode::createInstance):
+ (GEN_DOMImplementation::createInstance):
+ (GEN_DOMCSSRule::createInstance):
+ (GEN_DOMStyleSheet::createInstance):
+ (GEN_DOMCSSValue::createInstance):
+ * DOMCreateInstance.h: Added.
+ Temporary location for createInstance/object caching methods. This will be broken up
+ into seperate files in the near future.
+
+ * GEN_DOMObject.cpp: Added.
+ (GEN_DOMObject::GEN_DOMObject):
+ (GEN_DOMObject::~GEN_DOMObject):
+ (GEN_DOMObject::QueryInterface):
+ (GEN_DOMObject::AddRef):
+ (GEN_DOMObject::Release):
+ * GEN_DOMObject.h: Added.
+ Hand rolled base class.
+
+ * Interfaces/IGEN_DOMObject.idl: Added.
+ Hand rolled base interface.
+
+ * WebKit.vcproj/DerivedSources.make: Added.
+ * WebKit.vcproj/FixMIDLHeaders.pl: Added.
+ This script is required because MIDL is producing un-buildable code due to
+ circular dependencies.
+
+ * WebKit.vcproj/Interfaces.vcproj:
+ * WebKit.vcproj/WebKit.vcproj:
+ * WebKit.vcproj/WebKitGUID.vcproj:
+ * WebKit.vcproj/build-generated-files.sh: Added.
+
2007-11-08 Kevin McCullough <kmccullough@apple.com>
Reviewed by Adam.
--- /dev/null
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// This file is a temporary hack to implement the createInstance methods for
+// the COM DOM bindings.
+
+#include "config.h"
+#include "DOMCreateInstance.h"
+
+#include "GEN_DOMNode.h"
+#include "GEN_DOMElement.h"
+#include "GEN_DOMDocument.h"
+#include "GEN_DOMAttr.h"
+#include "GEN_DOMText.h"
+#include "GEN_DOMCDATASection.h"
+#include "GEN_DOMEntityReference.h"
+#include "GEN_DOMEntity.h"
+#include "GEN_DOMProcessingInstruction.h"
+#include "GEN_DOMComment.h"
+#include "GEN_DOMHTMLElement.h"
+#include "GEN_DOMHTMLDocument.h"
+#include "GEN_DOMHTMLCollection.h"
+#include "GEN_DOMDocumentType.h"
+#include "GEN_DOMDocumentFragment.h"
+#include "GEN_DOMNotation.h"
+#include "GEN_DOMCSSCharsetRule.h"
+#include "GEN_DOMCSSFontFaceRule.h"
+#include "GEN_DOMCSSImportRule.h"
+#include "GEN_DOMCSSMediaRule.h"
+#include "GEN_DOMCSSPageRule.h"
+#include "GEN_DOMCSSPrimitiveValue.h"
+#include "GEN_DOMCSSRule.h"
+#include "GEN_DOMCSSRuleList.h"
+#include "GEN_DOMCSSStyleDeclaration.h"
+#include "GEN_DOMCSSStyleRule.h"
+#include "GEN_DOMCSSStyleSheet.h"
+#include "GEN_DOMCSSValueList.h"
+#include "GEN_DOMStyleSheet.h"
+#include "GEN_DOMDOMImplementation.h"
+#include "GEN_DOMNamedNodeMap.h"
+#include "GEN_DOMNodeList.h"
+#include "GEN_DOMCounter.h"
+#include "GEN_DOMCSSRuleList.h"
+#include "GEN_DOMCSSStyleDeclaration.h"
+#include "GEN_DOMMediaList.h"
+#include "GEN_DOMRect.h"
+#include "GEN_DOMStyleSheet.h"
+#include "GEN_DOMStyleSheetList.h"
+#include "GEN_DOMEvent.h"
+#include "GEN_DOMEventListener.h"
+#include "GEN_DOMEvent.h"
+#include <wtf/HashMap.h>
+
+#pragma warning(push, 0)
+#include <WebCore/Node.h>
+#include <WebCore/Element.h>
+#include <WebCore/Document.h>
+#include <WebCore/Attr.h>
+#include <WebCore/Text.h>
+#include <WebCore/COMPtr.h>
+#include <WebCore/CDATASection.h>
+#include <WebCore/EntityReference.h>
+#include <WebCore/Entity.h>
+#include <WebCore/ProcessingInstruction.h>
+#include <WebCore/Comment.h>
+#include <WebCore/HTMLDocument.h>
+#include <WebCore/HTMLElement.h>
+#include <WebCore/HTMLCollection.h>
+#include <WebCore/DocumentType.h>
+#include <WebCore/DocumentFragment.h>
+#include <WebCore/Notation.h>
+#include <WebCore/CSSCharsetRule.h>
+#include <WebCore/CSSFontFaceRule.h>
+#include <WebCore/CSSImportRule.h>
+#include <WebCore/CSSMediaRule.h>
+#include <WebCore/CSSPageRule.h>
+#include <WebCore/CSSPrimitiveValue.h>
+#include <WebCore/CSSRule.h>
+#include <WebCore/CSSRuleList.h>
+#include <WebCore/CSSStyleDeclaration.h>
+#include <WebCore/CSSStyleRule.h>
+#include <WebCore/CSSStyleSheet.h>
+#include <WebCore/CSSValueList.h>
+#include <WebCore/StyleSheet.h>
+#include <WebCore/DOMImplementation.h>
+#include <WebCore/NamedNodeMap.h>
+#include <WebCore/NodeList.h>
+#include <WebCore/Counter.h>
+#include <WebCore/CSSRuleList.h>
+#include <WebCore/CSSStyleDeclaration.h>
+#include <WebCore/MediaList.h>
+#include <WebCore/Rect.h>
+#include <WebCore/StyleSheet.h>
+#include <WebCore/StyleSheetList.h>
+#include <WebCore/Event.h>
+#include <WebCore/EventListener.h>
+#pragma warning(pop)
+
+typedef HashMap<void*, GEN_DOMObject*> DOMWrapperCache;
+
+static DOMWrapperCache& domWrapperCache()
+{
+ static DOMWrapperCache cache;
+ return cache;
+}
+
+GEN_DOMObject* getDOMWrapper(void* objectHandle)
+{
+ return domWrapperCache().get(objectHandle);
+}
+
+void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper)
+{
+ domWrapperCache().set(objectHandle, wrapper);
+}
+
+void removeDOMWrapper(void* objectHandle)
+{
+ domWrapperCache().remove(objectHandle);
+}
+
+#define COM_DOM_PREFIX(Type) GEN_DOM##Type
+#define CREATE_ONLY_SELF(Type) \
+ COM_DOM_PREFIX(Type)* COM_DOM_PREFIX(Type)::createInstance(WebCore::Type* impl) \
+ { \
+ if (!impl) \
+ return 0; \
+ if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) { \
+ cachedInstance->AddRef(); \
+ return static_cast<COM_DOM_PREFIX(Type)*>(cachedInstance); \
+ } \
+ COMPtr<COM_DOM_PREFIX(Type)> comDOMObject = new COM_DOM_PREFIX(Type)(impl); \
+ setDOMWrapper(impl, comDOMObject.get()); \
+ return comDOMObject.releaseRef(); \
+ } \
+
+// Core
+
+GEN_DOMNode* GEN_DOMNode::createInstance(WebCore::Node* node)
+{
+ if (!node)
+ return 0;
+
+ if (GEN_DOMObject* cachedInstance = getDOMWrapper(node)) {
+ cachedInstance->AddRef();
+ return static_cast<GEN_DOMNode*>(cachedInstance);
+ }
+
+ COMPtr<GEN_DOMNode> domNode;
+ switch (node->nodeType()) {
+ case WebCore::Node::ELEMENT_NODE:
+ // FIXME: add support for creating subclasses of HTMLElement.
+ // FIXME: add support for creating SVGElements and its subclasses.
+ if (node->isHTMLElement())
+ domNode = new GEN_DOMHTMLElement(static_cast<WebCore::HTMLElement*>(node));
+ else
+ domNode = new GEN_DOMElement(static_cast<WebCore::Element*>(node));
+ break;
+ case WebCore::Node::ATTRIBUTE_NODE:
+ domNode = new GEN_DOMAttr(static_cast<WebCore::Attr*>(node));
+ break;
+ case WebCore::Node::TEXT_NODE:
+ domNode = new GEN_DOMText(static_cast<WebCore::Text*>(node));
+ break;
+ case WebCore::Node::CDATA_SECTION_NODE:
+ domNode = new GEN_DOMCDATASection(static_cast<WebCore::CDATASection*>(node));
+ break;
+ case WebCore::Node::ENTITY_REFERENCE_NODE:
+ domNode = new GEN_DOMEntityReference(static_cast<WebCore::EntityReference*>(node));
+ break;
+ case WebCore::Node::ENTITY_NODE:
+ domNode = new GEN_DOMEntity(static_cast<WebCore::Entity*>(node));
+ break;
+ case WebCore::Node::PROCESSING_INSTRUCTION_NODE:
+ domNode = new GEN_DOMProcessingInstruction(static_cast<WebCore::ProcessingInstruction*>(node));
+ break;
+ case WebCore::Node::COMMENT_NODE:
+ domNode = new GEN_DOMComment(static_cast<WebCore::Comment*>(node));
+ break;
+ case WebCore::Node::DOCUMENT_NODE:
+ // FIXME: add support for SVGDocument.
+ if (static_cast<WebCore::Document*>(node)->isHTMLDocument())
+ domNode = new GEN_DOMHTMLDocument(static_cast<WebCore::HTMLDocument*>(node));
+ else
+ domNode = new GEN_DOMDocument(static_cast<WebCore::Document*>(node));
+ break;
+ case WebCore::Node::DOCUMENT_TYPE_NODE:
+ domNode = new GEN_DOMDocumentType(static_cast<WebCore::DocumentType*>(node));
+ break;
+ case WebCore::Node::DOCUMENT_FRAGMENT_NODE:
+ domNode = new GEN_DOMDocumentFragment(static_cast<WebCore::DocumentFragment*>(node));
+ break;
+ case WebCore::Node::NOTATION_NODE:
+ domNode = new GEN_DOMNotation(static_cast<WebCore::Notation*>(node));
+ break;
+ default:
+ domNode = new GEN_DOMNode(node);
+ break;
+ }
+
+ setDOMWrapper(node, domNode.get());
+ return domNode.releaseRef();
+}
+
+GEN_DOMImplementation* GEN_DOMImplementation::createInstance(WebCore::DOMImplementation* impl)
+{
+ if (!impl)
+ return 0;
+
+ if (GEN_DOMObject* cachedInstance = getDOMWrapper(impl)) {
+ cachedInstance->AddRef();
+ return static_cast<GEN_DOMImplementation*>(cachedInstance);
+ }
+
+ COMPtr<GEN_DOMImplementation> comDOMObject = new GEN_DOMImplementation(impl);
+ setDOMWrapper(impl, comDOMObject.get());
+ return comDOMObject.releaseRef();
+}
+
+CREATE_ONLY_SELF(NamedNodeMap)
+CREATE_ONLY_SELF(NodeList)
+
+// Events
+
+// FIXME: Add the subclasses for Event when they get generated.
+CREATE_ONLY_SELF(Event)
+CREATE_ONLY_SELF(EventListener)
+
+
+// CSS
+
+GEN_DOMCSSRule* GEN_DOMCSSRule::createInstance(WebCore::CSSRule* rule)
+{
+ if (!rule)
+ return 0;
+
+ if (GEN_DOMObject* cachedInstance = getDOMWrapper(rule)) {
+ cachedInstance->AddRef();
+ return static_cast<GEN_DOMCSSRule*>(cachedInstance);
+ }
+
+ COMPtr<GEN_DOMCSSRule> domRule;
+ switch (rule->type()) {
+ case WebCore::CSSRule::STYLE_RULE:
+ domRule = new GEN_DOMCSSStyleRule(static_cast<WebCore::CSSStyleRule*>(rule));
+ break;
+ case WebCore::CSSRule::CHARSET_RULE:
+ domRule = new GEN_DOMCSSCharsetRule(static_cast<WebCore::CSSCharsetRule*>(rule));
+ break;
+ case WebCore::CSSRule::IMPORT_RULE:
+ domRule = new GEN_DOMCSSImportRule(static_cast<WebCore::CSSImportRule*>(rule));
+ break;
+ case WebCore::CSSRule::MEDIA_RULE:
+ domRule = new GEN_DOMCSSMediaRule(static_cast<WebCore::CSSMediaRule*>(rule));
+ break;
+ case WebCore::CSSRule::FONT_FACE_RULE:
+ domRule = new GEN_DOMCSSFontFaceRule(static_cast<WebCore::CSSFontFaceRule*>(rule));
+ break;
+ case WebCore::CSSRule::PAGE_RULE:
+ domRule = new GEN_DOMCSSPageRule(static_cast<WebCore::CSSPageRule*>(rule));
+ break;
+ case WebCore::CSSRule::UNKNOWN_RULE:
+ default:
+ domRule = new GEN_DOMCSSRule(rule);
+ break;
+ }
+
+ setDOMWrapper(rule, domRule.get());
+ return domRule.releaseRef();
+}
+
+GEN_DOMStyleSheet* GEN_DOMStyleSheet::createInstance(WebCore::StyleSheet* styleSheet)
+{
+ if (!styleSheet)
+ return 0;
+
+ if (GEN_DOMObject* cachedInstance = getDOMWrapper(styleSheet)) {
+ cachedInstance->AddRef();
+ return static_cast<GEN_DOMStyleSheet*>(cachedInstance);
+ }
+
+ COMPtr<GEN_DOMStyleSheet> domStyleSheet;
+ if (styleSheet->isCSSStyleSheet())
+ domStyleSheet = new GEN_DOMCSSStyleSheet(static_cast<WebCore::CSSStyleSheet*>(styleSheet));
+ else
+ domStyleSheet = new GEN_DOMStyleSheet(styleSheet);
+
+ setDOMWrapper(styleSheet, domStyleSheet.get());
+ return domStyleSheet.releaseRef();
+}
+
+
+GEN_DOMCSSValue* GEN_DOMCSSValue::createInstance(WebCore::CSSValue* value)
+{
+ if (!value)
+ return 0;
+
+ if (GEN_DOMObject* cachedInstance = getDOMWrapper(value)) {
+ cachedInstance->AddRef();
+ return static_cast<GEN_DOMCSSValue*>(cachedInstance);
+ }
+
+ COMPtr<GEN_DOMCSSValue> domValue;
+ switch (value->cssValueType()) {
+ case WebCore::CSSValue::CSS_PRIMITIVE_VALUE:
+ domValue = new GEN_DOMCSSPrimitiveValue(static_cast<WebCore::CSSPrimitiveValue*>(value));
+ break;
+ case WebCore::CSSValue::CSS_VALUE_LIST:
+ domValue = new GEN_DOMCSSValueList(static_cast<WebCore::CSSValueList*>(value));
+ break;
+ case WebCore::CSSValue::CSS_INHERIT:
+ domValue = new GEN_DOMCSSValue(value);
+ break;
+ case WebCore::CSSValue::CSS_CUSTOM:
+ // FIXME: add support for SVGPaint and SVGColor
+ domValue = new GEN_DOMCSSValue(value);
+ break;
+ }
+
+ setDOMWrapper(value, domValue.get());
+ return domValue.releaseRef();
+}
+
+CREATE_ONLY_SELF(Counter)
+CREATE_ONLY_SELF(CSSRuleList)
+CREATE_ONLY_SELF(CSSStyleDeclaration)
+CREATE_ONLY_SELF(MediaList)
+CREATE_ONLY_SELF(Rect)
+CREATE_ONLY_SELF(StyleSheetList)
+
+
+// HTML
+
+CREATE_ONLY_SELF(HTMLCollection)
--- /dev/null
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DOMCreateInstance_h
+#define DOMCreateInstance_h
+
+class GEN_DOMObject;
+
+GEN_DOMObject* getDOMWrapper(void* objectHandle);
+void setDOMWrapper(void* objectHandle, GEN_DOMObject* wrapper);
+void removeDOMWrapper(void* objectHandle);
+
+#endif // DOMCreateInstance_h
--- /dev/null
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WebKitDLL.h"
+
+#include "GEN_DOMObject.h"
+
+#include <wtf/Assertions.h>
+
+// DOMObject ------------------------------------------------------------
+
+GEN_DOMObject::GEN_DOMObject()
+ : m_refCount(0)
+{
+ gClassCount++;
+}
+
+GEN_DOMObject::~GEN_DOMObject()
+{
+ gClassCount--;
+}
+
+// IUnknown -------------------------------------------------------------------
+
+HRESULT STDMETHODCALLTYPE GEN_DOMObject::QueryInterface(REFIID riid, void** ppvObject)
+{
+ *ppvObject = 0;
+ if (IsEqualGUID(riid, IID_IUnknown))
+ *ppvObject = static_cast<IGEN_DOMObject*>(this);
+ else if (IsEqualGUID(riid, IID_IGEN_DOMObject))
+ *ppvObject = static_cast<GEN_DOMObject*>(this);
+ else
+ return E_NOINTERFACE;
+
+ AddRef();
+ return S_OK;
+}
+
+ULONG STDMETHODCALLTYPE GEN_DOMObject::AddRef()
+{
+ return ++m_refCount;
+}
+
+ULONG STDMETHODCALLTYPE GEN_DOMObject::Release()
+{
+ ULONG newRef = --m_refCount;
+ if (!newRef)
+ delete this;
+
+ return newRef;
+}
--- /dev/null
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef GEN_DOMObject_h
+#define GEN_DOMObject_h
+
+#include "IGEN_DOMObject.h"
+
+class GEN_DOMObject : public IGEN_DOMObject {
+public:
+ // IUnknown
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void** ppvObject);
+ virtual ULONG STDMETHODCALLTYPE AddRef();
+ virtual ULONG STDMETHODCALLTYPE Release();
+
+protected:
+ GEN_DOMObject();
+ virtual ~GEN_DOMObject();
+
+ ULONG m_refCount;
+};
+
+#endif // GEN_DOMObject_h
--- /dev/null
+/*
+ * Copyright (C) 2007 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+cpp_quote("/*")\r
+cpp_quote(" * Copyright (C) 2007 Apple Inc. All rights reserved.")\r
+cpp_quote(" *")\r
+cpp_quote(" * Redistribution and use in source and binary forms, with or without")\r
+cpp_quote(" * modification, are permitted provided that the following conditions")\r
+cpp_quote(" * are met:")\r
+cpp_quote(" *")\r
+cpp_quote(" * 1. Redistributions of source code must retain the above copyright")\r
+cpp_quote(" * notice, this list of conditions and the following disclaimer.")\r
+cpp_quote(" * 2. Redistributions in binary form must reproduce the above copyright")\r
+cpp_quote(" * notice, this list of conditions and the following disclaimer in the")\r
+cpp_quote(" * documentation and/or other materials provided with the distribution.")\r
+cpp_quote(" * 3. Neither the name of Apple Computer, Inc. (\"Apple\") nor the names of")\r
+cpp_quote(" * its contributors may be used to endorse or promote products derived")\r
+cpp_quote(" * from this software without specific prior written permission.")\r
+cpp_quote(" *")\r
+cpp_quote(" * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS \"AS IS\" AND ANY")\r
+cpp_quote(" * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED")\r
+cpp_quote(" * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE")\r
+cpp_quote(" * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY")\r
+cpp_quote(" * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES")\r
+cpp_quote(" * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;")\r
+cpp_quote(" * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND")\r
+cpp_quote(" * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT")\r
+cpp_quote(" * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF")\r
+cpp_quote(" * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.")\r
+cpp_quote(" */")
+
+import "oaidl.idl";
+import "ocidl.idl";
+
+[
+ object,
+ oleautomation,
+ uuid(19DD35E3-BFEC-40f5-A69F-02C5D76791E4),
+ pointer_default(unique)
+]
+interface IGEN_DOMObject : IUnknown
+{
+}
--- /dev/null
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of Apple puter, Inc. ("Apple") nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PREFIX = IGEN_DOM
+
+.PHONY : all
+all : \
+ $(PREFIX)Node.idl \
+ $(PREFIX)Attr.idl \
+ $(PREFIX)NodeList.idl \
+ $(PREFIX)Element.idl \
+ $(PREFIX)Document.idl \
+ $(PREFIX)CharacterData.idl \
+ $(PREFIX)CDATASection.idl \
+ $(PREFIX)Comment.idl \
+ $(PREFIX)Text.idl \
+ $(PREFIX)DocumentFragment.idl \
+ $(PREFIX)DocumentType.idl \
+ $(PREFIX)DOMImplementation.idl \
+ $(PREFIX)Entity.idl \
+ $(PREFIX)EntityReference.idl \
+ $(PREFIX)NamedNodeMap.idl \
+ $(PREFIX)Notation.idl \
+ $(PREFIX)ProcessingInstruction.idl \
+ \
+ $(PREFIX)HTMLAnchorElement.idl \
+ $(PREFIX)HTMLAppletElement.idl \
+ $(PREFIX)HTMLAreaElement.idl \
+ $(PREFIX)HTMLBRElement.idl \
+ $(PREFIX)HTMLBaseElement.idl \
+ $(PREFIX)HTMLBaseFontElement.idl \
+ $(PREFIX)HTMLBlockquoteElement.idl \
+ $(PREFIX)HTMLBodyElement.idl \
+ $(PREFIX)HTMLButtonElement.idl \
+ $(PREFIX)HTMLCollection.idl \
+ $(PREFIX)HTMLDListElement.idl \
+ $(PREFIX)HTMLDirectoryElement.idl \
+ $(PREFIX)HTMLDivElement.idl \
+ $(PREFIX)HTMLDocument.idl \
+ $(PREFIX)HTMLElement.idl \
+ $(PREFIX)HTMLEmbedElement.idl \
+ $(PREFIX)HTMLFieldSetElement.idl \
+ $(PREFIX)HTMLFontElement.idl \
+ $(PREFIX)HTMLFormElement.idl \
+ $(PREFIX)HTMLFrameElement.idl \
+ $(PREFIX)HTMLFrameSetElement.idl \
+ $(PREFIX)HTMLHRElement.idl \
+ $(PREFIX)HTMLHeadElement.idl \
+ $(PREFIX)HTMLHeadingElement.idl \
+ $(PREFIX)HTMLHtmlElement.idl \
+ $(PREFIX)HTMLIFrameElement.idl \
+ $(PREFIX)HTMLImageElement.idl \
+ $(PREFIX)HTMLInputElement.idl \
+ $(PREFIX)HTMLIsIndexElement.idl \
+ $(PREFIX)HTMLLIElement.idl \
+ $(PREFIX)HTMLLabelElement.idl \
+ $(PREFIX)HTMLLegendElement.idl \
+ $(PREFIX)HTMLLinkElement.idl \
+ $(PREFIX)HTMLMapElement.idl \
+ $(PREFIX)HTMLMarqueeElement.idl \
+ $(PREFIX)HTMLMenuElement.idl \
+ $(PREFIX)HTMLMetaElement.idl \
+ $(PREFIX)HTMLModElement.idl \
+ $(PREFIX)HTMLOListElement.idl \
+ $(PREFIX)HTMLObjectElement.idl \
+ $(PREFIX)HTMLOptGroupElement.idl \
+ $(PREFIX)HTMLOptionElement.idl \
+ $(PREFIX)HTMLOptionsCollection.idl \
+ $(PREFIX)HTMLParagraphElement.idl \
+ $(PREFIX)HTMLParamElement.idl \
+ $(PREFIX)HTMLPreElement.idl \
+ $(PREFIX)HTMLQuoteElement.idl \
+ $(PREFIX)HTMLScriptElement.idl \
+ $(PREFIX)HTMLSelectElement.idl \
+ $(PREFIX)HTMLStyleElement.idl \
+ $(PREFIX)HTMLTableCaptionElement.idl \
+ $(PREFIX)HTMLTableCellElement.idl \
+ $(PREFIX)HTMLTableColElement.idl \
+ $(PREFIX)HTMLTableElement.idl \
+ $(PREFIX)HTMLTableRowElement.idl \
+ $(PREFIX)HTMLTableSectionElement.idl \
+ $(PREFIX)HTMLTextAreaElement.idl \
+ $(PREFIX)HTMLTitleElement.idl \
+ $(PREFIX)HTMLUListElement.idl \
+ \
+ $(PREFIX)CSSCharsetRule.idl \
+ $(PREFIX)CSSFontFaceRule.idl \
+ $(PREFIX)CSSImportRule.idl \
+ $(PREFIX)CSSMediaRule.idl \
+ $(PREFIX)CSSPageRule.idl \
+ $(PREFIX)CSSPrimitiveValue.idl \
+ $(PREFIX)CSSRule.idl \
+ $(PREFIX)CSSRuleList.idl \
+ $(PREFIX)CSSStyleDeclaration.idl \
+ $(PREFIX)CSSStyleRule.idl \
+ $(PREFIX)CSSStyleSheet.idl \
+ $(PREFIX)CSSUnknownRule.idl \
+ $(PREFIX)CSSValue.idl \
+ $(PREFIX)CSSValueList.idl \
+ $(PREFIX)Counter.idl \
+ $(PREFIX)MediaList.idl \
+ $(PREFIX)Rect.idl \
+ $(PREFIX)StyleSheet.idl \
+ $(PREFIX)StyleSheetList.idl \
+ \
+ $(PREFIX)Event.idl \
+ $(PREFIX)EventTarget.idl \
+ $(PREFIX)EventListener.idl \
+#
+
+# $(PREFIX)CanvasGradient.idl \
+# $(PREFIX)CanvasPattern.idl \
+# $(PREFIX)CanvasRenderingContext2D.idl \
+# $(PREFIX)HTMLCanvasElement.idl \
+# $(PREFIX)RGBColor.idl \
+
+COM_BINDINGS_SCRIPTS = \
+ $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/CodeGenerator.pm \
+ $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/CodeGeneratorCOM.pm \
+ $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/IDLParser.pm \
+ $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/IDLStructure.pm \
+ $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/generate-bindings.pl \
+#
+
+$(PREFIX)%.idl : $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/%.idl $(COM_BINDINGS_SCRIPTS)
+ perl -I $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/ $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/generate-bindings.pl --defines "$(FEATURE_DEFINES) LANGUAGE_COM" --generator COM --include $(WEBKIT_OUTPUT)/obj/WebKit/DOMInterfaces/ --outputdir . $<
--- /dev/null
+#! /usr/bin/perl -w
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of Apple puter, Inc. ("Apple") nor the names of
+# its contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# This script cleans up the headers that MIDL (Microsoft's IDL Parser/Generator)
+# outputs to only #include the parent interface avoiding circular dependencies
+# that MIDL creates.
+
+use File::Find;
+use strict;
+use warnings;
+
+my $dir = $ARGV[0];
+
+$dir = `cygpath -u '$dir'`;
+chomp($dir);
+
+find(\&finder, $dir);
+
+sub finder
+{
+ my $fileName = $_;
+
+ return unless ($fileName =~ /IGEN_DOM(.*)\.h/);
+
+ print "Processing $fileName\n";
+
+ open(IN, "<", $fileName);
+ my @contents = <IN>;
+ close(IN);
+
+ open(OUT, ">", $fileName);
+
+ my $state = 0;
+ foreach my $line (@contents) {
+ if ($line =~ /^\/\* header files for imported files \*\//) {
+ $state = 1;
+ print "Found start comment.\n";
+ } elsif ($line =~ /^#include "oaidl\.h"/) {
+ die "#include \"oaidl.h\" did not come second" if $state != 1;
+ $state = 2;
+ print "Found oaidl.h include.\n";
+ } elsif ($line =~ /^#include "ocidl\.h"/) {
+ die "#include \"ocidl.h\" did not come third" if $state != 2;
+ $state = 3;
+ print "Found ocidl.h include.\n";
+ } elsif ($line =~ /^#include "IGEN_DOM/ && $state == 3) {
+ $state = 4;
+ print "Found parent include.\n";
+ } elsif ($line =~ /^#include "(IGEN_DOM.*)\.h"/ && $state == 4) {
+ print "Removing include.\n";
+ next;
+ }
+
+ print OUT $line;
+ }
+
+ close(OUT);
+}
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="mkdir 2>NUL "$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
exit /b
"\r
+ CommandLine="bash build-generated-files.sh "$(WebKitOutputDir)"

mkdir 2>NUL "$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
exit /b
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
<Tool\r
Name="VCMIDLTool"\r
PreprocessorDefinitions="__BUILDBOT__=0$(BuildBot)"\r
- AdditionalIncludeDirectories="..\Interfaces"\r
+ AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\WebKit\DerivedSources";..\Interfaces"\r
WarningLevel="1"\r
WarnAsError="true"\r
GenerateTypeLibrary="false"\r
/>\r
<Tool\r
Name="VCPostBuildEventTool"\r
- CommandLine=""\r
+ CommandLine="perl FixMIDLHeaders.pl "$(WebkitOutputDir)/include/webkit/""\r
/>\r
</Configuration>\r
<Configuration\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="mkdir 2>NUL "$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
exit /b
"\r
+ CommandLine="bash build-generated-files.sh "$(WebKitOutputDir)"

mkdir 2>NUL "$(WebKitOutputDir)\obj\WebKit\$(ProjectName)"
exit /b
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
<Tool\r
Name="VCMIDLTool"\r
PreprocessorDefinitions="__BUILDBOT__=0$(BuildBot)"\r
- AdditionalIncludeDirectories="..\Interfaces"\r
+ AdditionalIncludeDirectories=""$(WebKitOutputDir)\obj\WebKit\DerivedSources";..\Interfaces"\r
WarningLevel="1"\r
WarnAsError="true"\r
GenerateTypeLibrary="false"\r
/>\r
<Tool\r
Name="VCPostBuildEventTool"\r
- CommandLine=""\r
+ CommandLine="perl FixMIDLHeaders.pl "$(WebkitOutputDir)/include/webkit/""\r
/>\r
</Configuration>\r
</Configurations>\r
<References>\r
</References>\r
<Files>\r
+ <Filter\r
+ Name="DOM"\r
+ >\r
+ <Filter\r
+ Name="core"\r
+ >\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMAttr.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCDATASection.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCharacterData.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMComment.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDocument.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDocumentFragment.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDocumentType.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMDOMImplementation.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEntity.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEntityReference.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNamedNodeMap.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNode.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNodeList.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMNotation.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\Interfaces\IGEN_DOMObject.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMProcessingInstruction.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMText.idl"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="html"\r
+ >\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLAnchorElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLAppletElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLAreaElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBaseElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBaseFontElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBlockquoteElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBodyElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLBRElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLButtonElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLCollection.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDirectoryElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDivElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDListElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLDocument.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLEmbedElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFieldSetElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFontElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFormElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFrameElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLFrameSetElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHeadElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHeadingElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHRElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLHtmlElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLIFrameElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLImageElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLInputElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLIsIndexElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLabelElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLegendElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLIElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLLinkElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMapElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMarqueeElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMenuElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLMetaElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLModElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLObjectElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOListElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOptGroupElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOptionElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLOptionsCollection.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLParagraphElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLParamElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLPreElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLQuoteElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLScriptElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLSelectElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLStyleElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableCaptionElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableCellElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableColElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableRowElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTableSectionElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTextAreaElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLTitleElement.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMHTMLUListElement.idl"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="css"\r
+ >\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCounter.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSCharsetRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSFontFaceRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSImportRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSMediaRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSPageRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSPrimitiveValue.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSRuleList.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSStyleDeclaration.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSStyleRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSStyleSheet.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSUnknownRule.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSValue.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMCSSValueList.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMMediaList.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMRect.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMStyleSheet.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMStyleSheetList.idl"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="events"\r
+ >\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEvent.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEventListener.idl"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\IGEN_DOMEventTarget.idl"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ </Filter>\r
<File\r
RelativePath="..\Interfaces\DOMCore.idl"\r
>\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash auto-version.sh "$(InputDir)." "$(IntDir)"

"\r
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash auto-version.sh "$(InputDir)." "$(IntDir)"
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
<Tool\r
Name="VCCLCompilerTool"\r
Optimization="0"\r
- AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitLibrariesDir)\Include";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\icu";"$(WebKitLibrariesDir)\Include\icu";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(ProjectDir)\..";"$(ProjectDir)";"$(IntDir)\include""\r
+ AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitLibrariesDir)\Include";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\icu";"$(WebKitLibrariesDir)\Include\icu";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(ProjectDir)\..";"$(ProjectDir)";"$(IntDir)\include";"$(WebKitOutputDir)\obj\WebKit\DerivedSources""\r
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WEBKIT_EXPORTS;_WIN32_WINNT=0x500;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ENABLE_XSLT;ENABLE_XPATH;ENABLE_SVG;FRAMEWORK_NAME=WebKit;__BUILDBOT__=0$(BuildBot)"\r
MinimalRebuild="true"\r
ExceptionHandling="0"\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash auto-version.sh "$(InputDir)." "$(IntDir)"

"\r
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash auto-version.sh "$(InputDir)." "$(IntDir)"
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
/>\r
<Tool\r
Name="VCCLCompilerTool"\r
- AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitLibrariesDir)\Include";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\icu";"$(WebKitLibrariesDir)\Include\icu";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(ProjectDir)\..";"$(ProjectDir)";"$(IntDir)\include""\r
+ AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitLibrariesDir)\Include";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\icu";"$(WebKitLibrariesDir)\Include\icu";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(ProjectDir)\..";"$(ProjectDir)";"$(IntDir)\include";"$(WebKitOutputDir)\obj\WebKit\DerivedSources""\r
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;WEBKIT_EXPORTS;_WIN32_WINNT=0x500;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ENABLE_XSLT;ENABLE_XPATH;ENABLE_SVG;FRAMEWORK_NAME=WebKit;__BUILDBOT__=0$(BuildBot)"\r
ExceptionHandling="0"\r
RuntimeLibrary="2"\r
>\r
<Tool\r
Name="VCPreBuildEventTool"\r
- CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash auto-version.sh "$(InputDir)." "$(IntDir)"

"\r
+ CommandLine="set PATH=%SystemDrive%\cygwin\bin;%PATH%
touch "$(WebKitOutputDir)\tmp.cpp"
cl /analyze /nologo /c "$(WebKitOutputDir)\tmp.cpp" 2>&1 | findstr D9040
if ERRORLEVEL 0 set EnablePREfast="false" else set EnablePREfast="true"
if ERRORLEVEL 0 set AnalyzeWithLargeStack="" AnalyzeWithLargeStack="/analyze:65536"

mkdir 2>NUL "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"
xcopy /y /d "$(WebKitLibrariesDir)\include\JavaScriptCore\JavaScriptCore\*" "$(WebKitOutputDir)\include\JavaScriptCore\JavaScriptCore"

bash auto-version.sh "$(InputDir)." "$(IntDir)"
"\r
/>\r
<Tool\r
Name="VCCustomBuildTool"\r
<Tool\r
Name="VCCLCompilerTool"\r
Optimization="0"\r
- AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitLibrariesDir)\Include";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\icu";"$(WebKitLibrariesDir)\Include\icu";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(ProjectDir)\..";"$(ProjectDir)";"$(IntDir)\include""\r
+ AdditionalIncludeDirectories=""$(WebKitOutputDir)\include\WebKit";"$(WebKitOutputDir)\Include";"$(WebKitLibrariesDir)\Include";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\icu";"$(WebKitLibrariesDir)\Include\icu";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders";"$(WebKitOutputDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(WebKitLibrariesDir)\Include\CoreFoundation\OSXCompatibilityHeaders\GNUCompatibility";"$(ProjectDir)\..";"$(ProjectDir)";"$(IntDir)\include";"$(WebKitOutputDir)\obj\WebKit\DerivedSources""\r
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;WEBKIT_EXPORTS;_WIN32_WINNT=0x500;_SCL_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;ENABLE_XSLT;ENABLE_XPATH;ENABLE_SVG;FRAMEWORK_NAME=WebKit;__BUILDBOT__=0$(BuildBot)"\r
MinimalRebuild="true"\r
ExceptionHandling="0"\r
>\r
</File>\r
</Filter>\r
+ <Filter\r
+ Name="DOM"\r
+ >\r
+ <File\r
+ RelativePath="..\DOMCreateInstance.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\DOMCreateInstance.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\GEN_DOMObject.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="..\GEN_DOMObject.h"\r
+ >\r
+ </File>\r
+ <Filter\r
+ Name="DerivedSources"\r
+ >\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMAttr.cpp"\r
+ >\r
+ <FileConfiguration\r
+ Name="Debug_Internal|Win32"\r
+ >\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ ShowIncludes="false"\r
+ />\r
+ </FileConfiguration>\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMAttr.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCDATASection.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCDATASection.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCharacterData.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCharacterData.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMComment.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMComment.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCounter.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCounter.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSCharsetRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSCharsetRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSFontFaceRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSFontFaceRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSImportRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSImportRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSMediaRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSMediaRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPageRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPageRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPrimitiveValue.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSPrimitiveValue.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRuleList.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSRuleList.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleDeclaration.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleDeclaration.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleSheet.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSStyleSheet.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSUnknownRule.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSUnknownRule.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValue.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValue.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValueList.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMCSSValueList.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocument.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocument.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentFragment.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentFragment.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentType.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDocumentType.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDOMImplementation.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMDOMImplementation.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntity.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntity.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntityReference.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEntityReference.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEvent.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEvent.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEventListener.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEventListener.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMEventTarget.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAnchorElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAnchorElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAppletElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAppletElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAreaElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLAreaElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseFontElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBaseFontElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBlockquoteElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBlockquoteElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBodyElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBodyElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBRElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLBRElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLButtonElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLButtonElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLCollection.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLCollection.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDirectoryElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDirectoryElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDivElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDivElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDListElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDListElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDocument.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLDocument.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLEmbedElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLEmbedElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFieldSetElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFieldSetElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFontElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFontElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFormElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFormElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameSetElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLFrameSetElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadingElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHeadingElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHRElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHRElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHtmlElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLHtmlElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIFrameElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIFrameElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLImageElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLImageElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLInputElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLInputElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIsIndexElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLIsIndexElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLabelElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLabelElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLegendElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLegendElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLIElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLIElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLinkElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLLinkElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMapElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMapElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMarqueeElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMarqueeElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMenuElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMenuElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMetaElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLMetaElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLModElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLModElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLObjectElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLObjectElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOListElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOListElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptGroupElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptGroupElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionsCollection.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLOptionsCollection.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParagraphElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParagraphElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParamElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLParamElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLPreElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLPreElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLQuoteElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLQuoteElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLScriptElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLScriptElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLSelectElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLSelectElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLStyleElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLStyleElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCaptionElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCaptionElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCellElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableCellElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableColElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableColElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableRowElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableRowElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableSectionElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTableSectionElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTextAreaElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTextAreaElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTitleElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLTitleElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLUListElement.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMHTMLUListElement.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMMediaList.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMMediaList.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNamedNodeMap.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNamedNodeMap.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNode.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNode.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNodeList.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNodeList.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNotation.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMNotation.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMProcessingInstruction.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMProcessingInstruction.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMRect.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMRect.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheet.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheet.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheetList.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMStyleSheetList.h"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMText.cpp"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\DerivedSources\GEN_DOMText.h"\r
+ >\r
+ </File>\r
+ </Filter>\r
+ </Filter>\r
</Files>\r
<Globals>\r
</Globals>\r
RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\DOMRange_i.c"\r
>\r
</File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMAttr_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCDATASection_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCharacterData_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMComment_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCounter_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSCharsetRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSFontFaceRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSImportRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSMediaRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSPageRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSPrimitiveValue_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSRuleList_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSStyleDeclaration_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSStyleRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSStyleSheet_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSUnknownRule_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSValue_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMCSSValueList_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDocument_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDocumentFragment_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDocumentType_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMDOMImplementation_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEntity_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEntityReference_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEvent_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEventListener_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMEventTarget_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLAnchorElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLAppletElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLAreaElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBaseElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBaseFontElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBlockquoteElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBodyElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLBRElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLButtonElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLCollection_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDirectoryElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDivElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDListElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLDocument_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLEmbedElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFieldSetElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFontElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFormElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFrameElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLFrameSetElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHeadElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHeadingElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHRElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLHtmlElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLIFrameElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLImageElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLInputElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLIsIndexElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLabelElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLegendElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLIElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLLinkElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMapElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMarqueeElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMenuElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLMetaElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLModElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLObjectElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOListElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOptGroupElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOptionElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLOptionsCollection_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLParagraphElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLParamElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLPreElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLQuoteElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLScriptElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLSelectElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLStyleElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableCaptionElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableCellElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableColElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableRowElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTableSectionElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTextAreaElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLTitleElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMHTMLUListElement_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMMediaList_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNamedNodeMap_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNode_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNodeList_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMNotation_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMObject_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMProcessingInstruction_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMRect_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMStyleSheet_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMStyleSheetList_i.c"\r
+ >\r
+ </File>\r
+ <File\r
+ RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IGEN_DOMText_i.c"\r
+ >\r
+ </File>\r
<File\r
RelativePath="$(WebKitOutputDir)\obj\WebKit\Interfaces\IWebArchive_i.c"\r
>\r
--- /dev/null
+#!/usr/bin/bash
+
+# Copyright (C) 2007 Apple Inc. All rights reserved.\r
+#\r
+# Redistribution and use in source and binary forms, with or without\r
+# modification, are permitted provided that the following conditions\r
+# are met:\r
+#\r
+# 1. Redistributions of source code must retain the above copyright\r
+# notice, this list of conditions and the following disclaimer. \r
+# 2. Redistributions in binary form must reproduce the above copyright\r
+# notice, this list of conditions and the following disclaimer in the\r
+# documentation and/or other materials provided with the distribution. \r
+# 3. Neither the name of Apple puter, Inc. ("Apple") nor the names of\r
+# its contributors may be used to endorse or promote products derived\r
+# from this software without specific prior written permission. \r
+#\r
+# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
+# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+NUMCPUS=`../../../WebKitTools/Scripts/num-cpus`
+
+XSRCROOT="`pwd`/.."
+XSRCROOT=`realpath "$XSRCROOT"`
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XSRCROOT=`cygpath -m -s "$XSRCROOT"`
+XSRCROOT=`cygpath -u "$XSRCROOT"`
+export XSRCROOT
+export SOURCE_ROOT=$XSRCROOT
+
+XDSTROOT="$1"
+export XDSTROOT
+# Do a little dance to get the path into 8.3 form to make it safe for gnu make
+# http://bugzilla.opendarwin.org/show_bug.cgi?id=8173
+XDSTROOT=`cygpath -m -s "$XDSTROOT"`
+XDSTROOT=`cygpath -u "$XDSTROOT"`
+export XDSTROOT
+
+export BUILT_PRODUCTS_DIR="$XDSTROOT/obj/WebKit"
+
+mkdir -p "${BUILT_PRODUCTS_DIR}/DerivedSources"
+cd "${BUILT_PRODUCTS_DIR}/DerivedSources"
+
+export WEBKIT=$XSRCROOT
+export WEBKIT_OUTPUT=$XDSTROOT
+
+export FEATURE_DEFINES="ENABLE_XPATH ENABLE_SVG"
+make -f "$WEBKIT/WebKit.vcproj/DerivedSources.make" -j ${NUMCPUS} || exit 1