Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Side by Side Diff: mojo/public/tools/bindings/mojom.gni

Issue 259823005: Add GN targets for mojom generator (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mojo/public/interfaces/bindings/tests/BUILD.gn ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 # Generate C++ and JavaScript source files from mojom files.
6 template("mojom") {
7 assert(defined(invoker.sources),
8 "\"sources\" must be defined for the $target_name template.")
9
10 generator_root = "//mojo/public/tools/bindings"
11 generator_script = "$generator_root/mojom_bindings_generator.py"
12 generator_sources = [
13 generator_script,
14 "$generator_root/generators/cpp_templates/enum_declaration.tmpl",
15 "$generator_root/generators/cpp_templates/interface_declaration.tmpl",
16 "$generator_root/generators/cpp_templates/interface_definition.tmpl",
17 "$generator_root/generators/cpp_templates/interface_macros.tmpl",
18 "$generator_root/generators/cpp_templates/interface_proxy_declaration.tmpl",
19 "$generator_root/generators/cpp_templates/interface_stub_declaration.tmpl",
20 "$generator_root/generators/cpp_templates/module.cc.tmpl",
21 "$generator_root/generators/cpp_templates/module.h.tmpl",
22 "$generator_root/generators/cpp_templates/module-internal.h.tmpl",
23 "$generator_root/generators/cpp_templates/params_definition.tmpl",
24 "$generator_root/generators/cpp_templates/struct_builder_definition.tmpl",
25 "$generator_root/generators/cpp_templates/struct_declaration.tmpl",
26 "$generator_root/generators/cpp_templates/struct_definition.tmpl",
27 "$generator_root/generators/cpp_templates/struct_destructor.tmpl",
28 "$generator_root/generators/cpp_templates/struct_macros.tmpl",
29 "$generator_root/generators/cpp_templates/wrapper_class_declaration.tmpl",
30 "$generator_root/generators/js_templates/enum_definition.tmpl",
31 "$generator_root/generators/js_templates/interface_definition.tmpl",
32 "$generator_root/generators/js_templates/module.js.tmpl",
33 "$generator_root/generators/js_templates/struct_definition.tmpl",
34 "$generator_root/generators/mojom_cpp_generator.py",
35 "$generator_root/generators/mojom_js_generator.py",
36 "$generator_root/pylib/mojom/generate/__init__.py",
37 "$generator_root/pylib/mojom/generate/data.py",
38 "$generator_root/pylib/mojom/generate/generator.py",
39 "$generator_root/pylib/mojom/generate/module.py",
40 "$generator_root/pylib/mojom/generate/pack.py",
41 "$generator_root/pylib/mojom/generate/template_expander.py",
42 "$generator_root/pylib/mojom/parse/__init__.py",
43 "$generator_root/pylib/mojom/parse/ast.py",
44 "$generator_root/pylib/mojom/parse/lexer.py",
45 "$generator_root/pylib/mojom/parse/parser.py",
46 "$generator_root/pylib/mojom/parse/translate.py",
47 ]
48 generator_cpp_outputs = [
49 "$target_gen_dir/{{source_name_part}}.mojom.cc",
50 "$target_gen_dir/{{source_name_part}}.mojom.h",
51 "$target_gen_dir/{{source_name_part}}.mojom-internal.h",
52 ]
53 generator_js_outputs = [
54 "$target_gen_dir/{{source_name_part}}.mojom.js",
55 ]
56
57 target_visibility = ":$target_name"
58
59 generator_target_name = target_name + "_generator"
60 action_foreach(generator_target_name) {
61 visibility = target_visibility
62 hard_dep = true
63 script = generator_script
64 source_prereqs = generator_sources
65 sources = invoker.sources
66 outputs = generator_cpp_outputs + generator_js_outputs
67 args = [
68 "{{source}}",
69 "-d", rebase_path("//", root_build_dir),
70 "-o", rebase_path(target_gen_dir, root_build_dir),
71 ]
72 }
73
74 config_name = target_name + "_config"
75 config(config_name) {
76 visibility = target_visibility
77 include_dirs = [ root_gen_dir ]
brettw 2014/04/28 19:46:24 This should be implicit for everybody, you should
yzshen1 2014/04/28 20:40:29 Done.
78 }
79
80 source_set(target_name) {
81 hard_dep = true
82 sources = process_file_template(invoker.sources, generator_cpp_outputs)
83 data = process_file_template(invoker.sources, generator_js_outputs)
84 direct_dependent_configs = [ ":$config_name" ]
85 deps = [
86 ":$generator_target_name",
87 "//mojo/public:bindings",
88 ]
89 }
90 }
91
OLDNEW
« no previous file with comments | « mojo/public/interfaces/bindings/tests/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698