#
# Copyright (C) 2013 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:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * 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.
#     * Neither the name of Google Inc. 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 THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
# OWNER 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.
#

{
  'includes': [
    'core.gypi',
    '../bindings/scripts/scripts.gypi',
    '../build/features.gypi',
    '../build/scripts/scripts.gypi',
  ],

  'targets': [
    {
      # GN version: //third_party/WebKit/Source/core:core_event_interfaces
      'target_name': 'core_event_interfaces',
      'type': 'none',
      'actions': [
        {
          'action_name': 'make_core_event_interfaces',
          'variables': {
            'event_idl_files': [
              '<@(core_event_idl_files)',
            ],
            'event_idl_files_list':
                '<|(event_idl_files_list.tmp <@(event_idl_files))',
          },
          'inputs': [
            # FIXME: should be in build/scripts, not bindings/scripts
            '../bindings/scripts/generate_event_interfaces.py',
            '../bindings/scripts/utilities.py',
            '<(event_idl_files_list)',
            '<@(event_idl_files)',
          ],
          'outputs': [
            '<(blink_core_output_dir)/EventInterfaces.in',
          ],
          'action': [
            'python',
            '../bindings/scripts/generate_event_interfaces.py',
            '--event-idl-files-list',
            '<(event_idl_files_list)',
            '--event-interfaces-file',
            '<(blink_core_output_dir)/EventInterfaces.in',
            '--write-file-only-if-changed',
            '<(write_file_only_if_changed)',
          ],
        },
      ],
    },
    {
      # GN version: //third_party/WebKit/Sources/core:generated_testing_idls
      'target_name': 'generated_testing_idls',
      'type': 'none',
      'actions': [
        {
          'action_name': 'Settings',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_settings.py',
            '../build/scripts/templates/InternalSettingsGenerated.idl.tmpl',
            '../build/scripts/templates/InternalSettingsGenerated.cpp.tmpl',
            '../build/scripts/templates/InternalSettingsGenerated.h.tmpl',
            '../build/scripts/templates/SettingsMacros.h.tmpl',
            'frame/Settings.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/SettingsMacros.h',
            '<(blink_core_output_dir)/InternalSettingsGenerated.idl',
            '<(blink_core_output_dir)/InternalSettingsGenerated.cpp',
            '<(blink_core_output_dir)/InternalSettingsGenerated.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_settings.py',
            'frame/Settings.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'InternalRuntimeFlags',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_internal_runtime_flags.py',
            '../platform/RuntimeEnabledFeatures.in',
            '../build/scripts/templates/InternalRuntimeFlags.h.tmpl',
            '../build/scripts/templates/InternalRuntimeFlags.idl.tmpl',
          ],
          'outputs': [
            '<(blink_core_output_dir)/InternalRuntimeFlags.idl',
            '<(blink_core_output_dir)/InternalRuntimeFlags.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_internal_runtime_flags.py',
            '../platform/RuntimeEnabledFeatures.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
      ]
    },
    {
      # GN version: //third_party/WebKit/Source/core:make_core_generated
      'target_name': 'make_core_generated',
      'type': 'none',
      'hard_dependency': 1,
      'dependencies': [
        'generated_testing_idls',
        'core_event_interfaces',
        '../config.gyp:config',
      ],
      'sources': [
        # bison rule
        'css/parser/CSSGrammar.y',
        'xml/XPathGrammar.y',
      ],
      'actions': [
        {
          'action_name': 'generatePrivateScript',
          # FIXME: The implementation of Blink-in-JS is not yet mature.
          # You can use Blink-in-JS in your local experiment, but don't ship it.
          # crbug.com/341031
          'private_script_files': [
             '../bindings/core/v8/PrivateScriptRunner.js',
             '../core/html/HTMLMarqueeElement.js',
          ],
          'inputs': [
             '../build/scripts/make_private_script_source.py',
             '<@(_private_script_files)',
          ],
          'outputs': [
            '<(blink_core_output_dir)/PrivateScriptSources.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_private_script_source.py',
            '<@(_outputs)',
            '<@(_private_script_files)'
          ],
        },
        {
          'action_name': 'generatePrivateScriptForTesting',
          'private_script_files': [
            'testing/PartialPrivateScriptTest.js',
            'testing/PrivateScriptTest.js',
           ],
          'inputs': [
             '../build/scripts/make_private_script_source.py',
             '<@(_private_script_files)',
           ],
           'outputs': [
             '<(blink_core_output_dir)/PrivateScriptSourcesForTesting.h',
           ],
           'action': [
             'python',
             '../build/scripts/make_private_script_source.py',
             '<@(_outputs)',
             '<@(_private_script_files)'
           ],
        },
        {
          'action_name': 'HTMLEntityTable',
          'inputs': [
            'html/parser/create-html-entity-table',
            'html/parser/HTMLEntityNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/HTMLEntityTable.cpp'
          ],
          'action': [
            'python',
            'html/parser/create-html-entity-table',
            '-o',
            '<@(_outputs)',
            '<@(_inputs)'
          ],
        },
        {
          'action_name': 'CSSPropertyNames',
          'inputs': [
            '<@(css_properties_files)',
            '../build/scripts/make_css_property_names.py',
          ],
          'outputs': [
            '<(blink_core_output_dir)/CSSPropertyNames.cpp',
            '<(blink_core_output_dir)/CSSPropertyNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_css_property_names.py',
            'css/CSSProperties.in',
            '--output_dir',
            '<(blink_core_output_dir)',
            '--gperf', '<(gperf_exe)',
          ],
        },
        {
          'action_name': 'MediaFeatureNames',
          'variables': {
            'in_files': [
              'css/MediaFeatureNames.in',
            ],
          },
          'inputs': [
            '<@(make_names_files)',
            '../build/scripts/make_media_feature_names.py',
            '<@(in_files)'
          ],
          'outputs': [
            '<(blink_core_output_dir)/MediaFeatureNames.cpp',
            '<(blink_core_output_dir)/MediaFeatureNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_media_feature_names.py',
            '<@(in_files)',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'MediaFeatures',
          'variables': {
            'in_files': [
              'css/MediaFeatureNames.in',
            ],
          },
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_media_features.py',
            '../build/scripts/templates/MediaFeatures.h.tmpl',
            '<@(in_files)'
          ],
          'outputs': [
            '<(blink_core_output_dir)/MediaFeatures.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_media_features.py',
            '<@(in_files)',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'MediaTypeNames',
          'variables': {
            'in_files': [
              'css/MediaTypeNames.in',
            ],
          },
          'inputs': [
            '<@(make_names_files)',
            '<@(in_files)'
          ],
          'outputs': [
            '<(blink_core_output_dir)/MediaTypeNames.cpp',
            '<(blink_core_output_dir)/MediaTypeNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            '<@(in_files)',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'MediaQueryTokenizerCodepoints',
          'inputs': [
            '../build/scripts/make_mediaquery_tokenizer_codepoints.py',
          ],
          'outputs': [
            '<(blink_core_output_dir)/MediaQueryTokenizerCodepoints.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_mediaquery_tokenizer_codepoints.py',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'StylePropertyShorthand',
          'inputs': [
            '<@(css_properties_files)',
            '../build/scripts/make_style_shorthands.py',
            '../build/scripts/templates/StylePropertyShorthand.cpp.tmpl',
            '../build/scripts/templates/StylePropertyShorthand.h.tmpl',
          ],
          'outputs': [
            '<(blink_core_output_dir)/StylePropertyShorthand.cpp',
            '<(blink_core_output_dir)/StylePropertyShorthand.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_style_shorthands.py',
            'css/CSSProperties.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'StyleBuilder',
          'inputs': [
            '<@(css_properties_files)',
            '../build/scripts/make_style_builder.py',
            '../build/scripts/templates/StyleBuilder.cpp.tmpl',
            '../build/scripts/templates/StyleBuilderFunctions.cpp.tmpl',
            '../build/scripts/templates/StyleBuilderFunctions.h.tmpl',
          ],
          'outputs': [
            '<(blink_core_output_dir)/StyleBuilder.cpp',
            '<(blink_core_output_dir)/StyleBuilderFunctions.h',
            '<(blink_core_output_dir)/StyleBuilderFunctions.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_style_builder.py',
            'css/CSSProperties.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'CSSPropertyMetadata',
          'inputs': [
            '<@(css_properties_files)',
            '../build/scripts/make_css_property_metadata.py',
            '../build/scripts/templates/CSSPropertyMetadata.cpp.tmpl',
          ],
          'outputs': [
            '<(blink_core_output_dir)/CSSPropertyMetadata.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_css_property_metadata.py',
            'css/CSSProperties.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'CSSValueKeywords',
          'variables': {
            'in_files': [
              'css/CSSValueKeywords.in',
              'css/SVGCSSValueKeywords.in',
            ],
          },
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_css_value_keywords.py',
            '<@(in_files)'
          ],
          'outputs': [
            '<(blink_core_output_dir)/CSSValueKeywords.cpp',
            '<(blink_core_output_dir)/CSSValueKeywords.h',
          ],
          'action': [
             'python',
             '../build/scripts/make_css_value_keywords.py',
             '<@(in_files)',
             '--output_dir',
             '<(blink_core_output_dir)',
            '--gperf', '<(gperf_exe)',
          ],
        },
        {
          'action_name': 'HTMLElementFactory',
          'inputs': [
            '<@(make_element_factory_files)',
            'html/HTMLTagNames.in',
            'html/HTMLAttributeNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/HTMLElementFactory.cpp',
            '<(blink_core_output_dir)/HTMLElementFactory.h',
            '<(blink_core_output_dir)/HTMLNames.cpp',
            '<(blink_core_output_dir)/HTMLNames.h',
            '<(blink_core_output_dir)/V8HTMLElementWrapperFactory.cpp',
            '<(blink_core_output_dir)/V8HTMLElementWrapperFactory.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_element_factory.py',
            'html/HTMLTagNames.in',
            'html/HTMLAttributeNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'HTMLElementTypeHelpers',
          'inputs': [
            '<@(make_element_type_helpers_files)',
            'html/HTMLTagNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/HTMLElementTypeHelpers.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_element_type_helpers.py',
            'html/HTMLTagNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'SVGNames',
          'inputs': [
            '<@(make_element_factory_files)',
            'svg/SVGTagNames.in',
            'svg/SVGAttributeNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/SVGElementFactory.cpp',
            '<(blink_core_output_dir)/SVGElementFactory.h',
            '<(blink_core_output_dir)/SVGNames.cpp',
            '<(blink_core_output_dir)/SVGNames.h',
            '<(blink_core_output_dir)/V8SVGElementWrapperFactory.cpp',
            '<(blink_core_output_dir)/V8SVGElementWrapperFactory.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_element_factory.py',
            'svg/SVGTagNames.in',
            'svg/SVGAttributeNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'SVGElementTypeHelpers',
          'inputs': [
            '<@(make_element_type_helpers_files)',
            'svg/SVGTagNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/SVGElementTypeHelpers.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_element_type_helpers.py',
            'svg/SVGTagNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'EventFactory',
          'inputs': [
            '<@(make_event_factory_files)',
            '<(blink_core_output_dir)/EventInterfaces.in',
            'events/EventAliases.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/Event.cpp',
            '<(blink_core_output_dir)/EventHeaders.h',
            '<(blink_core_output_dir)/EventInterfaces.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_event_factory.py',
            '<(blink_core_output_dir)/EventInterfaces.in',
            'events/EventAliases.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'EventNames',
          'inputs': [
            '<@(make_names_files)',
            '<(blink_core_output_dir)/EventInterfaces.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/EventNames.cpp',
            '<(blink_core_output_dir)/EventNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            '<(blink_core_output_dir)/EventInterfaces.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'EventTargetFactory',
          'inputs': [
            '<@(make_event_factory_files)',
            'events/EventTargetFactory.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/EventTargetHeaders.h',
            '<(blink_core_output_dir)/EventTargetInterfaces.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_event_factory.py',
            'events/EventTargetFactory.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'EventTargetNames',
          'inputs': [
            '<@(make_names_files)',
            'events/EventTargetFactory.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/EventTargetNames.cpp',
            '<(blink_core_output_dir)/EventTargetNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            'events/EventTargetFactory.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'MathMLNames',
          'inputs': [
            '<@(make_qualified_names_files)',
            'html/parser/MathMLTagNames.in',
            'html/parser/MathMLAttributeNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/MathMLNames.cpp',
            '<(blink_core_output_dir)/MathMLNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_qualified_names.py',
            'html/parser/MathMLTagNames.in',
            'html/parser/MathMLAttributeNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'UserAgentStyleSheets',
          'variables': {
            'scripts': [
              '../build/scripts/make-file-arrays.py',
            ],
            'stylesheets': [
              'css/html.css',
              'css/quirks.css',
              'css/view-source.css',
              'css/themeChromium.css',
              'css/themeChromiumAndroid.css',
              'css/themeChromiumLinux.css',
              'css/themeChromiumSkia.css',
              'css/themeInputMultipleFields.css',
              'css/themeMac.css',
              'css/themeWin.css',
              'css/themeWinQuirks.css',
              'css/svg.css',
              'css/navigationTransitions.css',
              'css/mathml.css',
              'css/mediaControls.css',
              'css/mediaControlsAndroid.css',
              'css/fullscreen.css',
              'css/xhtmlmp.css',
              'css/viewportAndroid.css',
            ],
          },
          'inputs': [
            '<@(scripts)',
            '<@(stylesheets)'
          ],
          'outputs': [
            '<(blink_core_output_dir)/UserAgentStyleSheets.h',
            '<(blink_core_output_dir)/UserAgentStyleSheetsData.cpp',
          ],
          'action': [
            'python',
            '<@(scripts)',
            '--namespace',
            'blink',
            '--out-h=<(blink_core_output_dir)/UserAgentStyleSheets.h',
            '--out-cpp=<(blink_core_output_dir)/UserAgentStyleSheetsData.cpp',
            '<@(stylesheets)',
          ],
        },
        {
          'action_name': 'FetchInitiatorTypeNames',
          'inputs': [
            '<@(make_names_files)',
            'fetch/FetchInitiatorTypeNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/FetchInitiatorTypeNames.cpp',
            '<(blink_core_output_dir)/FetchInitiatorTypeNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            'fetch/FetchInitiatorTypeNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'EventTypeNames',
          'inputs': [
            '<@(make_names_files)',
            'events/EventTypeNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/EventTypeNames.cpp',
            '<(blink_core_output_dir)/EventTypeNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            'events/EventTypeNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'HTMLTokenizerNames',
          'inputs': [
            '<@(make_names_files)',
            'html/parser/HTMLTokenizerNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/HTMLTokenizerNames.cpp',
            '<(blink_core_output_dir)/HTMLTokenizerNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            'html/parser/HTMLTokenizerNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'InputTypeNames',
          'inputs': [
            '<@(make_names_files)',
            'html/forms/InputTypeNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/InputTypeNames.cpp',
            '<(blink_core_output_dir)/InputTypeNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            'html/forms/InputTypeNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'XLinkNames',
          'inputs': [
            '<@(make_qualified_names_files)',
            'svg/xlinkattrs.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/XLinkNames.cpp',
            '<(blink_core_output_dir)/XLinkNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_qualified_names.py',
            'svg/xlinkattrs.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'XMLNSNames',
          'inputs': [
            '<@(make_qualified_names_files)',
            'xml/xmlnsattrs.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/XMLNSNames.cpp',
            '<(blink_core_output_dir)/XMLNSNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_qualified_names.py',
            'xml/xmlnsattrs.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'XMLNames',
          'inputs': [
            '<@(make_qualified_names_files)',
            'xml/xmlattrs.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/XMLNames.cpp',
            '<(blink_core_output_dir)/XMLNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_qualified_names.py',
            'xml/xmlattrs.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'MakeTokenMatcher',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_token_matcher.py',
            '../core/css/parser/CSSTokenizer-in.cpp',
          ],
          'outputs': [
            '<(blink_core_output_dir)/CSSTokenizer.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_token_matcher.py',
            '../core/css/parser/CSSTokenizer-in.cpp',
            '<(blink_core_output_dir)/CSSTokenizer.cpp',
          ],
        },
        {
          'action_name': 'MakeParser',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_token_matcher.py',
            '../core/css/parser/BisonCSSParser-in.cpp',
          ],
          'outputs': [
            '<(blink_core_output_dir)/BisonCSSParser.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_token_matcher.py',
            '../core/css/parser/BisonCSSParser-in.cpp',
            '<(blink_core_output_dir)/BisonCSSParser.cpp',
          ],
        },
        {
          'action_name': 'MakeTokenMatcherForViewport',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_token_matcher.py',
            '../core/html/HTMLMetaElement-in.cpp',
          ],
          'outputs': [
            '<(blink_core_output_dir)/HTMLMetaElement.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_token_matcher.py',
            '../core/html/HTMLMetaElement-in.cpp',
            '<(blink_core_output_dir)/HTMLMetaElement.cpp',
          ],
        },
        {
          'action_name': 'HTMLElementLookupTrie',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_element_lookup_trie.py',
            '../build/scripts/templates/ElementLookupTrie.cpp.tmpl',
            '../build/scripts/templates/ElementLookupTrie.h.tmpl',
            'html/HTMLTagNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/HTMLElementLookupTrie.cpp',
            '<(blink_core_output_dir)/HTMLElementLookupTrie.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_element_lookup_trie.py',
            'html/HTMLTagNames.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
      ],
      'rules': [
        {
          'rule_name': 'bison',
          'extension': 'y',
          'outputs': [
            '<(blink_core_output_dir)/<(RULE_INPUT_ROOT).cpp',
            '<(blink_core_output_dir)/<(RULE_INPUT_ROOT).h'
          ],
          'action': [
            'python',
            '../build/scripts/rule_bison.py',
            '<(RULE_INPUT_PATH)',
            '<(blink_core_output_dir)',
            '<(bison_exe)',
          ],
        },
      ],
    },
  ],
}
