#
# 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/SettingsMacros.h.tmpl',
            'frame/Settings.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/SettingsMacros.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_settings.py',
            'frame/Settings.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'InternalSettings',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_internal_settings.py',
            '../build/scripts/templates/InternalSettingsGenerated.idl.tmpl',
            '../build/scripts/templates/InternalSettingsGenerated.cpp.tmpl',
            '../build/scripts/templates/InternalSettingsGenerated.h.tmpl',
            'frame/Settings.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/testing/InternalSettingsGenerated.idl',
            '<(blink_core_output_dir)/testing/InternalSettingsGenerated.cpp',
            '<(blink_core_output_dir)/testing/InternalSettingsGenerated.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_internal_settings.py',
            'frame/Settings.in',
            '--output_dir',
            '<(blink_core_output_dir)/testing',
          ],
        },
        {
          '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)/testing/InternalRuntimeFlags.idl',
            '<(blink_core_output_dir)/testing/InternalRuntimeFlags.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_internal_runtime_flags.py',
            '../platform/RuntimeEnabledFeatures.in',
            '--output_dir',
            '<(blink_core_output_dir)/testing',
          ],
        },
      ]
    },
    {
      # 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',
        'inspector/inspector.gyp:protocol_sources',
      ],
      'sources': [
        # bison rule
        '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',
             'html/HTMLMarqueeElement.js',
             'xml/DocumentXMLTreeViewer.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',
             '--for-testing',
             '<@(_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': 'CSSTokenizerCodepoints',
          'inputs': [
            '../build/scripts/make_css_tokenizer_codepoints.py',
          ],
          'outputs': [
            '<(blink_core_output_dir)/CSSTokenizerCodepoints.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_css_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': 'CSSOMTypes',
          'inputs': [
            '<@(css_properties_files)',
            '../build/scripts/make_cssom_types.py',
            '../build/scripts/templates/CSSOMKeywords.cpp.tmpl',
            '../build/scripts/templates/CSSOMTypes.cpp.tmpl',
          ],
          'outputs': [
            '<(blink_core_output_dir)/CSSOMKeywords.cpp',
            '<(blink_core_output_dir)/CSSOMTypes.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_cssom_types.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',
          ],
          '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',
          ],
          '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',
          ],
          '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': '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': 'FetchInitiatorTypeNames',
          'inputs': [
            '<@(make_names_files)',
            'fetch/FetchInitiatorTypeNames.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/fetch/FetchInitiatorTypeNames.cpp',
            '<(blink_core_output_dir)/fetch/FetchInitiatorTypeNames.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_names.py',
            'fetch/FetchInitiatorTypeNames.in',
            '--output_dir',
            '<(blink_core_output_dir)/fetch',
          ],
        },
        {
          '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': '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': 'CSSPrimitiveValueUnitTrie',
          'inputs': [
            '<@(make_trie_helpers_files)',
            '../build/scripts/make_css_primitive_value_unit_trie.py',
            '../build/scripts/templates/CSSPrimitiveValueUnitTrie.cpp.tmpl',
            'css/CSSPrimitiveValueUnits.in',
          ],
          'outputs': [
            '<(blink_core_output_dir)/CSSPrimitiveValueUnitTrie.cpp',
          ],
          'action': [
            'python',
            '../build/scripts/make_css_primitive_value_unit_trie.py',
            'css/CSSPrimitiveValueUnits.in',
            '--output_dir',
            '<(blink_core_output_dir)',
          ],
        },
        {
          'action_name': 'HTMLElementLookupTrie',
          'inputs': [
            '<@(make_trie_helpers_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)',
          ],
        },
        {
          'action_name': 'OriginTrials',
          'inputs': [
            '<@(scripts_for_in_files)',
            '../build/scripts/make_origin_trials.py',
            '../platform/RuntimeEnabledFeatures.in',
            '../build/scripts/templates/OriginTrials.cpp.tmpl',
            '../build/scripts/templates/OriginTrials.h.tmpl',
          ],
          'outputs': [
            '<(blink_core_output_dir)/origin_trials/OriginTrials.cpp',
            '<(blink_core_output_dir)/origin_trials/OriginTrials.h',
          ],
          'action': [
            'python',
            '../build/scripts/make_origin_trials.py',
            '../platform/RuntimeEnabledFeatures.in',
            '--output_dir',
            '<(blink_core_output_dir)/origin_trials',
          ],
        },
      ],
      '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)',
          ],
        },
      ],
    },
  ],
}
