1 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 import("//third_party/WebKit/Source/bindings/bindings.gni") 6 import("//third_party/WebKit/Source/bindings/scripts/scripts.gni") 7 import("//third_party/WebKit/Source/bindings/templates/templates.gni") 8 9 visibility = [ "//third_party/WebKit/*" ] 10 11 # This separate pre-caching step is required to use lex/parse table 12 # caching in PLY, since PLY itself does not check if the cache is 13 # valid, and thus may end up using a stale cache if this step hasn't 14 # been run to update it. 15 # 16 # This action's dependencies *is* the cache validation. 17 # 18 # GYP version: scripts.gyp:cached_lex_yacc_tables 19 action("cached_lex_yacc_tables") { 20 script = "blink_idl_parser.py" 21 22 inputs = idl_lexer_parser_files 23 outputs = [ 24 "$bindings_scripts_output_dir/lextab.py", 25 "$bindings_scripts_output_dir/parsetab.pickle", 26 ] 27 28 args = [ rebase_path(bindings_scripts_output_dir, root_build_dir) ] 29 } 30 31 # A separate pre-caching step is *required* to use bytecode caching in 32 # Jinja (which improves speed significantly), as the bytecode cache is 33 # not concurrency-safe on write; details in code_generator_v8.py. 34 # 35 # GYP version: scripts.gyp:cached_jinja_templates 36 action("cached_jinja_templates") { 37 script = "code_generator_v8.py" 38 39 inputs = jinja_module_files + [ "code_generator_v8.py" ] + 40 code_generator_template_files 41 # Dummy file to track dependency. 42 stamp_file = "$bindings_scripts_output_dir/cached_jinja_templates.stamp" 43 outputs = [ stamp_file ] 44 45 args = [ 46 rebase_path(bindings_scripts_output_dir, root_build_dir), 47 rebase_path(stamp_file, root_build_dir), 48 ] 49 } 50