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

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

Issue 2250183003: Make the fuchsia mojo/public repo the source of truth. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 4 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
(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 # TODO(vardhan): Targets for each language bindings depend on a central
6 # generator target which generates bindings for /every/ language. Create
7 # separate generator targets for each language.
8
9 import("../../mojo_sdk.gni")
10
11 # Generate C++/JavaScript/Java/Python/Dart/Go source files from mojom files. The
12 # output files will go under the generated file directory tree with the same
13 # path as each input file.
14 #
15 # If a mojom target is intended for use in a client repo where the location of
16 # the Mojo SDK will be different than its location in the Mojo repo,
17 # dependencies on the SDK should be specified relative to the parent directory
18 # of the Mojo public SDK in |mojo_sdk_deps| rather than via absolute paths in
19 # |deps|.
20 #
21 # Parameters:
22 #
23 # sources (optional if one of the deps sets listed below is present)
24 # List of source .mojom files to compile.
25 #
26 # deps (optional)
27 # Note: this can contain only other mojom targets.
28 #
29 # mojo_sdk_deps (optional)
30 # List of deps specified relative to the parent directory of the Mojo
31 # public SDK. These deps will be added as ordinary deps rebased to the
32 # current directory.
33 #
34 # public_deps (optional)
35 # Note: this can contain only other mojom targets.
36 #
37 # mojo_sdk_public_deps (optional)
38 # List of public deps specified relative to the parent directory of the
39 # Mojo public SDK. These deps will be added as ordinary public deps
40 # rebased to the current directory.
41 #
42 # import_dirs (optional)
43 # List of import directories that will get added when processing sources.
44 #
45 # testonly (optional)
46 #
47 # visibility (optional)
48 template("mojom") {
49 assert(
50 defined(invoker.sources) || defined(invoker.deps) ||
51 defined(invoker.public_deps) || defined(invoker.mojo_sdk_deps) ||
52 defined(invoker.mojo_sdk_public_deps),
53 "\"sources\" or \"deps\" must be defined for the $target_name template.")
54
55 cpp_sources_suffix = "cpp_sources"
56 cpp_sources_target_name = "${target_name}_${cpp_sources_suffix}"
57 cpp_sync_sources_target_name = "${target_name}_${cpp_sources_suffix}_sync"
58
59 if (defined(invoker.sources)) {
60 generator_root = rebase_path("mojo/public/tools/bindings", ".", mojo_root)
61 mojom_tool = "$generator_root/mojom_tool.py"
62
63 # The |generator_host_platform| string is used to determine the subdirectory
64 # where our mojom and generator binaries live.
65 generator_host_platform = host_os
66 if (host_cpu == "x64") {
67 generator_host_platform += "64"
68 } else if (host_cpu == "x86") {
69 generator_host_platform += "32"
70 }
71 generator_sources = [
72 mojom_tool,
73 "$generator_root/run_code_generators.py",
74 "$generator_root/generators/cpp_templates/enum_macros.tmpl",
75 "$generator_root/generators/cpp_templates/interface_declaration.tmpl",
76 "$generator_root/generators/cpp_templates/interface_definition.tmpl",
77 "$generator_root/generators/cpp_templates/interface_macros.tmpl",
78 "$generator_root/generators/cpp_templates/interface_proxy_declaration.tmpl ",
79 "$generator_root/generators/cpp_templates/interface_request_validator_decl aration.tmpl",
80 "$generator_root/generators/cpp_templates/interface_response_validator_dec laration.tmpl",
81 "$generator_root/generators/cpp_templates/interface_stub_declaration.tmpl" ,
82 "$generator_root/generators/cpp_templates/module-common.cc.tmpl",
83 "$generator_root/generators/cpp_templates/module-common.h.tmpl",
84 "$generator_root/generators/cpp_templates/module-internal.h.tmpl",
85 "$generator_root/generators/cpp_templates/module-sync.cc.tmpl",
86 "$generator_root/generators/cpp_templates/module-sync.h.tmpl",
87 "$generator_root/generators/cpp_templates/module.cc.tmpl",
88 "$generator_root/generators/cpp_templates/module.h.tmpl",
89 "$generator_root/generators/cpp_templates/struct_declaration.tmpl",
90 "$generator_root/generators/cpp_templates/struct_definition.tmpl",
91 "$generator_root/generators/cpp_templates/struct_macros.tmpl",
92 "$generator_root/generators/cpp_templates/struct_serialization_declaration .tmpl",
93 "$generator_root/generators/cpp_templates/struct_serialization_definition. tmpl",
94 "$generator_root/generators/cpp_templates/union_declaration.tmpl",
95 "$generator_root/generators/cpp_templates/union_definition.tmpl",
96 "$generator_root/generators/cpp_templates/union_serialization_declaration. tmpl",
97 "$generator_root/generators/cpp_templates/union_serialization_definition.t mpl",
98 "$generator_root/generators/cpp_templates/validation_macros.tmpl",
99 "$generator_root/generators/cpp_templates/wrapper_class_declaration.tmpl",
100 "$generator_root/generators/cpp_templates/wrapper_class_definition.tmpl",
101 "$generator_root/generators/cpp_templates/wrapper_union_class_declaration. tmpl",
102 "$generator_root/generators/cpp_templates/wrapper_union_class_definition.t mpl",
103 "$generator_root/generators/dart_templates/encoding_macros.tmpl",
104 "$generator_root/generators/dart_templates/enum_definition.tmpl",
105 "$generator_root/generators/dart_templates/interface_definition.tmpl",
106 "$generator_root/generators/dart_templates/module.lib.tmpl",
107 "$generator_root/generators/dart_templates/module_definition.tmpl",
108 "$generator_root/generators/dart_templates/struct_definition.tmpl",
109 "$generator_root/generators/dart_templates/union_definition.tmpl",
110 "$generator_root/generators/go_templates/encoding_macros.tmpl",
111 "$generator_root/generators/go_templates/enum.tmpl",
112 "$generator_root/generators/go_templates/interface.tmpl",
113 "$generator_root/generators/go_templates/source.tmpl",
114 "$generator_root/generators/go_templates/struct.tmpl",
115 "$generator_root/generators/go_templates/union.tmpl",
116 "$generator_root/generators/java_templates/constant_definition.tmpl",
117 "$generator_root/generators/java_templates/constants.java.tmpl",
118 "$generator_root/generators/java_templates/data_types_definition.tmpl",
119 "$generator_root/generators/java_templates/enum_definition.tmpl",
120 "$generator_root/generators/java_templates/enum.java.tmpl",
121 "$generator_root/generators/java_templates/header.java.tmpl",
122 "$generator_root/generators/java_templates/interface_definition.tmpl",
123 "$generator_root/generators/java_templates/interface_internal.java.tmpl",
124 "$generator_root/generators/java_templates/interface.java.tmpl",
125 "$generator_root/generators/java_templates/struct.java.tmpl",
126 "$generator_root/generators/java_templates/union.java.tmpl",
127 "$generator_root/generators/js_templates/enum_definition.tmpl",
128 "$generator_root/generators/js_templates/interface_definition.tmpl",
129 "$generator_root/generators/js_templates/module.amd.tmpl",
130 "$generator_root/generators/js_templates/module_definition.tmpl",
131 "$generator_root/generators/js_templates/struct_definition.tmpl",
132 "$generator_root/generators/js_templates/union_definition.tmpl",
133 "$generator_root/generators/js_templates/validation_macros.tmpl",
134 "$generator_root/generators/python_templates/module.py.tmpl",
135 "$generator_root/generators/python_templates/module_macros.tmpl",
136 "$generator_root/generators/mojom_cpp_generator.py",
137 "$generator_root/generators/mojom_dart_generator.py",
138 "$generator_root/generators/mojom_go_generator.py",
139 "$generator_root/generators/mojom_js_generator.py",
140 "$generator_root/generators/mojom_java_generator.py",
141 "$generator_root/generators/mojom_python_generator.py",
142 "$generator_root/mojom_tool/bin/${generator_host_platform}/mojom",
143 "$generator_root/mojom_tool/bin/${generator_host_platform}/generators/c",
144 "$generator_root/mojom_tool/bin/${generator_host_platform}/generators/go",
145 "$generator_root/pylib/mojom/__init__.py",
146 "$generator_root/pylib/mojom/error.py",
147 "$generator_root/pylib/mojom/generate/__init__.py",
148 "$generator_root/pylib/mojom/generate/constant_resolver.py",
149 "$generator_root/pylib/mojom/generate/generator.py",
150 "$generator_root/pylib/mojom/generate/module.py",
151 "$generator_root/pylib/mojom/generate/pack.py",
152 "$generator_root/pylib/mojom/generate/template_expander.py",
153 "$generator_root/pylib/mojom/parse/__init__.py",
154 "$generator_root/pylib/mojom/parse/parser_runner.py",
155 ]
156 generator_cpp_outputs = [
157 "{{source_gen_dir}}/{{source_name_part}}.mojom-common.cc",
158 "{{source_gen_dir}}/{{source_name_part}}.mojom-common.h",
159 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h",
160 "{{source_gen_dir}}/{{source_name_part}}.mojom-sync.cc",
161 "{{source_gen_dir}}/{{source_name_part}}.mojom-sync.h",
162 "{{source_gen_dir}}/{{source_name_part}}.mojom.h",
163 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc",
164 ]
165 generator_c_outputs = [
166 "{{source_gen_dir}}/{{source_name_part}}.mojom-c.c",
167 "{{source_gen_dir}}/{{source_name_part}}.mojom-c.h",
168 ]
169 generator_js_outputs =
170 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.js" ]
171 generator_dart_outputs =
172 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.dart" ]
173 generator_go_outputs = [ "${root_gen_dir}/go/src/{{source_dir}}/{{source_nam e_part}}/{{source_name_part}}.mojom.go" ]
174 generator_python_outputs =
175 [ "{{source_gen_dir}}/{{source_name_part}}_mojom.py" ]
176 generator_java_outputs =
177 [ "{{source_gen_dir}}/{{source_name_part}}.mojom.srcjar" ]
178 }
179 generator_python_zip_output = "$target_out_dir/${target_name}_python.pyzip"
180
181 rebased_mojo_sdk_public_deps = []
182 if (defined(invoker.mojo_sdk_public_deps)) {
183 foreach(sdk_dep, invoker.mojo_sdk_public_deps) {
184 # Check that the SDK dep was not mistakenly given as an absolute path.
185 assert(get_path_info(sdk_dep, "abspath") != sdk_dep)
186 rebased_mojo_sdk_public_deps += [ rebase_path(sdk_dep, ".", mojo_root) ]
187 }
188 }
189
190 rebased_mojo_sdk_deps = []
191 if (defined(invoker.mojo_sdk_deps)) {
192 foreach(sdk_dep, invoker.mojo_sdk_deps) {
193 # Check that the SDK dep was not mistakenly given as an absolute path.
194 assert(get_path_info(sdk_dep, "abspath") != sdk_dep)
195 rebased_mojo_sdk_deps += [ rebase_path(sdk_dep, ".", mojo_root) ]
196 }
197 }
198
199 if (defined(invoker.sources)) {
200 generator_target_name = target_name + "__generator"
201 action_foreach(generator_target_name) {
202 script = mojom_tool
203 inputs = generator_sources
204 if (defined(invoker.generate_type_info) && invoker.generate_type_info) {
205 deps = [
206 rebase_path("mojo/public/interfaces/bindings", ".", mojo_root),
207 ]
208 }
209 sources = invoker.sources
210 outputs =
211 generator_cpp_outputs + generator_dart_outputs +
212 generator_go_outputs + generator_java_outputs + generator_js_outputs +
213 generator_python_outputs + generator_c_outputs
214 args = [
215 "gen",
216 "--src-root-path",
217 rebase_path("//", root_build_dir),
218 "-I",
219 rebase_path("//", root_build_dir),
220 "-I",
221 rebase_path(mojo_root, root_build_dir),
222 "--output-dir",
223 rebase_path(root_gen_dir),
224 "--no-gen-imports",
225 "--generators",
226 "legacy,c,go",
227 ]
228
229 if (defined(invoker.generate_type_info) && invoker.generate_type_info) {
230 args += [
231 "--gen-arg",
232 "generate-type-info",
233 ]
234 }
235
236 if (defined(invoker.import_dirs)) {
237 foreach(import_dir, invoker.import_dirs) {
238 args += [
239 "-I",
240 rebase_path(import_dir, root_build_dir),
241 ]
242 }
243 }
244
245 args += [ "{{source}}" ]
246 }
247 }
248
249 # Some re-usable variables for the C++ source sets:
250 cpp_public_deps = rebased_mojo_sdk_public_deps
251 if (defined(invoker.public_deps)) {
252 cpp_public_deps += invoker.public_deps
253 }
254 if (defined(invoker.sources)) {
255 cpp_public_deps += [ ":$generator_target_name" ]
256 }
257 cpp_deps = rebased_mojo_sdk_deps
258 if (defined(invoker.deps)) {
259 cpp_deps += invoker.deps
260 }
261 if (defined(invoker.mojo_sdk_deps)) {
262 foreach(sdk_dep, invoker.mojo_sdk_deps) {
263 # Check that the SDK dep was not mistakenly given as an absolute path.
264 assert(get_path_info(sdk_dep, "abspath") != sdk_dep)
265 cpp_deps += [ rebase_path(sdk_dep, ".", mojo_root) ]
266 }
267 }
268
269 source_set(target_name) {
270 if (defined(invoker.visibility)) {
271 visibility = invoker.visibility
272 }
273 if (defined(invoker.testonly)) {
274 testonly = invoker.testonly
275 }
276
277 public_configs =
278 rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
279
280 public_deps =
281 rebase_path([ "mojo/public/cpp/bindings:core" ], ".", mojo_root)
282 public_deps += cpp_public_deps
283 if (defined(invoker.sources)) {
284 public_deps += [ ":${cpp_sources_target_name}" ]
285 data = process_file_template(invoker.sources, generator_js_outputs)
286 }
287
288 deps = cpp_deps
289 }
290
291 # This target is used to generate and build the C mojom bindings.
292 source_set("${target_name}_c") {
293 if (defined(invoker.visibility)) {
294 visibility = invoker.visibility
295 }
296 if (defined(invoker.testonly)) {
297 testonly = invoker.testonly
298 }
299
300 public_configs =
301 rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
302
303 public_deps = rebase_path([ "mojo/public/c:bindings" ], ".", mojo_root)
304 deps = []
305 c_public_deps = []
306 c_deps = []
307
308 # Bring in |invoker.public_deps| and |invoker.deps|.
309 if (defined(invoker.public_deps)) {
310 c_public_deps += invoker.public_deps
311 }
312 if (defined(invoker.deps)) {
313 c_deps += invoker.deps
314 }
315
316 foreach(d, c_public_deps + rebased_mojo_sdk_public_deps) {
317 # Resolve the name, so that a target //mojo/something becomes
318 # //mojo/something:something and we can append "_c" to get the C
319 # dependency name.
320 full_name = get_label_info(d, "label_no_toolchain")
321 public_deps += [ "${full_name}_c" ]
322 }
323 foreach(d, c_deps + rebased_mojo_sdk_deps) {
324 full_name = get_label_info(d, "label_no_toolchain")
325 deps += [ "${full_name}_c" ]
326 }
327
328 if (defined(invoker.sources)) {
329 deps += [ ":$generator_target_name" ]
330 sources = process_file_template(
331 invoker.sources,
332 [
333 "{{source_gen_dir}}/{{source_name_part}}.mojom-c.c",
334 "{{source_gen_dir}}/{{source_name_part}}.mojom-c.h",
335 ])
336 }
337 }
338
339 source_set("${target_name}_sync") {
340 if (defined(invoker.visibility)) {
341 visibility = invoker.visibility
342 }
343 if (defined(invoker.testonly)) {
344 testonly = invoker.testonly
345 }
346
347 public_configs =
348 rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
349
350 public_deps = rebase_path([ "mojo/public/cpp/bindings" ], ".", mojo_root)
351 public_deps += cpp_public_deps
352 if (defined(invoker.sources)) {
353 public_deps += [ ":${cpp_sync_sources_target_name}" ]
354 data = process_file_template(invoker.sources, generator_js_outputs)
355 }
356
357 deps = cpp_deps
358 }
359
360 source_set("${target_name}_data_only") {
361 if (defined(invoker.visibility)) {
362 visibility = invoker.visibility
363 }
364 if (defined(invoker.testonly)) {
365 testonly = invoker.testonly
366 }
367
368 public_configs =
369 rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
370
371 public_deps = rebase_path([ "mojo/public/cpp/bindings:serialization" ],
372 ".",
373 mojo_root)
374 public_deps += cpp_public_deps
375 if (defined(invoker.sources)) {
376 public_deps += [ ":${cpp_sources_target_name}" ]
377 data = process_file_template(invoker.sources, generator_js_outputs)
378 }
379 deps = cpp_deps
380 }
381
382 all_deps = rebased_mojo_sdk_deps + rebased_mojo_sdk_public_deps
383 if (defined(invoker.deps)) {
384 all_deps += invoker.deps
385 }
386 if (defined(invoker.public_deps)) {
387 all_deps += invoker.public_deps
388 }
389
390 group("${target_name}__is_mojom") {
391 }
392
393 # Explicitly ensure that all dependencies (invoker.deps and
394 # invoker.public_deps) are mojom targets themselves.
395 group("${target_name}__check_deps_are_all_mojom") {
396 deps = []
397 foreach(d, all_deps) {
398 name = get_label_info(d, "label_no_toolchain")
399 toolchain = get_label_info(d, "toolchain")
400 deps += [ "${name}__is_mojom(${toolchain})" ]
401 }
402 }
403
404 action("${target_name}_python") {
405 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root)
406
407 deps = []
408 zip_inputs = []
409
410 if (defined(invoker.sources)) {
411 inputs = process_file_template(invoker.sources, generator_python_outputs)
412 deps += [ ":$generator_target_name" ]
413 }
414
415 foreach(d, all_deps) {
416 # Resolve the name, so that a target //mojo/something becomes
417 # //mojo/something:something and we can append "_python" to get the python
418 # dependency name.
419 full_name = get_label_info(d, "label_no_toolchain")
420 dep_name = get_label_info(d, "name")
421 dep_target_out_dir = get_label_info(d, "target_out_dir")
422 deps += [ "${full_name}_python" ]
423 zip_inputs += [ "$dep_target_out_dir/${dep_name}_python.pyzip" ]
424 }
425
426 output = generator_python_zip_output
427 outputs = [
428 output,
429 ]
430
431 rebase_base_dir = rebase_path(target_gen_dir, root_build_dir)
432 if (defined(invoker.sources)) {
433 rebase_inputs = rebase_path(inputs, root_build_dir)
434 }
435 rebase_zip_inputs = rebase_path(zip_inputs, root_build_dir)
436 rebase_output = rebase_path(output, root_build_dir)
437 args = [
438 "--base-dir=$rebase_base_dir",
439 "--zip-inputs=$rebase_zip_inputs",
440 "--output=$rebase_output",
441 ]
442 if (defined(invoker.sources)) {
443 args += [ "--inputs=$rebase_inputs" ]
444 }
445 }
446
447 if (defined(invoker.sources)) {
448 # The generated C++ source files. The main reason to introduce this target
449 # is so that mojo/public/cpp/bindings can depend on mojom interfaces without
450 # circular dependencies. It means that the target is missing the dependency
451 # on mojo/public/cpp/bindings. No external targets should depend directly on
452 # this target *except* mojo/public/cpp/bindings and other *_cpp_sources
453 # targets.
454
455 source_set(cpp_sources_target_name + "__common") {
456 if (defined(invoker.testonly)) {
457 testonly = invoker.testonly
458 }
459 sources = process_file_template(
460 invoker.sources,
461 [
462 "{{source_gen_dir}}/{{source_name_part}}.mojom-common.cc",
463 "{{source_gen_dir}}/{{source_name_part}}.mojom-common.h",
464 "{{source_gen_dir}}/{{source_name_part}}.mojom-internal.h",
465 ])
466 public_configs =
467 rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
468 deps = [
469 ":$generator_target_name",
470 rebase_path("mojo/public/interfaces/bindings:bindings__generator",
471 ".",
472 mojo_root),
473 ]
474 foreach(d, all_deps) {
475 # Resolve the name, so that a target //mojo/something becomes
476 # //mojo/something:something and we can append cpp_sources_suffix to
477 # get the cpp dependency name.
478 full_name = get_label_info(d, "label_no_toolchain")
479 deps += [ "${full_name}_${cpp_sources_suffix}" ]
480 }
481 }
482
483 source_set(cpp_sources_target_name) {
484 if (defined(invoker.testonly)) {
485 testonly = invoker.testonly
486 }
487 sources = process_file_template(
488 invoker.sources,
489 [
490 "{{source_gen_dir}}/{{source_name_part}}.mojom.h",
491 "{{source_gen_dir}}/{{source_name_part}}.mojom.cc",
492 ])
493 public_configs =
494 rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
495 deps = [
496 ":$generator_target_name",
497 ":${cpp_sources_target_name}__common",
498 rebase_path("mojo/public/interfaces/bindings:bindings__generator",
499 ".",
500 mojo_root),
501 ]
502 foreach(d, all_deps) {
503 # Resolve the name, so that a target //mojo/something becomes
504 # //mojo/something:something and we can append cpp_sources_suffix to
505 # get the cpp dependency name.
506 full_name = get_label_info(d, "label_no_toolchain")
507 deps += [ "${full_name}_${cpp_sources_suffix}" ]
508 }
509 }
510
511 source_set(cpp_sync_sources_target_name) {
512 if (defined(invoker.testonly)) {
513 testonly = invoker.testonly
514 }
515 sources = process_file_template(
516 invoker.sources,
517 [
518 "{{source_gen_dir}}/{{source_name_part}}.mojom-sync.cc",
519 "{{source_gen_dir}}/{{source_name_part}}.mojom-sync.h",
520 ])
521 public_configs =
522 rebase_path([ "mojo/public/build/config:mojo_sdk" ], ".", mojo_root)
523 deps = [
524 ":$generator_target_name",
525 ":${cpp_sources_target_name}__common",
526 rebase_path("mojo/public/interfaces/bindings:bindings__generator",
527 ".",
528 mojo_root),
529 ]
530 foreach(d, all_deps) {
531 # Resolve the name, so that a target //mojo/something becomes
532 # //mojo/something:something and we can append cpp_sources_suffix to
533 # get the cpp dependency name.
534 full_name = get_label_info(d, "label_no_toolchain")
535 deps += [ "${full_name}_${cpp_sources_suffix}" ]
536 }
537 }
538 }
539
540 if (is_android) {
541 import("//build/config/android/rules.gni")
542
543 java_srcjar_target_name = target_name + "_java_sources"
544 action(java_srcjar_target_name) {
545 script = rebase_path("mojo/public/tools/gn/zip.py", ".", mojo_root)
546 inputs = process_file_template(invoker.sources, generator_java_outputs)
547 output = "$target_gen_dir/$target_name.srcjar"
548 outputs = [
549 output,
550 ]
551 rebase_inputs = rebase_path(inputs, root_build_dir)
552 rebase_output = rebase_path(output, root_build_dir)
553 args = [
554 "--zip-inputs=$rebase_inputs",
555 "--output=$rebase_output",
556 ]
557 deps = [
558 ":$generator_target_name",
559 ]
560 }
561
562 java_target_name = target_name + "_java"
563 android_library(java_target_name) {
564 deps = rebase_path([
565 "mojo/public/java:bindings",
566 "mojo/public/java:system",
567 ],
568 ".",
569 mojo_root)
570
571 foreach(d, all_deps) {
572 # Resolve the name, so that a target //mojo/something becomes
573 # //mojo/something:something and we can append "_java" to get the java
574 # dependency name.
575 full_name = get_label_info(d, "label_no_toolchain")
576 deps += [ "${full_name}_java" ]
577 }
578
579 srcjar_deps = [ ":$java_srcjar_target_name" ]
580 }
581 }
582 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698