# Copyright 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Pre-caching steps used internally by the IDL compiler # # Design doc: http://www.chromium.org/developers/design-documents/idl-build { 'includes': [ 'scripts.gypi', '../bindings.gypi', '../templates/templates.gypi', ], 'targets': [ ################################################################################ { # This separate pre-caching step is required to use lex/parse table caching # in PLY, since PLY itself does not check if the cache is valid, and may end # up using a stale cache if this step hasn't been run to update it. # # This action's dependencies *is* the cache validation. # # GN version: //third_party/WebKit/Source/bindings/scripts:cached_lex_yacc_tables 'target_name': 'cached_lex_yacc_tables', 'type': 'none', 'actions': [{ 'action_name': 'cache_lex_yacc_tables', 'inputs': [ '<@(idl_lexer_parser_files)', ], 'outputs': [ '<(bindings_scripts_output_dir)/lextab.py', '<(bindings_scripts_output_dir)/parsetab.pickle', ], 'action': [ 'python', 'blink_idl_parser.py', '<(bindings_scripts_output_dir)', ], 'message': 'Caching PLY lex & yacc lex/parse tables', }], }, ################################################################################ { # A separate pre-caching step is *required* to use bytecode caching in # Jinja (which improves speed significantly), as the bytecode cache is # not concurrency-safe on write; details in code_generator_v8.py. # # GN version: //third_party/WebKit/Source/bindings/scripts:cached_jinja_templates 'target_name': 'cached_jinja_templates', 'type': 'none', 'actions': [{ 'action_name': 'cache_jinja_templates', 'inputs': [ '<@(jinja_module_files)', 'code_generator_v8.py', '<@(code_generator_template_files)', ], 'outputs': [ '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', # Dummy to track dependency ], 'action': [ 'python', 'code_generator_v8.py', '<(bindings_scripts_output_dir)', '<(bindings_scripts_output_dir)/cached_jinja_templates.stamp', ], 'message': 'Caching bytecode of Jinja templates', }], }, ################################################################################ ], # targets }