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

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

Issue 1635613002: [mojo-bindings] Support reuse of native enum classes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove now-unnecessary enum casts Created 4 years, 10 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
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 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 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 mojom_generator_root = "//mojo/public/tools/bindings" 5 mojom_generator_root = "//mojo/public/tools/bindings"
6 mojom_generator_script = "$mojom_generator_root/mojom_bindings_generator.py" 6 mojom_generator_script = "$mojom_generator_root/mojom_bindings_generator.py"
7 mojom_generator_sources = [ 7 mojom_generator_sources = [
8 "$mojom_generator_root/generators/mojom_cpp_generator.py", 8 "$mojom_generator_root/generators/mojom_cpp_generator.py",
9 "$mojom_generator_root/generators/mojom_js_generator.py", 9 "$mojom_generator_root/generators/mojom_js_generator.py",
10 "$mojom_generator_root/generators/mojom_java_generator.py", 10 "$mojom_generator_root/generators/mojom_java_generator.py",
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 # Mojo environment implementation. Defaults to |true| and in general 48 # Mojo environment implementation. Defaults to |true| and in general
49 # should only be overridden by mojom targets within the Mojo EDK. 49 # should only be overridden by mojom targets within the Mojo EDK.
50 # 50 #
51 # typemaps (optional) 51 # typemaps (optional)
52 # A list of typemap files to apply during bindings generation. 52 # A list of typemap files to apply during bindings generation.
53 # 53 #
54 # variant (optional) 54 # variant (optional)
55 # A variant name to apply to generated bindings. Variant influences 55 # A variant name to apply to generated bindings. Variant influences
56 # generated source filenames as wells the symbols they define. 56 # generated source filenames as wells the symbols they define.
57 # 57 #
58 # cpp_only (optional)
59 # If true, only C++ bindings will be generated. This defaults to false
60 # unless |variant| is specified.
61 #
58 # testonly (optional) 62 # testonly (optional)
59 # 63 #
60 # visibility (optional) 64 # visibility (optional)
61 template("mojom") { 65 template("mojom") {
62 assert( 66 assert(
63 defined(invoker.sources) || defined(invoker.deps) || 67 defined(invoker.sources) || defined(invoker.deps) ||
64 defined(invoker.public_deps), 68 defined(invoker.public_deps),
65 "\"sources\" or \"deps\" must be defined for the $target_name template.") 69 "\"sources\" or \"deps\" must be defined for the $target_name template.")
66 70
67 cpp_sources_suffix = "cpp_sources" 71 cpp_sources_suffix = "cpp_sources"
68 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}" 72 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}"
73 cpp_only = false
74 if (defined(invoker.cpp_only)) {
75 cpp_only = invoker.cpp_only
76 }
69 if (defined(invoker.sources)) { 77 if (defined(invoker.sources)) {
70 if (defined(invoker.variant)) { 78 if (defined(invoker.variant)) {
71 variant = invoker.variant 79 variant = invoker.variant
80 cpp_only = true
72 generator_cpp_outputs = [ 81 generator_cpp_outputs = [
73 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.cc", 82 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.cc",
74 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.h", 83 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.h",
75 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}-internal.h", 84 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}-internal.h",
76 ] 85 ]
77 generator_js_outputs = []
78 generator_java_outputs = []
79 } else { 86 } else {
80 generator_cpp_outputs = [ 87 generator_cpp_outputs = [
81 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc", 88 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc",
82 "{{source_gen_dir}}/{{source_name_part}}.mojom.h", 89 "{{source_gen_dir}}/{{source_name_part}}.mojom.h",
83 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h", 90 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h",
84 ] 91 ]
85 generator_js_outputs =
86 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ]
87 generator_java_outputs =
88 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ]
89 } 92 }
90 } 93 }
91 94
95 if (cpp_only) {
96 generator_js_outputs = []
97 generator_java_outputs = []
98 } else {
99 generator_js_outputs =
100 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ]
101 generator_java_outputs =
102 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ]
103 }
104
92 if (defined(invoker.sources)) { 105 if (defined(invoker.sources)) {
93 generator_target_name = target_name + "__generator" 106 generator_target_name = target_name + "__generator"
94 action_foreach(generator_target_name) { 107 action_foreach(generator_target_name) {
95 script = mojom_generator_script 108 script = mojom_generator_script
96 inputs = mojom_generator_sources 109 inputs = mojom_generator_sources
97 sources = invoker.sources 110 sources = invoker.sources
98 deps = [ 111 deps = [
99 "//mojo/public/tools/bindings:precompile_templates", 112 "//mojo/public/tools/bindings:precompile_templates",
100 ] 113 ]
101 outputs = 114 outputs =
(...skipping 14 matching lines...) Expand all
116 129
117 if (defined(invoker.import_dirs)) { 130 if (defined(invoker.import_dirs)) {
118 foreach(import_dir, invoker.import_dirs) { 131 foreach(import_dir, invoker.import_dirs) {
119 args += [ 132 args += [
120 "-I", 133 "-I",
121 rebase_path(import_dir, root_build_dir), 134 rebase_path(import_dir, root_build_dir),
122 ] 135 ]
123 } 136 }
124 } 137 }
125 138
126 if (defined(invoker.variant)) { 139 if (cpp_only) {
127 args += [ 140 args += [
128 "--variant",
129 invoker.variant,
130 "-g", 141 "-g",
131 "c++", 142 "c++",
132 ] 143 ]
133 } else { 144 } else {
134 args += [ 145 args += [
135 "-g", 146 "-g",
136 "c++,javascript,java", 147 "c++,javascript,java",
137 ] 148 ]
138 } 149 }
139 150
151 if (defined(invoker.variant)) {
152 args += [
153 "--variant",
154 invoker.variant,
155 ]
156 }
157
140 if (defined(invoker.typemaps)) { 158 if (defined(invoker.typemaps)) {
141 foreach(typemap, invoker.typemaps) { 159 foreach(typemap, invoker.typemaps) {
142 args += [ 160 args += [
143 "--typemap", 161 "--typemap",
144 rebase_path(typemap, root_build_dir), 162 rebase_path(typemap, root_build_dir),
145 ] 163 ]
146 } 164 }
147 } 165 }
148 } 166 }
149 } 167 }
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 # //mojo/something:something and we can append "_java" to get the java 283 # //mojo/something:something and we can append "_java" to get the java
266 # dependency name. 284 # dependency name.
267 full_name = get_label_info(d, "label_no_toolchain") 285 full_name = get_label_info(d, "label_no_toolchain")
268 deps += [ "${full_name}_java" ] 286 deps += [ "${full_name}_java" ]
269 } 287 }
270 288
271 srcjar_deps = [ ":$java_srcjar_target_name" ] 289 srcjar_deps = [ ":$java_srcjar_target_name" ]
272 } 290 }
273 } 291 }
274 } 292 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698