Title: [267588] trunk
Revision
267588
Author
[email protected]
Date
2020-09-25 12:49:23 -0700 (Fri, 25 Sep 2020)

Log Message

make_names.pl no longer needs C preprocessor
https://bugs.webkit.org/show_bug.cgi?id=216953

Reviewed by Sam Weinig.

.:

* Source/cmake/WebKitCompilerFlags.cmake: Removed CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS which was used only for make_names.pl.

Source/WebCore:

* CMakeLists.txt:
* DerivedSources.make:
* WebCoreMacros.cmake: Changed GENERATE_DOM_NAMES from a macro to a function so that list(POP_FRONT ARGN var) works as exepected.
* dom/make_names.pl: Removed --preprocessor and --extraDefines options.
(readNames):
(readAttrs):
(readTags):
(buildConstructorMap):
(printConstructorSignature):
(printConstructorInterior):
(printConstructors):
(printFunctionTable):
(printJSElementIncludes):
(printElementIncludes):
(printConditionalElementIncludes):
(usesDefaultJSWrapper):
(printWrapperFunctions):
(printWrapperFactoryCppFile):
(preprocessorCommand): Deleted.

Modified Paths

Diff

Modified: trunk/ChangeLog (267587 => 267588)


--- trunk/ChangeLog	2020-09-25 19:03:37 UTC (rev 267587)
+++ trunk/ChangeLog	2020-09-25 19:49:23 UTC (rev 267588)
@@ -1,3 +1,12 @@
+2020-09-25  Fujii Hironori  <[email protected]>
+
+        make_names.pl no longer needs C preprocessor
+        https://bugs.webkit.org/show_bug.cgi?id=216953
+
+        Reviewed by Sam Weinig.
+
+        * Source/cmake/WebKitCompilerFlags.cmake: Removed CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS which was used only for make_names.pl.
+
 2020-09-25  Antti Koivisto  <[email protected]>
 
         [LFC][Integration] Enable on Apple Windows port

Modified: trunk/Source/WebCore/CMakeLists.txt (267587 => 267588)


--- trunk/Source/WebCore/CMakeLists.txt	2020-09-25 19:03:37 UTC (rev 267587)
+++ trunk/Source/WebCore/CMakeLists.txt	2020-09-25 19:49:23 UTC (rev 267588)
@@ -2046,7 +2046,7 @@
 ADD_SOURCE_WEBCORE_DERIVED_DEPENDENCIES(${WEBCORE_DIR}/html/HTMLTreeBuilder.cpp MathMLNames.cpp)
 
 
-GENERATE_DOM_NAMES(HTML ${WEBCORE_DIR}/html/HTMLAttributeNames.in ${WEBCORE_DIR}/html/HTMLTagNames.in "")
+GENERATE_DOM_NAMES(HTML ${WEBCORE_DIR}/html/HTMLAttributeNames.in ${WEBCORE_DIR}/html/HTMLTagNames.in)
 list(APPEND WebCore_SOURCES ${WebCore_DERIVED_SOURCES_DIR}/HTMLNames.cpp ${WebCore_DERIVED_SOURCES_DIR}/HTMLElementFactory.cpp ${WebCore_DERIVED_SOURCES_DIR}/JSHTMLElementWrapperFactory.cpp)
 
 
@@ -2064,7 +2064,7 @@
 list(APPEND WebCore_SOURCES ${WebCore_DERIVED_SOURCES_DIR}/WebKitFontFamilyNames.cpp)
 
 
-GENERATE_DOM_NAMES(MathML ${WEBCORE_DIR}/mathml/mathattrs.in ${WEBCORE_DIR}/mathml/mathtags.in "")
+GENERATE_DOM_NAMES(MathML ${WEBCORE_DIR}/mathml/mathattrs.in ${WEBCORE_DIR}/mathml/mathtags.in)
 list(APPEND WebCore_SOURCES ${WebCore_DERIVED_SOURCES_DIR}/MathMLNames.cpp)
 if (ENABLE_MATHML)
     list(APPEND WebCore_SOURCES ${WebCore_DERIVED_SOURCES_DIR}/MathMLElementFactory.cpp)

Modified: trunk/Source/WebCore/ChangeLog (267587 => 267588)


--- trunk/Source/WebCore/ChangeLog	2020-09-25 19:03:37 UTC (rev 267587)
+++ trunk/Source/WebCore/ChangeLog	2020-09-25 19:49:23 UTC (rev 267588)
@@ -1,3 +1,30 @@
+2020-09-25  Fujii Hironori  <[email protected]>
+
+        make_names.pl no longer needs C preprocessor
+        https://bugs.webkit.org/show_bug.cgi?id=216953
+
+        Reviewed by Sam Weinig.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * WebCoreMacros.cmake: Changed GENERATE_DOM_NAMES from a macro to a function so that list(POP_FRONT ARGN var) works as exepected.
+        * dom/make_names.pl: Removed --preprocessor and --extraDefines options.
+        (readNames):
+        (readAttrs):
+        (readTags):
+        (buildConstructorMap):
+        (printConstructorSignature):
+        (printConstructorInterior):
+        (printConstructors):
+        (printFunctionTable):
+        (printJSElementIncludes):
+        (printElementIncludes):
+        (printConditionalElementIncludes):
+        (usesDefaultJSWrapper):
+        (printWrapperFunctions):
+        (printWrapperFactoryCppFile):
+        (preprocessorCommand): Deleted.
+
 2020-09-25  Zalan Bujtas  <[email protected]>
 
         [LFC][MarginCollapsing] Only inflow boxes collapse their quirk margins with their parents

Modified: trunk/Source/WebCore/DerivedSources.make (267587 => 267588)


--- trunk/Source/WebCore/DerivedSources.make	2020-09-25 19:03:37 UTC (rev 267587)
+++ trunk/Source/WebCore/DerivedSources.make	2020-09-25 19:49:23 UTC (rev 267588)
@@ -1583,7 +1583,7 @@
 all : $(HTML_TAG_FILES)
 
 $(HTML_TAG_FILES_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm html/HTMLTagNames.in html/HTMLAttributeNames.in $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)
-	$(PERL) $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory --extraDefines "$(FEATURE_AND_PLATFORM_DEFINES)"
+	$(PERL) $< --tags $(WebCore)/html/HTMLTagNames.in --attrs $(WebCore)/html/HTMLAttributeNames.in --factory --wrapperFactory
 
 XMLNSNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm xml/xmlnsattrs.in
 	$(PERL) $< --attrs $(WebCore)/xml/xmlnsattrs.in
@@ -1609,7 +1609,7 @@
 all : $(SVG_TAG_FILES)
 
 $(SVG_TAG_FILES_PATTERNS) : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/svgtags.in svg/svgattrs.in $(FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES)
-	$(PERL) $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory --extraDefines "$(FEATURE_AND_PLATFORM_DEFINES)"
+	$(PERL) $< --tags $(WebCore)/svg/svgtags.in --attrs $(WebCore)/svg/svgattrs.in --factory --wrapperFactory
 
 XLinkNames.cpp : dom/make_names.pl bindings/scripts/Hasher.pm bindings/scripts/StaticString.pm svg/xlinkattrs.in
 	$(PERL) $< --attrs $(WebCore)/svg/xlinkattrs.in

Modified: trunk/Source/WebCore/WebCoreMacros.cmake (267587 => 267588)


--- trunk/Source/WebCore/WebCoreMacros.cmake	2020-09-25 19:03:37 UTC (rev 267587)
+++ trunk/Source/WebCore/WebCoreMacros.cmake	2020-09-25 19:49:23 UTC (rev 267588)
@@ -212,33 +212,20 @@
 endmacro()
 
 
-macro(GENERATE_DOM_NAMES _namespace _attrs)
+function(GENERATE_DOM_NAMES _namespace _attrs)
+    list(POP_FRONT ARGN _tags)
     set(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl)
     set(_arguments  --attrs ${_attrs})
     set(_outputfiles ${WebCore_DERIVED_SOURCES_DIR}/${_namespace}Names.cpp ${WebCore_DERIVED_SOURCES_DIR}/${_namespace}Names.h)
-    set(_extradef)
-    set(_tags)
 
-    foreach (f ${ARGN})
-        if (_tags)
-            set(_extradef "${_extradef} ${f}")
-        else ()
-            set(_tags ${f})
-        endif ()
-    endforeach ()
-
     if (_tags)
         set(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory)
         set(_outputfiles "${_outputfiles}" ${WebCore_DERIVED_SOURCES_DIR}/${_namespace}ElementFactory.cpp ${WebCore_DERIVED_SOURCES_DIR}/${_namespace}ElementFactory.h ${WebCore_DERIVED_SOURCES_DIR}/${_namespace}ElementTypeHelpers.h ${WebCore_DERIVED_SOURCES_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${WebCore_DERIVED_SOURCES_DIR}/JS${_namespace}ElementWrapperFactory.h)
     endif ()
 
-    if (_extradef)
-        set(_additionArguments "${_additionArguments}" --extraDefines=${_extradef})
-    endif ()
-
     add_custom_command(
         OUTPUT  ${_outputfiles}
         DEPENDS ${MAKE_NAMES_DEPENDENCIES} ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_attrs} ${_tags}
-        COMMAND ${PERL_EXECUTABLE} ${NAMES_GENERATOR} --preprocessor "${CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS}" --outputDir ${WebCore_DERIVED_SOURCES_DIR} ${_arguments} ${_additionArguments}
+        COMMAND ${PERL_EXECUTABLE} ${NAMES_GENERATOR} --outputDir ${WebCore_DERIVED_SOURCES_DIR} ${_arguments} ${_additionArguments}
         VERBATIM)
-endmacro()
+endfunction()

Modified: trunk/Source/WebCore/dom/make_names.pl (267587 => 267588)


--- trunk/Source/WebCore/dom/make_names.pl	2020-09-25 19:03:37 UTC (rev 267587)
+++ trunk/Source/WebCore/dom/make_names.pl	2020-09-25 19:49:23 UTC (rev 267588)
@@ -42,8 +42,8 @@
 use IO::File;
 use InFilesParser;
 
-sub readTags($$);
-sub readAttrs($$);
+sub readTags($);
+sub readAttrs($);
 
 my $printFactory = 0; 
 my $printWrapperFactory = 0; 
@@ -53,13 +53,10 @@
 my $outputDir = ".";
 my %parsedTags = ();
 my %parsedAttrs = ();
-my %enabledTags = ();
-my %enabledAttrs = ();
 my %allTags = ();
 my %allAttrs = ();
 my %allStrings = ();
 my %parameters = ();
-my $extraDefines = 0;
 my $initDefaults = 1;
 my %extensionAttrs = ();
 
@@ -74,20 +71,11 @@
     $ccLocation = "/usr/bin/cc";
 }
 
-my $preprocessor = "";
-if ($Config::Config{"osname"} eq "MSWin32") {
-    $preprocessor = "\"$ccLocation\" /EP";
-} else {
-    $preprocessor = $ccLocation . " -E -x c++";
-}
-
 GetOptions(
     'tags=s' => \$tagsFile, 
     'attrs=s' => \$attrsFile,
     'factory' => \$printFactory,
     'outputDir=s' => \$outputDir,
-    'extraDefines=s' => \$extraDefines,
-    'preprocessor=s' => \$preprocessor,
     'wrapperFactory' => \$printWrapperFactory,
     'fonts=s' => \$fontNamesIn
 );
@@ -148,14 +136,12 @@
 die "You must specify at least one of --tags <file> or --attrs <file>" unless (length($tagsFile) || length($attrsFile));
 
 if (length($tagsFile)) {
-    %allTags = %{readTags($tagsFile, 0)};
-    %enabledTags = %{readTags($tagsFile, 1)};
+    %allTags = %{readTags($tagsFile)};
     namesToStrings(\%allTags, \%allStrings);
 }
 
 if (length($attrsFile)) {
-    %allAttrs = %{readAttrs($attrsFile, 0)};
-    %enabledAttrs = %{readAttrs($attrsFile, 1)};
+    %allAttrs = %{readAttrs($attrsFile)};
     namesToStrings(\%allAttrs, \%allStrings);
 }
 
@@ -307,22 +293,12 @@
 
 ## Support routines
 
-sub preprocessorCommand()
+sub readNames($$$)
 {
-    return $preprocessor if $extraDefines eq 0;
-    return $preprocessor . " -D" . join(" -D", split(" ", $extraDefines));
-}
+    my ($namesFile, $hashToFillRef, $handler) = @_;
 
-sub readNames($$$$)
-{
-    my ($namesFile, $hashToFillRef, $handler, $usePreprocessor) = @_;
-
     my $names = new IO::File;
-    if ($usePreprocessor) {
-        open($names, preprocessorCommand() . " " . $namesFile . "|") or die "Failed to open file: $namesFile";
-    } else {
-        open($names, $namesFile) or die "Failed to open file: $namesFile";
-    }
+    open($names, $namesFile) or die "Failed to open file: $namesFile";
 
     my $InParser = InFilesParser->new();
     $InParser->parse($names, \&parametersHandler, $handler);
@@ -332,18 +308,18 @@
     return $hashToFillRef;
 }
 
-sub readAttrs($$)
+sub readAttrs($)
 {
-    my ($namesFile, $usePreprocessor) = @_;
+    my ($namesFile) = @_;
     %parsedAttrs = ();
-    return readNames($namesFile, \%parsedAttrs, \&attrsHandler, $usePreprocessor);
+    return readNames($namesFile, \%parsedAttrs, \&attrsHandler);
 }
 
-sub readTags($$)
+sub readTags($)
 {
-    my ($namesFile, $usePreprocessor) = @_;
+    my ($namesFile) = @_;
     %parsedTags = ();
-    return readNames($namesFile, \%parsedTags, \&tagsHandler, $usePreprocessor);
+    return readNames($namesFile, \%parsedTags, \&tagsHandler);
 }
 
 sub printMacros
@@ -366,12 +342,12 @@
 sub buildConstructorMap
 {
     my %tagConstructorMap = ();
-    for my $tagName (keys %enabledTags) {
-        my $interfaceName = $enabledTags{$tagName}{interfaceName};
+    for my $tagName (keys %allTags) {
+        my $interfaceName = $allTags{$tagName}{interfaceName};
 
-        if ($enabledTags{$tagName}{mapToTagName}) {
-            die "Cannot handle multiple mapToTagName for $tagName\n" if $enabledTags{$enabledTags{$tagName}{mapToTagName}}{mapToTagName};
-            $interfaceName = $enabledTags{ $enabledTags{$tagName}{mapToTagName} }{interfaceName};
+        if ($allTags{$tagName}{mapToTagName}) {
+            die "Cannot handle multiple mapToTagName for $tagName\n" if $allTags{$allTags{$tagName}{mapToTagName}}{mapToTagName};
+            $interfaceName = $allTags{ $allTags{$tagName}{mapToTagName} }{interfaceName};
         }
 
         # Chop the string to keep the interesting part.
@@ -391,10 +367,10 @@
     print F "static Ref<$parameters{namespace}Element> ${constructorName}Constructor(const QualifiedName& $constructorTagName, Document& document";
     if ($parameters{namespace} eq "HTML") {
         print F ", HTMLFormElement*";
-        print F " formElement" if $enabledTags{$tagName}{constructorNeedsFormElement};
+        print F " formElement" if $allTags{$tagName}{constructorNeedsFormElement};
     }
     print F ", bool";
-    print F " createdByParser" if $enabledTags{$tagName}{constructorNeedsCreatedByParser};
+    print F " createdByParser" if $allTags{$tagName}{constructorNeedsCreatedByParser};
     print F ")\n{\n";
 }
 
@@ -410,7 +386,7 @@
     # does not just control the wrapper; it controls the element object that is created.
     # FIXME: Could we instead do this entirely in the wrapper, and use custom wrappers
     # instead of having all the support for this here in this script?
-    if ($enabledTags{$tagName}{wrapperOnlyIfMediaIsAvailable}) {
+    if ($allTags{$tagName}{wrapperOnlyIfMediaIsAvailable}) {
         print F <<END
     if (!document.settings().mediaEnabled())
         return $parameters{fallbackInterfaceName}::create($constructorTagName, document);
@@ -420,8 +396,8 @@
     }
 
     my $runtimeCondition;
-    my $settingsConditional = $enabledTags{$tagName}{settingsConditional};
-    my $runtimeEnabled = $enabledTags{$tagName}{runtimeEnabled};
+    my $settingsConditional = $allTags{$tagName}{settingsConditional};
+    my $runtimeEnabled = $allTags{$tagName}{runtimeEnabled};
     if ($settingsConditional) {
         $runtimeCondition = "document.settings().${settingsConditional}()";
     } elsif ($runtimeEnabled) {
@@ -438,8 +414,8 @@
 
     # Call the constructor with the right parameters.
     print F "    return ${interfaceName}::create($constructorTagName, document";
-    print F ", formElement" if $enabledTags{$tagName}{constructorNeedsFormElement};
-    print F ", createdByParser" if $enabledTags{$tagName}{constructorNeedsCreatedByParser};
+    print F ", formElement" if $allTags{$tagName}{constructorNeedsFormElement};
+    print F ", createdByParser" if $allTags{$tagName}{constructorNeedsCreatedByParser};
     print F ");\n}\n";
 }
 
@@ -451,19 +427,19 @@
     # This is to avoid generating the same constructor several times.
     my %uniqueTags = ();
     for my $tagName (sort keys %tagConstructorMap) {
-        my $interfaceName = $enabledTags{$tagName}{interfaceName};
+        my $interfaceName = $allTags{$tagName}{interfaceName};
 
         # Ignore the mapped tag
         # FIXME: It could be moved inside this loop but was split for readibility.
-        next if (defined($uniqueTags{$interfaceName}) || $enabledTags{$tagName}{mapToTagName});
+        next if (defined($uniqueTags{$interfaceName}) || $allTags{$tagName}{mapToTagName});
         # Tags can have wrappers without constructors.
         # This is useful to make user-agent shadow elements internally testable
         # while keeping them from being avaialble in the HTML markup.
-        next if $enabledTags{$tagName}{noConstructor};
+        next if $allTags{$tagName}{noConstructor};
 
         $uniqueTags{$interfaceName} = '1';
 
-        my $conditional = $enabledTags{$tagName}{conditional};
+        my $conditional = $allTags{$tagName}{conditional};
         if ($conditional) {
             my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")";
             print F "#if ${conditionalString}\n";
@@ -481,10 +457,10 @@
 
     # Mapped tag name uses a special wrapper to keep their prefix and namespaceURI while using the mapped localname.
     for my $tagName (sort keys %tagConstructorMap) {
-        if ($enabledTags{$tagName}{mapToTagName}) {
-            my $mappedName = $enabledTags{$tagName}{mapToTagName};
+        if ($allTags{$tagName}{mapToTagName}) {
+            my $mappedName = $allTags{$tagName}{mapToTagName};
             printConstructorSignature($F, $mappedName, $mappedName . "To" . $tagName, "tagName");
-            printConstructorInterior($F, $mappedName, $enabledTags{$mappedName}{interfaceName}, "QualifiedName(tagName.prefix(), ${mappedName}Tag->localName(), tagName.namespaceURI())");
+            printConstructorInterior($F, $mappedName, $allTags{$mappedName}{interfaceName}, "QualifiedName(tagName.prefix(), ${mappedName}Tag->localName(), tagName.namespaceURI())");
         }
     }
 }
@@ -495,16 +471,16 @@
     my %tagConstructorMap = %$tagConstructorMap;
 
     for my $tagName (sort keys %tagConstructorMap) {
-        next if $enabledTags{$tagName}{noConstructor};
+        next if $allTags{$tagName}{noConstructor};
 
-        my $conditional = $enabledTags{$tagName}{conditional};
+        my $conditional = $allTags{$tagName}{conditional};
         if ($conditional) {
             my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")";
             print F "#if ${conditionalString}\n";
         }
 
-        if ($enabledTags{$tagName}{mapToTagName}) {
-            print F "        { $parameters{namespace}Names::${tagName}Tag, $enabledTags{$tagName}{mapToTagName}To${tagName}Constructor },\n";
+        if ($allTags{$tagName}{mapToTagName}) {
+            print F "        { $parameters{namespace}Names::${tagName}Tag, $allTags{$tagName}{mapToTagName}To${tagName}Constructor },\n";
         } else {
             print F "        { $parameters{namespace}Names::${tagName}Tag, $tagConstructorMap{$tagName}Constructor },\n";
         }
@@ -816,10 +792,10 @@
     my $F = shift;
 
     my %tagsSeen;
-    for my $tagName (sort keys %enabledTags) {
-        my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName};
+    for my $tagName (sort keys %allTags) {
+        my $JSInterfaceName = $allTags{$tagName}{JSInterfaceName};
         next if defined($tagsSeen{$JSInterfaceName}) || usesDefaultJSWrapper($tagName);
-        if ($enabledTags{$tagName}{conditional}) {
+        if ($allTags{$tagName}{conditional}) {
             # We skip feature-define-specific #includes here since we handle them separately.
             next;
         }
@@ -835,10 +811,10 @@
     my $F = shift;
 
     my %tagsSeen;
-    for my $tagName (sort keys %enabledTags) {
-        my $interfaceName = $enabledTags{$tagName}{interfaceName};
+    for my $tagName (sort keys %allTags) {
+        my $interfaceName = $allTags{$tagName}{interfaceName};
         next if defined($tagsSeen{$interfaceName});
-        if ($enabledTags{$tagName}{conditional}) {
+        if ($allTags{$tagName}{conditional}) {
             # We skip feature-define-specific #includes here since we handle them separately.
             next;
         }
@@ -857,10 +833,10 @@
     my %unconditionalElementIncludes;
     my %unconditionalJSElementIncludes;
 
-    for my $tagName (keys %enabledTags) {
-        my $conditional = $enabledTags{$tagName}{conditional};
-        my $interfaceName = $enabledTags{$tagName}{interfaceName};
-        my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName};
+    for my $tagName (keys %allTags) {
+        my $conditional = $allTags{$tagName}{conditional};
+        my $interfaceName = $allTags{$tagName}{interfaceName};
+        my $JSInterfaceName = $allTags{$tagName}{JSInterfaceName};
 
         if ($conditional) {
             $conditionals{$conditional}{interfaceNames}{$interfaceName} = 1;
@@ -1132,7 +1108,7 @@
     my $name = shift;
 
     # A tag reuses the default wrapper if its JSInterfaceName matches the default namespace Element.
-    return $enabledTags{$name}{JSInterfaceName} eq $parameters{namespace} . "Element";
+    return $allTags{$name}{JSInterfaceName} eq $parameters{namespace} . "Element";
 }
 
 sub printWrapperFunctions
@@ -1140,19 +1116,19 @@
     my $F = shift;
 
     my %tagsSeen;
-    for my $tagName (sort keys %enabledTags) {
+    for my $tagName (sort keys %allTags) {
         # Avoid defining the same wrapper method twice.
-        my $JSInterfaceName = $enabledTags{$tagName}{JSInterfaceName};
-        next if (defined($tagsSeen{$JSInterfaceName}) || (usesDefaultJSWrapper($tagName) && ($parameters{fallbackJSInterfaceName} eq $parameters{namespace} . "Element"))) && !$enabledTags{$tagName}{settingsConditional};
+        my $JSInterfaceName = $allTags{$tagName}{JSInterfaceName};
+        next if (defined($tagsSeen{$JSInterfaceName}) || (usesDefaultJSWrapper($tagName) && ($parameters{fallbackJSInterfaceName} eq $parameters{namespace} . "Element"))) && !$allTags{$tagName}{settingsConditional};
         $tagsSeen{$JSInterfaceName} = 1;
 
-        my $conditional = $enabledTags{$tagName}{conditional};
+        my $conditional = $allTags{$tagName}{conditional};
         if ($conditional) {
             my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")";
             print F "#if ${conditionalString}\n\n";
         }
 
-        if ($enabledTags{$tagName}{wrapperOnlyIfMediaIsAvailable}) {
+        if ($allTags{$tagName}{wrapperOnlyIfMediaIsAvailable}) {
             print F <<END
 static JSDOMObject* create${JSInterfaceName}Wrapper(JSDOMGlobalObject* globalObject, Ref<$parameters{namespace}Element>&& element)
 {
@@ -1163,9 +1139,9 @@
 
 END
             ;
-        } elsif ($enabledTags{$tagName}{settingsConditional}) {
+        } elsif ($allTags{$tagName}{settingsConditional}) {
             print F <<END
-static JSDOMObject* create$enabledTags{$tagName}{interfaceName}Wrapper(JSDOMGlobalObject* globalObject, Ref<$parameters{namespace}Element>&& element)
+static JSDOMObject* create$allTags{$tagName}{interfaceName}Wrapper(JSDOMGlobalObject* globalObject, Ref<$parameters{namespace}Element>&& element)
 {
     if (element->is$parameters{fallbackInterfaceName}())
         return createWrapper<$parameters{fallbackInterfaceName}>(globalObject, WTFMove(element));
@@ -1174,8 +1150,8 @@
 
 END
             ;
-        } elsif ($enabledTags{$tagName}{runtimeEnabled}) {
-            my $runtimeEnabled = $enabledTags{$tagName}{runtimeEnabled};
+        } elsif ($allTags{$tagName}{runtimeEnabled}) {
+            my $runtimeEnabled = $allTags{$tagName}{runtimeEnabled};
             print F <<END
 static JSDOMObject* create${JSInterfaceName}Wrapper(JSDOMGlobalObject* globalObject, Ref<$parameters{namespace}Element>&& element)
 {
@@ -1258,11 +1234,11 @@
 END
 ;
 
-    for my $tag (sort keys %enabledTags) {
+    for my $tag (sort keys %allTags) {
         # Do not add the name to the map if it does not have a JS wrapper constructor or uses the default wrapper.
-        next if (usesDefaultJSWrapper($tag, \%enabledTags) && ($parameters{fallbackJSInterfaceName} eq $parameters{namespace} . "Element"));
+        next if (usesDefaultJSWrapper($tag, \%allTags) && ($parameters{fallbackJSInterfaceName} eq $parameters{namespace} . "Element"));
 
-        my $conditional = $enabledTags{$tag}{conditional};
+        my $conditional = $allTags{$tag}{conditional};
         if ($conditional) {
             my $conditionalString = "ENABLE(" . join(") && ENABLE(", split(/&/, $conditional)) . ")";
             print F "#if ${conditionalString}\n";
@@ -1269,10 +1245,10 @@
         }
 
         my $ucTag;
-        if ($enabledTags{$tag}{settingsConditional}) {
-            $ucTag = $enabledTags{$tag}{interfaceName};
+        if ($allTags{$tag}{settingsConditional}) {
+            $ucTag = $allTags{$tag}{interfaceName};
         } else {
-            $ucTag = $enabledTags{$tag}{JSInterfaceName};
+            $ucTag = $allTags{$tag}{JSInterfaceName};
         }
 
         print F "        { $parameters{namespace}Names::${tag}Tag, create${ucTag}Wrapper },\n";

Modified: trunk/Source/cmake/WebKitCompilerFlags.cmake (267587 => 267588)


--- trunk/Source/cmake/WebKitCompilerFlags.cmake	2020-09-25 19:03:37 UTC (rev 267587)
+++ trunk/Source/cmake/WebKitCompilerFlags.cmake	2020-09-25 19:49:23 UTC (rev 267588)
@@ -240,22 +240,13 @@
 endif ()
 
 
-# CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS only matters with GCC >= 4.7.0.  Since this
-# version, -P does not output empty lines, which currently breaks make_names.pl in
-# WebCore. Investigating whether make_names.pl should be changed instead is left as an exercise to
-# the reader.
 if (MSVC)
-    set(CODE_GENERATOR_PREPROCESSOR_ARGUMENTS "/nologo /EP /TP")
-    set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS_ARGUMENTS ${CODE_GENERATOR_PREPROCESSOR_ARGUMENTS})
+    set(CODE_GENERATOR_PREPROCESSOR "\"${CMAKE_CXX_COMPILER}\" /nologo /EP /TP")
 else ()
-    set(CODE_GENERATOR_PREPROCESSOR_ARGUMENTS "-E -P -x c++")
-    set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS_ARGUMENTS "-E -x c++")
+    set(CODE_GENERATOR_PREPROCESSOR "\"${CMAKE_CXX_COMPILER}\" -E -P -x c++")
 endif ()
 
-set(CODE_GENERATOR_PREPROCESSOR "\"${CMAKE_CXX_COMPILER}\" ${CODE_GENERATOR_PREPROCESSOR_ARGUMENTS}")
-set(CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS "\"${CMAKE_CXX_COMPILER}\" ${CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS_ARGUMENTS}")
 
-
 # Ensure that the default include system directories are added to the list of CMake implicit includes.
 # This workarounds an issue that happens when using GCC 6 and using system includes (-isystem).
 # For more details check: https://bugs.webkit.org/show_bug.cgi?id=161697
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to