naiveproxy/third_party/blink/renderer/bindings/scripts/BUILD.gn
2018-08-14 22:19:20 +00:00

49 lines
1.6 KiB
Plaintext

# 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.
import("//third_party/blink/renderer/bindings/bindings.gni")
import("//third_party/blink/renderer/bindings/scripts/scripts.gni")
import("//third_party/blink/renderer/bindings/templates/templates.gni")
visibility = [ "//third_party/blink/*" ]
# 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 thus 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.
action("cached_lex_yacc_tables") {
script = "blink_idl_parser.py"
inputs = idl_lexer_parser_files
outputs = [
"$bindings_scripts_output_dir/lextab.py",
"$bindings_scripts_output_dir/parsetab.pickle",
]
args = [ rebase_path(bindings_scripts_output_dir, root_build_dir) ]
}
# 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.
action("cached_jinja_templates") {
script = "code_generator.py"
inputs = jinja_module_files + [ "code_generator.py" ] +
code_generator_template_files
# Dummy file to track dependency.
stamp_file = "$bindings_scripts_output_dir/cached_jinja_templates.stamp"
outputs = [
stamp_file,
]
args = [
rebase_path(bindings_scripts_output_dir, root_build_dir),
rebase_path(stamp_file, root_build_dir),
]
}