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

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

Issue 1832703002: Mojo: Simplify typemap usage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mojo-bindings-variant-import
Patch Set: add missing mash dependency Created 4 years, 8 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",
11 "$mojom_generator_root/pylib/mojom/__init__.py", 11 "$mojom_generator_root/pylib/mojom/__init__.py",
12 "$mojom_generator_root/pylib/mojom/error.py", 12 "$mojom_generator_root/pylib/mojom/error.py",
13 "$mojom_generator_root/pylib/mojom/generate/__init__.py", 13 "$mojom_generator_root/pylib/mojom/generate/__init__.py",
14 "$mojom_generator_root/pylib/mojom/generate/constant_resolver.py", 14 "$mojom_generator_root/pylib/mojom/generate/constant_resolver.py",
15 "$mojom_generator_root/pylib/mojom/generate/data.py", 15 "$mojom_generator_root/pylib/mojom/generate/data.py",
16 "$mojom_generator_root/pylib/mojom/generate/generator.py", 16 "$mojom_generator_root/pylib/mojom/generate/generator.py",
17 "$mojom_generator_root/pylib/mojom/generate/module.py", 17 "$mojom_generator_root/pylib/mojom/generate/module.py",
18 "$mojom_generator_root/pylib/mojom/generate/pack.py", 18 "$mojom_generator_root/pylib/mojom/generate/pack.py",
19 "$mojom_generator_root/pylib/mojom/generate/template_expander.py", 19 "$mojom_generator_root/pylib/mojom/generate/template_expander.py",
20 "$mojom_generator_root/pylib/mojom/parse/__init__.py", 20 "$mojom_generator_root/pylib/mojom/parse/__init__.py",
21 "$mojom_generator_root/pylib/mojom/parse/ast.py", 21 "$mojom_generator_root/pylib/mojom/parse/ast.py",
22 "$mojom_generator_root/pylib/mojom/parse/lexer.py", 22 "$mojom_generator_root/pylib/mojom/parse/lexer.py",
23 "$mojom_generator_root/pylib/mojom/parse/parser.py", 23 "$mojom_generator_root/pylib/mojom/parse/parser.py",
24 "$mojom_generator_root/pylib/mojom/parse/translate.py", 24 "$mojom_generator_root/pylib/mojom/parse/translate.py",
25 "$mojom_generator_script", 25 "$mojom_generator_script",
26 ] 26 ]
27 27
28 _bindings_configuration_files = [
29 "//mojo/public/tools/bindings/chromium_bindings_configuration.gni",
30 "//mojo/public/tools/bindings/blink_bindings_configuration.gni",
31 ]
32 _bindings_configurations = []
33 foreach(config_file, _bindings_configuration_files) {
34 _bindings_configurations += [ read_file(config_file, "scope") ]
35 }
36
28 # Generate C++/JavaScript/Java source files from mojom files. The output files 37 # Generate C++/JavaScript/Java source files from mojom files. The output files
29 # will go under the generated file directory tree with the same path as each 38 # will go under the generated file directory tree with the same path as each
30 # input file. 39 # input file.
31 # 40 #
32 # Parameters: 41 # Parameters:
33 # 42 #
34 # sources (optional if one of the deps sets listed below is present) 43 # sources (optional if one of the deps sets listed below is present)
35 # List of source .mojom files to compile. 44 # List of source .mojom files to compile.
36 # 45 #
37 # deps (optional) 46 # deps (optional)
38 # Note: this can contain only other mojom targets. 47 # Note: this can contain only other mojom targets.
39 # 48 #
40 # DEPRECATED: This is synonymous with public_deps because all mojom 49 # DEPRECATED: This is synonymous with public_deps because all mojom
41 # dependencies must be public by design. Please use public_deps. 50 # dependencies must be public by design. Please use public_deps.
42 # 51 #
43 # public_deps (optional) 52 # public_deps (optional)
44 # Note: this can contain only other mojom targets. 53 # Note: this can contain only other mojom targets.
45 # 54 #
46 # import_dirs (optional) 55 # import_dirs (optional)
47 # List of import directories that will get added when processing sources. 56 # List of import directories that will get added when processing sources.
48 # 57 #
49 # typemaps (optional)
50 # A list of typemap files to apply during bindings generation.
51 #
52 # typemap_deps (optional)
53 # A list of public dependencies needed to support active typemaps.
54 #
55 # variant (optional)
56 # A variant name to apply to generated bindings. Variant influences
57 # generated source filenames as wells the symbols they define.
58 #
59 # testonly (optional) 58 # testonly (optional)
60 # 59 #
61 # visibility (optional) 60 # visibility (optional)
62 #
63 # for_blink (optional, C++ only)
64 # Use WTF types as generated type for mojo string/array/map.
65 template("mojom") { 61 template("mojom") {
66 assert( 62 assert(
67 defined(invoker.sources) || defined(invoker.deps) || 63 defined(invoker.sources) || defined(invoker.deps) ||
68 defined(invoker.public_deps), 64 defined(invoker.public_deps),
69 "\"sources\" or \"deps\" must be defined for the $target_name template.") 65 "\"sources\" or \"deps\" must be defined for the $target_name template.")
70 66
71 cpp_sources_suffix = "cpp_sources"
72 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}"
73 cpp_only = false
74 if (defined(invoker.sources)) {
75 if (defined(invoker.variant)) {
76 variant = invoker.variant
77 cpp_only = true
78 generator_cpp_outputs = [
79 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.cc",
80 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}.h",
81 "{{source_gen_dir}}/{{source_name_part}}.mojom-${variant}-internal.h",
82 ]
83 } else {
84 generator_cpp_outputs = [
85 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc",
86 "{{source_gen_dir}}/{{source_name_part}}.mojom.h",
87 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h",
88 ]
89 }
90 }
91
92 if (cpp_only) {
93 generator_js_outputs = []
94 generator_java_outputs = []
95 } else {
96 generator_js_outputs =
97 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ]
98 generator_java_outputs =
99 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ]
100 }
101
102 if (defined(invoker.sources)) {
103 generator_target_name = target_name + "__generator"
104 action_foreach(generator_target_name) {
105 script = mojom_generator_script
106 inputs = mojom_generator_sources
107 sources = invoker.sources
108 deps = [
109 "//mojo/public/tools/bindings:precompile_templates",
110 ]
111 outputs =
112 generator_cpp_outputs + generator_java_outputs + generator_js_outputs
113 args = [
114 "--use_bundled_pylibs",
115 "generate",
116 "{{source}}",
117 "-d",
118 rebase_path("//", root_build_dir),
119 "-I",
120 rebase_path("//", root_build_dir),
121 "-o",
122 rebase_path(root_gen_dir),
123 "--bytecode_path",
124 rebase_path("$root_gen_dir/mojo/public/tools/bindings"),
125 ]
126
127 if (defined(invoker.import_dirs)) {
128 foreach(import_dir, invoker.import_dirs) {
129 args += [
130 "-I",
131 rebase_path(import_dir, root_build_dir),
132 ]
133 }
134 }
135
136 if (cpp_only) {
137 args += [
138 "-g",
139 "c++",
140 ]
141 } else {
142 args += [
143 "-g",
144 "c++,javascript,java",
145 ]
146 }
147
148 if (defined(invoker.variant)) {
149 args += [
150 "--variant",
151 invoker.variant,
152 ]
153 }
154
155 if (defined(invoker.typemaps)) {
156 foreach(typemap, invoker.typemaps) {
157 args += [
158 "--typemap",
159 rebase_path(typemap, root_build_dir),
160 ]
161 }
162 inputs += invoker.typemaps
163 }
164
165 if (defined(invoker.for_blink) && invoker.for_blink) {
166 args += [ "--for_blink" ]
167 }
168 }
169 }
170
171 source_set(target_name) {
172 if (defined(invoker.visibility)) {
173 visibility = invoker.visibility
174 }
175 if (defined(invoker.testonly)) {
176 testonly = invoker.testonly
177 }
178 if (defined(invoker.sources) && !defined(invoker.variant)) {
179 data = process_file_template(invoker.sources, generator_js_outputs)
180 }
181
182 public_deps = [
183 "//mojo/public/cpp/bindings",
184 ]
185 if (defined(invoker.sources)) {
186 public_deps += [ ":${cpp_sources_target_name}" ]
187 }
188 if (defined(invoker.deps)) {
189 public_deps += invoker.deps
190 }
191 if (defined(invoker.public_deps)) {
192 public_deps += invoker.public_deps
193 }
194 if (defined(invoker.typemap_deps)) {
195 public_deps += invoker.typemap_deps
196 }
197
198 deps = []
199 if (defined(invoker.sources)) {
200 public_deps += [ ":$generator_target_name" ]
201 }
202 }
203
204 all_deps = [] 67 all_deps = []
205 if (defined(invoker.deps)) { 68 if (defined(invoker.deps)) {
206 all_deps += invoker.deps 69 all_deps += invoker.deps
207 } 70 }
208 if (defined(invoker.public_deps)) { 71 if (defined(invoker.public_deps)) {
209 all_deps += invoker.public_deps 72 all_deps += invoker.public_deps
210 } 73 }
211 74
212 if (defined(invoker.variant)) { 75 group("${target_name}__is_mojom") {
213 variant_suffix = "of_variant_${invoker.variant}"
214 } else {
215 variant_suffix = "of_no_variant"
216 }
217 group("${target_name}__is_mojom_${variant_suffix}") {
218 } 76 }
219 77
220 # Explicitly ensure that all dependencies (invoker.deps and 78 # Explicitly ensure that all dependencies (invoker.deps and
221 # invoker.public_deps) are mojom targets of the same variant themselves. 79 # invoker.public_deps) are mojom targets.
222 group("${target_name}__check_deps_are_all_mojom_${variant_suffix}") { 80 group("${target_name}__check_deps_are_all_mojom") {
223 deps = [] 81 deps = []
224 foreach(d, all_deps) { 82 foreach(d, all_deps) {
225 name = get_label_info(d, "label_no_toolchain") 83 name = get_label_info(d, "label_no_toolchain")
226 toolchain = get_label_info(d, "toolchain") 84 toolchain = get_label_info(d, "toolchain")
227 deps += [ "${name}__is_mojom_${variant_suffix}(${toolchain})" ] 85 deps += [ "${name}__is_mojom(${toolchain})" ]
228 } 86 }
229 } 87 }
230 88
231 if (defined(invoker.sources)) { 89 foreach(bindings_configuration, _bindings_configurations) {
90 cpp_only = false
91 variant_suffix = ""
92 if (defined(bindings_configuration.variant)) {
93 variant = bindings_configuration.variant
94 variant_suffix = "_${variant}"
95 cpp_only = true
96 }
97 type_mappings_target_name = "${target_name}${variant_suffix}__type_mappings"
98 type_mappings_path =
99 "$target_gen_dir/${target_name}${variant_suffix}__type_mappings"
100 active_typemaps = []
101 cpp_sources_suffix = "cpp_sources"
102 cpp_sources_target_name =
103 "${target_name}${variant_suffix}_${cpp_sources_suffix}"
104 enabled_sources = []
105 if (defined(invoker.sources)) {
106 generator_cpp_outputs = []
107 generator_js_outputs = []
108 generator_java_outputs = []
109 variant_dash_suffix = ""
110 if (defined(variant)) {
111 variant_dash_suffix = "-${variant}"
112 }
113 generator_cpp_outputs += [
114 "{{source_gen_dir}}/{{source_name_part}}.mojom${variant_dash_suffix}.cc" ,
115 "{{source_gen_dir}}/{{source_name_part}}.mojom${variant_dash_suffix}.h",
116 "{{source_gen_dir}}/{{source_name_part}}.mojom${variant_dash_suffix}-int ernal.h",
117 ]
118 enabled_sources = []
119 if (defined(bindings_configuration.blacklist)) {
120 foreach(source, invoker.sources) {
121 blacklisted = false
122 foreach(blacklisted_source, bindings_configuration.blacklist) {
123 if (get_path_info(source, "abspath") == blacklisted_source) {
124 blacklisted = true
125 }
126 }
127 if (!blacklisted) {
128 enabled_sources += [ source ]
129 }
130 }
131 } else {
132 enabled_sources = invoker.sources
133 }
134 foreach(source, enabled_sources) {
135 # TODO(sammc): Use a map instead of a linear scan when GN supports maps.
136 foreach(typemap, bindings_configuration.typemaps) {
137 if (get_path_info(source, "abspath") == typemap.mojom) {
138 active_typemaps += [ typemap ]
139 }
140 }
141 }
142
143 if (!cpp_only) {
144 generator_js_outputs =
145 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ]
146 generator_java_outputs =
147 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ]
148 }
149 generator_target_name = "${target_name}${variant_suffix}__generator"
150 action_foreach(generator_target_name) {
151 script = mojom_generator_script
152 inputs = mojom_generator_sources
153 sources = invoker.sources
154 deps = [
155 ":$type_mappings_target_name",
156 "//mojo/public/tools/bindings:precompile_templates",
157 ]
158 outputs = generator_cpp_outputs + generator_java_outputs +
159 generator_js_outputs
160 args = [
161 "--use_bundled_pylibs",
162 "generate",
163 "{{source}}",
164 "-d",
165 rebase_path("//", root_build_dir),
166 "-I",
167 rebase_path("//", root_build_dir),
168 "-o",
169 rebase_path(root_gen_dir),
170 "--bytecode_path",
171 rebase_path("$root_gen_dir/mojo/public/tools/bindings"),
172 ]
173
174 if (defined(invoker.import_dirs)) {
175 foreach(import_dir, invoker.import_dirs) {
176 args += [
177 "-I",
178 rebase_path(import_dir, root_build_dir),
179 ]
180 }
181 }
182
183 if (cpp_only) {
184 args += [
185 "-g",
186 "c++",
187 ]
188 } else {
189 args += [
190 "-g",
191 "c++,javascript,java",
192 ]
193 }
194
195 if (defined(bindings_configuration.variant)) {
196 args += [
197 "--variant",
198 bindings_configuration.variant,
199 ]
200 }
201
202 args += [
203 "--typemap",
204 rebase_path(type_mappings_path, root_build_dir),
205 ]
206
207 if (defined(bindings_configuration.for_blink) &&
208 bindings_configuration.for_blink) {
209 args += [ "--for_blink" ]
210 }
211 }
212 }
213
214 action(type_mappings_target_name) {
215 outputs = [
216 type_mappings_path,
217 ]
218 script = "$mojom_generator_root/generate_type_mappings.py"
219 deps = []
220 args = [
221 "--output",
222 rebase_path(type_mappings_path, root_build_dir),
223 ]
224
225 foreach(d, all_deps) {
226 name = get_label_info(d, "label_no_toolchain")
227 toolchain = get_label_info(d, "toolchain")
228 dependency_output = "${name}${variant_suffix}__type_mappings"
229 dependency_target = "${dependency_output}(${toolchain})"
230 deps += [ dependency_target ]
231 dependency_output_dir =
232 get_label_info(dependency_output, "target_gen_dir")
233 dependency_name = get_label_info(dependency_output, "name")
234 dependency_path =
235 rebase_path("$dependency_output_dir/${dependency_name}",
236 root_build_dir)
237 args += [
238 "--dependency",
239 dependency_path,
240 ]
241 }
242
243 if (enabled_sources != []) {
244 # TODO(sammc): Pass the typemap description in a file to avoid command
245 # line length limitations.
246 typemap_description = []
247 foreach(typemap, active_typemaps) {
248 typemap_description += [ "--start-typemap" ]
249 if (defined(typemap.public_headers)) {
250 foreach(value, typemap.public_headers) {
251 typemap_description += [ "public_headers=$value" ]
252 }
253 }
254 if (defined(typemap.traits_headers)) {
255 foreach(value, typemap.traits_headers) {
256 typemap_description += [ "traits_headers=$value" ]
257 }
258 }
259 foreach(value, typemap.type_mappings) {
260 typemap_description += [ "type_mappings=$value" ]
261 }
262 }
263 args += typemap_description
264 }
265 }
266
267 source_set("${target_name}${variant_suffix}") {
268 if (defined(invoker.visibility)) {
269 visibility = invoker.visibility
270 }
271 if (defined(invoker.testonly)) {
272 testonly = invoker.testonly
273 }
274 if (defined(invoker.sources) && !defined(bindings_configuration.variant)) {
275 data = process_file_template(enabled_sources, generator_js_outputs)
276 }
277
278 public_deps = [
279 ":${cpp_sources_target_name}",
280 "//mojo/public/cpp/bindings",
281 ]
282 if (defined(invoker.deps)) {
283 public_deps += invoker.deps
284 }
285 if (defined(invoker.public_deps)) {
286 public_deps += invoker.public_deps
287 }
288
289 deps = []
290 if (defined(invoker.sources)) {
291 public_deps += [ ":$generator_target_name" ]
292 }
293 }
294
232 # The generated C++ source files. The main reason to introduce this target 295 # The generated C++ source files. The main reason to introduce this target
233 # is so that mojo/public/cpp/bindings can depend on mojom interfaces without 296 # is so that mojo/public/cpp/bindings can depend on mojom interfaces without
234 # circular dependencies. It means that the target is missing the dependency 297 # circular dependencies. It means that the target is missing the dependency
235 # on mojo/public/cpp/bindings. No external targets should depend directly on 298 # on mojo/public/cpp/bindings. No external targets should depend directly on
236 # this target *except* mojo/public/cpp/bindings and other *_cpp_sources 299 # this target *except* mojo/public/cpp/bindings and other *_cpp_sources
237 # targets. 300 # targets.
238 source_set(cpp_sources_target_name) { 301 source_set(cpp_sources_target_name) {
239 if (defined(invoker.testonly)) { 302 if (defined(invoker.testonly)) {
240 testonly = invoker.testonly 303 testonly = invoker.testonly
241 } 304 }
242 sources = process_file_template(invoker.sources, generator_cpp_outputs) 305 if (enabled_sources != []) {
306 sources = process_file_template(enabled_sources, generator_cpp_outputs)
307 }
243 deps = [ 308 deps = [
244 ":$generator_target_name", 309 "//mojo/public/cpp/bindings:struct_traits",
245 "//mojo/public/interfaces/bindings:bindings__generator", 310 "//mojo/public/interfaces/bindings:bindings__generator",
246 ] 311 ]
312 if (enabled_sources != []) {
313 deps += [ ":$generator_target_name" ]
314 }
247 public_deps = [ 315 public_deps = [
248 "//base", 316 "//base",
249 ] 317 ]
250 if (defined(invoker.typemap_deps)) {
251 public_deps += invoker.typemap_deps
252 }
253 foreach(d, all_deps) { 318 foreach(d, all_deps) {
254 # Resolve the name, so that a target //mojo/something becomes 319 # Resolve the name, so that a target //mojo/something becomes
255 # //mojo/something:something and we can append cpp_sources_suffix to 320 # //mojo/something:something and we can append cpp_sources_suffix to
256 # get the cpp dependency name. 321 # get the cpp dependency name.
257 full_name = get_label_info(d, "label_no_toolchain") 322 full_name = get_label_info("$d", "label_no_toolchain")
258 deps += [ "${full_name}_${cpp_sources_suffix}" ] 323 deps += [ "${full_name}${variant_suffix}_${cpp_sources_suffix}" ]
259 } 324 }
260 if (defined(invoker.for_blink) && invoker.for_blink) { 325 foreach(typemap, active_typemaps) {
326 if (defined(typemap.public_headers)) {
327 sources += typemap.public_headers
328 }
329 if (defined(typemap.traits_headers)) {
330 sources += typemap.traits_headers
331 }
332 if (defined(typemap.sources)) {
333 sources += typemap.sources
334 }
335 if (defined(typemap.deps)) {
336 deps += typemap.deps
337 }
338 }
339 if (defined(bindings_configuration.for_blink) &&
340 bindings_configuration.for_blink) {
261 public_deps += [ "//mojo/public/cpp/bindings:wtf_support" ] 341 public_deps += [ "//mojo/public/cpp/bindings:wtf_support" ]
262 } 342 }
263 } 343 }
264 }
265 344
266 if (is_android && !cpp_only) { 345 if (!cpp_only && is_android) {
267 import("//build/config/android/rules.gni") 346 import("//build/config/android/rules.gni")
268 347
269 java_srcjar_target_name = target_name + "_java_sources" 348 java_srcjar_target_name = target_name + "_java_sources"
270 action(java_srcjar_target_name) { 349 action(java_srcjar_target_name) {
271 script = "//mojo/public/tools/gn/zip.py" 350 script = "//mojo/public/tools/gn/zip.py"
272 inputs = process_file_template(invoker.sources, generator_java_outputs) 351 inputs = []
273 output = "$target_gen_dir/$target_name.srcjar" 352 if (enabled_sources != []) {
274 outputs = [ 353 inputs =
275 output, 354 process_file_template(enabled_sources, generator_java_outputs)
276 ] 355 }
277 rebase_inputs = rebase_path(inputs, root_build_dir) 356 output = "$target_gen_dir/$target_name.srcjar"
278 rebase_output = rebase_path(output, root_build_dir) 357 outputs = [
279 args = [ 358 output,
280 "--zip-inputs=$rebase_inputs", 359 ]
281 "--output=$rebase_output", 360 rebase_inputs = rebase_path(inputs, root_build_dir)
282 ] 361 rebase_output = rebase_path(output, root_build_dir)
283 deps = [ 362 args = [
284 ":$generator_target_name", 363 "--zip-inputs=$rebase_inputs",
285 ] 364 "--output=$rebase_output",
286 } 365 ]
287 366 deps = []
288 java_target_name = target_name + "_java" 367 if (enabled_sources != []) {
289 android_library(java_target_name) { 368 deps = [
290 deps = [ 369 ":$generator_target_name",
291 "//base:base_java", 370 ]
292 "//mojo/public/java:bindings", 371 }
293 "//mojo/public/java:system",
294 ]
295
296 foreach(d, all_deps) {
297 # Resolve the name, so that a target //mojo/something becomes
298 # //mojo/something:something and we can append "_java" to get the java
299 # dependency name.
300 full_name = get_label_info(d, "label_no_toolchain")
301 deps += [ "${full_name}_java" ]
302 } 372 }
303 373
304 srcjar_deps = [ ":$java_srcjar_target_name" ] 374 java_target_name = target_name + "_java"
375 android_library(java_target_name) {
376 deps = [
377 "//base:base_java",
378 "//mojo/public/java:bindings",
379 "//mojo/public/java:system",
380 ]
381
382 foreach(d, all_deps) {
383 # Resolve the name, so that a target //mojo/something becomes
384 # //mojo/something:something and we can append "_java" to get the java
385 # dependency name.
386 full_name = get_label_info(d, "label_no_toolchain")
387 deps += [ "${full_name}_java" ]
388 }
389
390 srcjar_deps = [ ":$java_srcjar_target_name" ]
391 }
305 } 392 }
306 } 393 }
307 } 394 }
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/generate_type_mappings.py ('k') | mojo/public/tools/bindings/mojom_get_generator_typemap_args.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698