Title: [98704] trunk/Source
Revision
98704
Author
[email protected]
Date
2011-10-28 00:20:58 -0700 (Fri, 28 Oct 2011)

Log Message

Refactor make_event_factory.pl to use InFilesCompiler.pm
https://bugs.webkit.org/show_bug.cgi?id=71094

Reviewed by Eric Seidel.

This refactoring helps share code with
make_exception_code_descriptions.pl, which is coming in a future patch.
I have a dream of refactoring make_names.pl to use this module as well.

* CodeGenerators.pri:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/scripts/action_makenames.py:
* bindings/scripts/InFilesCompiler.pm: Added.
(itemHandler):
(parameterHandler):
(new):
(compile):
(license):
* dom/make_event_factory.pl:
(defaultItemFactory):
(interfaceForEvent):
(generateCode):
(printFactoryFile):
(printMacroFile):
(printHeadersFile):

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (98703 => 98704)


--- trunk/Source/WebCore/ChangeLog	2011-10-28 07:19:44 UTC (rev 98703)
+++ trunk/Source/WebCore/ChangeLog	2011-10-28 07:20:58 UTC (rev 98704)
@@ -1,3 +1,32 @@
+2011-10-27  Adam Barth  <[email protected]>
+
+        Refactor make_event_factory.pl to use InFilesCompiler.pm
+        https://bugs.webkit.org/show_bug.cgi?id=71094
+
+        Reviewed by Eric Seidel.
+
+        This refactoring helps share code with
+        make_exception_code_descriptions.pl, which is coming in a future patch.
+        I have a dream of refactoring make_names.pl to use this module as well.
+
+        * CodeGenerators.pri:
+        * DerivedSources.make:
+        * GNUmakefile.am:
+        * WebCore.gyp/scripts/action_makenames.py:
+        * bindings/scripts/InFilesCompiler.pm: Added.
+        (itemHandler):
+        (parameterHandler):
+        (new):
+        (compile):
+        (license):
+        * dom/make_event_factory.pl:
+        (defaultItemFactory):
+        (interfaceForEvent):
+        (generateCode):
+        (printFactoryFile):
+        (printMacroFile):
+        (printHeadersFile):
+
 2011-10-26  Nat Duca  <[email protected]>
 
         [chromium] Implement frame rate control portions of CCScheduler

Modified: trunk/Source/WebCore/CodeGenerators.pri (98703 => 98704)


--- trunk/Source/WebCore/CodeGenerators.pri	2011-10-28 07:19:44 UTC (rev 98703)
+++ trunk/Source/WebCore/CodeGenerators.pri	2011-10-28 07:20:58 UTC (rev 98704)
@@ -758,7 +758,7 @@
 eventfactory.output = $${WC_GENERATED_SOURCES_DIR}/EventFactory.cpp
 eventfactory.input = EVENT_FACTORY
 eventfactory.wkScript = $$PWD/dom/make_event_factory.pl
-eventfactory.commands = perl -I$$PWD/bindings/scripts $$eventfactory.wkScript --events $$EVENT_FACTORY --outputDir $$WC_GENERATED_SOURCES_DIR
+eventfactory.commands = perl -I$$PWD/bindings/scripts $$eventfactory.wkScript --input $$EVENT_FACTORY --outputDir $$WC_GENERATED_SOURCES_DIR
 eventfactory.depends = $$PWD/dom/make_event_factory.pl $$EVENT_FACTORY
 addExtraCompiler(eventfactory)
 
@@ -766,7 +766,7 @@
 eventtargetfactory.output = $${WC_GENERATED_SOURCES_DIR}/EventTargetInterfaces.h
 eventtargetfactory.input = EVENT_TARGET_FACTORY
 eventtargetfactory.wkScript = $$PWD/dom/make_event_factory.pl
-eventtargetfactory.commands = perl -I$$PWD/bindings/scripts $$eventfactory.wkScript --events $$EVENT_TARGET_FACTORY --outputDir $$WC_GENERATED_SOURCES_DIR
+eventtargetfactory.commands = perl -I$$PWD/bindings/scripts $$eventfactory.wkScript --input $$EVENT_TARGET_FACTORY --outputDir $$WC_GENERATED_SOURCES_DIR
 eventtargetfactory.depends = $$PWD/dom/make_event_factory.pl $$EVENT_TARGET_FACTORY
 addExtraCompiler(eventtargetfactory)
 

Modified: trunk/Source/WebCore/DerivedSources.make (98703 => 98704)


--- trunk/Source/WebCore/DerivedSources.make	2011-10-28 07:19:44 UTC (rev 98703)
+++ trunk/Source/WebCore/DerivedSources.make	2011-10-28 07:20:58 UTC (rev 98704)
@@ -851,10 +851,10 @@
 # Register event constructors and targets
 
 EventFactory.cpp EventHeaders.h EventInterfaces.h : dom/make_event_factory.pl dom/EventFactory.in
-	perl -I $(WebCore)/bindings/scripts $< --events $(WebCore)/dom/EventFactory.in
+	perl -I $(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventFactory.in
 
 EventTargetHeaders.h EventTargetInterfaces.h : dom/make_event_factory.pl dom/EventTargetFactory.in
-	perl -I $(WebCore)/bindings/scripts $< --events $(WebCore)/dom/EventTargetFactory.in
+	perl -I $(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventTargetFactory.in
 
 # --------
  

Modified: trunk/Source/WebCore/GNUmakefile.am (98703 => 98704)


--- trunk/Source/WebCore/GNUmakefile.am	2011-10-28 07:19:44 UTC (rev 98703)
+++ trunk/Source/WebCore/GNUmakefile.am	2011-10-28 07:20:58 UTC (rev 98704)
@@ -691,10 +691,10 @@
 	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --attrs $(WebCore)/xml/xmlattrs.in --outputDir "$(GENSOURCES_WEBCORE)"
 
 DerivedSources/WebCore/EventFactory.cpp DerivedSources/WebCore/EventHeaders.h DerivedSources/WebCore/EventInterfaces.h: $(WebCore)/dom/make_event_factory.pl $(WebCore)/dom/EventFactory.in
-	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --events $(WebCore)/dom/EventFactory.in --outputDir "$(GENSOURCES_WEBCORE)"
+	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventFactory.in --outputDir "$(GENSOURCES_WEBCORE)"
 
 DerivedSources/WebCore/EventTargetHeaders.h DerivedSources/WebCore/EventTargetInterfaces.h: $(WebCore)/dom/make_event_factory.pl $(WebCore)/dom/EventTargetFactory.in
-	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --events $(WebCore)/dom/EventTargetFactory.in --outputDir "$(GENSOURCES_WEBCORE)"
+	$(AM_V_GEN)$(PERL) -I$(WebCore)/bindings/scripts $< --input $(WebCore)/dom/EventTargetFactory.in --outputDir "$(GENSOURCES_WEBCORE)"
 
 # All Web Inspector generated files are created with this one call to CodeGeneratorInspector.py
 DerivedSources/WebCore/InspectorProtocolVersion.h : $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/generate-inspector-protocol-version

Modified: trunk/Source/WebCore/WebCore.gyp/scripts/action_makenames.py (98703 => 98704)


--- trunk/Source/WebCore/WebCore.gyp/scripts/action_makenames.py	2011-10-28 07:19:44 UTC (rev 98703)
+++ trunk/Source/WebCore/WebCore.gyp/scripts/action_makenames.py	2011-10-28 07:20:58 UTC (rev 98704)
@@ -155,7 +155,7 @@
     if attrInput != None:
         command.extend(['--attrs', attrInput])
     if eventsInput != None:
-        command.extend(['--events', eventsInput])
+        command.extend(['--input', eventsInput])
     command.extend(options)
 
     # Do it. check_call is new in 2.5, so simulate its behavior with call and

Added: trunk/Source/WebCore/bindings/scripts/InFilesCompiler.pm (0 => 98704)


--- trunk/Source/WebCore/bindings/scripts/InFilesCompiler.pm	                        (rev 0)
+++ trunk/Source/WebCore/bindings/scripts/InFilesCompiler.pm	2011-10-28 07:20:58 UTC (rev 98704)
@@ -0,0 +1,125 @@
+#!/usr/bin/perl -w
+
+# Copyright (C) 2011 Adam Barth <[email protected]>
+#
+# 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.
+#
+# THIS SOFTWARE IS PROVIDED BY GOOGLE, INC. ``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 COMPUTER, INC. OR
+# 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. 
+#
+
+use strict;
+
+use IO::File;
+use InFilesParser;
+
+package InFilesCompiler;
+
+my $defaultItemFactory;
+
+my %parsedItems;
+my %parsedParameters;
+
+sub itemHandler($$$)
+{
+    my ($itemName, $property, $value) = @_;
+
+    $parsedItems{$itemName} = { &$defaultItemFactory($itemName) } if !defined($parsedItems{$itemName});
+
+    return unless $property;
+
+    die "Unknown property $property for $itemName\n" if !defined($parsedItems{$itemName}{$property});
+    $parsedItems{$itemName}{$property} = $value;
+}
+
+sub parameterHandler($$)
+{
+    my ($parameter, $value) = @_;
+
+    die "Unknown parameter $parameter\n" if !defined($parsedParameters{$parameter});
+    $parsedParameters{$parameter} = $value;
+}
+
+sub new()
+{
+    my $object = shift;
+    my $reference = { };
+
+    my $defaultParametersRef = shift;
+    %parsedParameters = %{ $defaultParametersRef };
+    $defaultItemFactory = shift;
+
+    %parsedItems = ();
+
+    bless($reference, $object);
+    return $reference;
+}
+
+sub compile()
+{
+    my $object = shift;
+
+    my $inputFile = shift;
+    my $generateCode = shift;
+
+    my $file = new IO::File;
+    open($file, $inputFile) or die "Failed to open file: $!";
+
+    my $InParser = InFilesParser->new();
+    $InParser->parse($file, \&parameterHandler, \&itemHandler);
+
+    close($file);
+    die "Failed to read from file: $inputFile" if (keys %parsedItems == 0);
+
+    &$generateCode(\%parsedParameters, \%parsedItems);
+}
+
+sub license()
+{
+    return "/*
+ * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
+ *
+ * Copyright (C) 2011 Google 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GOOGLE, INC. ``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 COMPUTER, INC. OR
+ * 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.
+ */
+
+";
+}
+
+1;

Modified: trunk/Source/WebCore/dom/make_event_factory.pl (98703 => 98704)


--- trunk/Source/WebCore/dom/make_event_factory.pl	2011-10-28 07:19:44 UTC (rev 98703)
+++ trunk/Source/WebCore/dom/make_event_factory.pl	2011-10-28 07:20:58 UTC (rev 98704)
@@ -37,36 +37,31 @@
 use File::Path;
 use File::Spec;
 use IO::File;
-use InFilesParser;
+use InFilesCompiler;
 
-sub readEvents($);
-sub printFactoryFile($);
-sub printMacroFile($);
-sub printHeadersFile($);
+require Config;
 
-my $eventsFile = "";
+my $inputFile = "";
 my $outputDir = ".";
-my %parsedEvents = ();
-my $namespace;
 
-require Config;
-
 GetOptions(
-    'events=s' => \$eventsFile,
+    'input=s' => \$inputFile,
     'outputDir=s' => \$outputDir,
 );
 
 mkpath($outputDir);
 
-die "You must specify --events <file>" unless length($eventsFile);
+die "You must specify --input <file>" unless length($inputFile);
 
-my %events = %{readEvents($eventsFile)};
+my %defaultParameters = (
+    'namespace' => 0
+);
 
-printFactoryFile("$outputDir/${namespace}Factory.cpp") if $namespace eq "Event";
-printMacroFile("$outputDir/${namespace}Interfaces.h");
-printHeadersFile("$outputDir/${namespace}Headers.h");
+my $InCompiler = InFilesCompiler->new(\%defaultParameters, \&defaultItemFactory);
 
-sub defaultEventPropertyHash
+$InCompiler->compile($inputFile, \&generateCode);
+
+sub defaultItemFactory
 {
     return (
         'interfaceName' => 0,
@@ -74,53 +69,13 @@
     );
 }
 
-sub eventHandler($$$)
+sub interfaceForEvent($$)
 {
-    my ($event, $property, $value) = @_;
+    my ($eventName, $parsedItemsRef) = @_;
 
-    $parsedEvents{$event} = { defaultEventPropertyHash($event) } if !defined($parsedEvents{$event});
+    my %parsedItems = %{ $parsedItemsRef };
 
-    if ($property) {
-        die "Unknown property $property for event $event\n" if !defined($parsedEvents{$event}{$property});
-        $parsedEvents{$event}{$property} = $value;
-    }
-}
-
-sub parametersHandler
-{
-    my ($parameter, $value) = @_;
-
-    die "Unknown parameter $parameter\n" unless $parameter eq "namespace";
-    $namespace = $value;
-}
-
-sub readNames($$$)
-{
-    my ($namesFile, $hashToFillRef, $handler) = @_;
-
-    my $names = new IO::File;
-    open($names, $namesFile) or die "Failed to open file: $namesFile";
-
-    my $InParser = InFilesParser->new();
-    $InParser->parse($names, \&parametersHandler, $handler);
-
-    close($names);
-    die "Failed to read names from file: $namesFile" if (keys %{$hashToFillRef} == 0);
-    return $hashToFillRef;
-}
-
-sub readEvents($)
-{
-    my ($namesFile) = @_;
-    %parsedEvents = ();
-    return readNames($namesFile, \%parsedEvents, \&eventHandler);
-}
-
-sub interfaceForEvent($)
-{
-    my ($eventName) = @_;
-
-    my $interfaceName = $parsedEvents{$eventName}{"interfaceName"};
+    my $interfaceName = $parsedItems{$eventName}{"interfaceName"};
     $interfaceName = $eventName unless $interfaceName;
 
     return $interfaceName;
@@ -136,15 +91,36 @@
     die "Ok, you got me. This script is really just a giant hack.";
 }
 
-sub printFactoryFile($)
+sub generateCode()
 {
-    my $path = shift;
+    my $parsedParametersRef = shift;
+    my $parsedItemsRef = shift;
+
+    printFactoryFile($parsedParametersRef, $parsedItemsRef);
+    printMacroFile($parsedParametersRef, $parsedItemsRef);
+    printHeadersFile($parsedParametersRef, $parsedItemsRef);
+}
+
+sub printFactoryFile()
+{
+    my $parsedParametersRef = shift;
+    my $parsedItemsRef = shift;
+
     my $F;
+    my %parsedEvents = %{ $parsedItemsRef };
+    my %parsedParameters = %{ $parsedParametersRef };
 
-    open F, ">$path";
+    my $namespace = $parsedParameters{"namespace"};
 
-    printLicenseHeader($F);
+    # Currently, only Events have factory files.
+    return if $namespace ne "Event";
 
+    my $outputFile = "$outputDir/${namespace}Factory.cpp";
+
+    open F, ">$outputFile" or die "Failed to open file: $!";
+
+    print F $InCompiler->license();
+
     print F "#include \"config.h\"\n";
     print F "#include \"${namespace}Factory.h\"\n";
     print F "\n";
@@ -157,7 +133,7 @@
 
     for my $eventName (sort keys %parsedEvents) {
         my $conditional = $parsedEvents{$eventName}{"conditional"};
-        my $interfaceName = interfaceForEvent($eventName);
+        my $interfaceName = interfaceForEvent($eventName, $parsedItemsRef);
 
         print F "#if ENABLE($conditional)\n" if $conditional;
         print F "    if (type == \"$eventName\")\n";
@@ -169,18 +145,27 @@
     print F "}\n";
     print F "\n";
     print F "} // namespace WebCore\n";
+
     close F;
 }
 
-sub printMacroFile($)
+sub printMacroFile()
 {
-    my $path = shift;
+    my $parsedParametersRef = shift;
+    my $parsedItemsRef = shift;
+
     my $F;
+    my %parsedEvents = %{ $parsedItemsRef };
+    my %parsedParameters = %{ $parsedParametersRef };
 
-    open F, ">$path";
+    my $namespace = $parsedParameters{"namespace"};
 
-    printLicenseHeader($F);
+    my $outputFile = "$outputDir/${namespace}Interfaces.h";
 
+    open F, ">$outputFile" or die "Failed to open file: $!";
+
+    print F $InCompiler->license();
+
     print F "#ifndef ${namespace}Interfaces_h\n";
     print F "#define ${namespace}Interfaces_h\n";
     print F "\n";
@@ -190,7 +175,7 @@
 
     for my $eventName (sort keys %parsedEvents) {
         my $conditional = $parsedEvents{$eventName}{"conditional"};
-        my $interfaceName = interfaceForEvent($eventName);
+        my $interfaceName = interfaceForEvent($eventName, $parsedItemsRef);
 
         if ($conditional) {
             if (!defined($interfacesByConditional{$conditional})) {
@@ -236,15 +221,23 @@
     close F;
 }
 
-sub printHeadersFile($)
+sub printHeadersFile()
 {
-    my $path = shift;
+    my $parsedParametersRef = shift;
+    my $parsedItemsRef = shift;
+
     my $F;
+    my %parsedEvents = %{ $parsedItemsRef };
+    my %parsedParameters = %{ $parsedParametersRef };
 
-    open F, ">$path";
+    my $namespace = $parsedParameters{"namespace"};
 
-    printLicenseHeader($F);
+    my $outputFile = "$outputDir/${namespace}Headers.h";
 
+    open F, ">$outputFile" or die "Failed to open file: $!";
+
+    print F $InCompiler->license();
+
     print F "#ifndef ${namespace}Headers_h\n";
     print F "#define ${namespace}Headers_h\n";
     print F "\n";
@@ -253,7 +246,7 @@
 
     for my $eventName (sort keys %parsedEvents) {
         my $conditional = $parsedEvents{$eventName}{"conditional"};
-        my $interfaceName = interfaceForEvent($eventName);
+        my $interfaceName = interfaceForEvent($eventName, $parsedItemsRef);
 
         next if defined($includedInterfaces{$interfaceName});
         $includedInterfaces{$interfaceName} = 1;
@@ -273,40 +266,3 @@
 
     close F;
 }
-
-sub printLicenseHeader($)
-{
-    my ($F) = @_;
-
-    print F "/*
- * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
- *
- * This file was generated by the dom/make_event_factory.pl script.
- *
- * Copyright (C) 2011 Google 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.
- *
- * THIS SOFTWARE IS PROVIDED BY GOOGLE, INC. ``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 COMPUTER, INC. OR
- * 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.
- */
-
-";
-}
-

Modified: trunk/Source/cmake/WebKitMacros.cmake (98703 => 98704)


--- trunk/Source/cmake/WebKitMacros.cmake	2011-10-28 07:19:44 UTC (rev 98703)
+++ trunk/Source/cmake/WebKitMacros.cmake	2011-10-28 07:20:58 UTC (rev 98704)
@@ -43,7 +43,7 @@
     ADD_CUSTOM_COMMAND(
         OUTPUT  ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile}
         DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_infile}
-        COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --events ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
+        COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
         VERBATIM)
 ENDMACRO ()
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to