Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / bindings / scripts / BUILD.gn
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 }