OLD | NEW |
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 import("//base/android/linker/config.gni") | 5 import("//base/android/linker/config.gni") |
6 import("//build/config/android/config.gni") | 6 import("//build/config/android/config.gni") |
7 import("//build/config/android/internal_rules.gni") | 7 import("//build/config/android/internal_rules.gni") |
8 import("//build/toolchain/toolchain.gni") | 8 import("//build/toolchain/toolchain.gni") |
9 import("//third_party/android_platform/config.gni") | 9 import("//third_party/android_platform/config.gni") |
10 import("//tools/grit/grit_rule.gni") | 10 import("//tools/grit/grit_rule.gni") |
(...skipping 14 matching lines...) Expand all Loading... |
25 # Example | 25 # Example |
26 # generate_jni("foo_jni") { | 26 # generate_jni("foo_jni") { |
27 # sources = [ | 27 # sources = [ |
28 # "android/java/src/org/chromium/foo/Foo.java", | 28 # "android/java/src/org/chromium/foo/Foo.java", |
29 # "android/java/src/org/chromium/foo/FooUtil.java", | 29 # "android/java/src/org/chromium/foo/FooUtil.java", |
30 # ] | 30 # ] |
31 # jni_package = "foo" | 31 # jni_package = "foo" |
32 # } | 32 # } |
33 template("generate_jni") { | 33 template("generate_jni") { |
34 set_sources_assignment_filter([]) | 34 set_sources_assignment_filter([]) |
35 if (defined(invoker.testonly)) { | 35 forward_variables_from(invoker, [ "testonly" ]) |
36 testonly = invoker.testonly | |
37 } | |
38 | 36 |
39 assert(defined(invoker.sources)) | 37 assert(defined(invoker.sources)) |
40 assert(defined(invoker.jni_package)) | 38 assert(defined(invoker.jni_package)) |
41 jni_package = invoker.jni_package | 39 jni_package = invoker.jni_package |
42 base_output_dir = "${target_gen_dir}/${target_name}" | 40 base_output_dir = "${target_gen_dir}/${target_name}" |
43 package_output_dir = "${base_output_dir}/${jni_package}" | 41 package_output_dir = "${base_output_dir}/${jni_package}" |
44 jni_output_dir = "${package_output_dir}/jni" | 42 jni_output_dir = "${package_output_dir}/jni" |
45 | 43 |
46 jni_generator_include = "//base/android/jni_generator/jni_generator_helper.h" | 44 jni_generator_include = "//base/android/jni_generator/jni_generator_helper.h" |
47 | 45 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 # TODO(cjhopman): #includes should probably all be relative to | 77 # TODO(cjhopman): #includes should probably all be relative to |
80 # base_output_dir. Remove that from this config once the includes are | 78 # base_output_dir. Remove that from this config once the includes are |
81 # updated. | 79 # updated. |
82 include_dirs = [ | 80 include_dirs = [ |
83 base_output_dir, | 81 base_output_dir, |
84 package_output_dir, | 82 package_output_dir, |
85 ] | 83 ] |
86 } | 84 } |
87 | 85 |
88 group(target_name) { | 86 group(target_name) { |
89 deps = [ | 87 deps = [] |
90 ":$foreach_target_name", | 88 forward_variables_from(invoker, |
91 ] | 89 [ |
| 90 "deps", |
| 91 "public_deps", |
| 92 "visibility", |
| 93 ]) |
| 94 deps += [ ":$foreach_target_name" ] |
92 public_configs = [ ":jni_includes_${target_name}" ] | 95 public_configs = [ ":jni_includes_${target_name}" ] |
93 | |
94 if (defined(invoker.deps)) { | |
95 deps += invoker.deps | |
96 } | |
97 if (defined(invoker.public_deps)) { | |
98 public_deps = invoker.public_deps | |
99 } | |
100 | |
101 if (defined(invoker.visibility)) { | |
102 visibility = invoker.visibility | |
103 } | |
104 } | 96 } |
105 } | 97 } |
106 | 98 |
107 # Declare a jni target for a prebuilt jar | 99 # Declare a jni target for a prebuilt jar |
108 # | 100 # |
109 # This target generates the native jni bindings for a set of classes in a .jar. | 101 # This target generates the native jni bindings for a set of classes in a .jar. |
110 # | 102 # |
111 # See base/android/jni_generator/jni_generator.py for more info about the | 103 # See base/android/jni_generator/jni_generator.py for more info about the |
112 # format of generating JNI bindings. | 104 # format of generating JNI bindings. |
113 # | 105 # |
114 # Variables | 106 # Variables |
115 # classes: list of .class files in the jar to generate jni for. These should | 107 # classes: list of .class files in the jar to generate jni for. These should |
116 # include the full path to the .class file. | 108 # include the full path to the .class file. |
117 # jni_package: subdirectory path for generated bindings | 109 # jni_package: subdirectory path for generated bindings |
118 # jar_file: the path to the .jar. If not provided, will default to the sdk's | 110 # jar_file: the path to the .jar. If not provided, will default to the sdk's |
119 # android.jar | 111 # android.jar |
120 # | 112 # |
121 # deps, public_deps: As normal | 113 # deps, public_deps: As normal |
122 # | 114 # |
123 # Example | 115 # Example |
124 # generate_jar_jni("foo_jni") { | 116 # generate_jar_jni("foo_jni") { |
125 # classes = [ | 117 # classes = [ |
126 # "android/view/Foo.class", | 118 # "android/view/Foo.class", |
127 # ] | 119 # ] |
128 # jni_package = "foo" | 120 # jni_package = "foo" |
129 # } | 121 # } |
130 template("generate_jar_jni") { | 122 template("generate_jar_jni") { |
131 set_sources_assignment_filter([]) | 123 set_sources_assignment_filter([]) |
132 if (defined(invoker.testonly)) { | 124 forward_variables_from(invoker, [ "testonly" ]) |
133 testonly = invoker.testonly | |
134 } | |
135 | 125 |
136 assert(defined(invoker.classes)) | 126 assert(defined(invoker.classes)) |
137 assert(defined(invoker.jni_package)) | 127 assert(defined(invoker.jni_package)) |
138 | 128 |
139 if (defined(invoker.jar_file)) { | 129 if (defined(invoker.jar_file)) { |
140 jar_file = invoker.jar_file | 130 jar_file = invoker.jar_file |
141 } else { | 131 } else { |
142 jar_file = android_sdk_jar | 132 jar_file = android_sdk_jar |
143 } | 133 } |
144 | 134 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 "--native_exports_optional", | 176 "--native_exports_optional", |
187 ] | 177 ] |
188 } | 178 } |
189 } | 179 } |
190 | 180 |
191 config("jni_includes_${target_name}") { | 181 config("jni_includes_${target_name}") { |
192 include_dirs = [ base_output_dir ] | 182 include_dirs = [ base_output_dir ] |
193 } | 183 } |
194 | 184 |
195 group(target_name) { | 185 group(target_name) { |
196 deps = jni_actions | 186 deps = [] |
197 if (defined(invoker.deps)) { | 187 forward_variables_from(invoker, |
198 deps += invoker.deps | 188 [ |
199 } | 189 "deps", |
200 if (defined(invoker.public_deps)) { | 190 "public_deps", |
201 public_deps = invoker.public_deps | 191 "visibility", |
202 } | 192 ]) |
| 193 deps += jni_actions |
203 public_configs = [ ":jni_includes_${target_name}" ] | 194 public_configs = [ ":jni_includes_${target_name}" ] |
204 } | 195 } |
205 } | 196 } |
206 | 197 |
207 # Declare a target for c-preprocessor-generated java files | 198 # Declare a target for c-preprocessor-generated java files |
208 # | 199 # |
209 # NOTE: For generating Java conterparts to enums prefer using the java_cpp_enum | 200 # NOTE: For generating Java conterparts to enums prefer using the java_cpp_enum |
210 # rule instead. | 201 # rule instead. |
211 # | 202 # |
212 # This target generates java files using the host C pre-processor. Each file in | 203 # This target generates java files using the host C pre-processor. Each file in |
(...skipping 21 matching lines...) Expand all Loading... |
234 # ] | 225 # ] |
235 # inputs = [ | 226 # inputs = [ |
236 # "android/java/templates/native_foo_header.h", | 227 # "android/java/templates/native_foo_header.h", |
237 # ] | 228 # ] |
238 # | 229 # |
239 # package_name = "org/chromium/base/library_loader" | 230 # package_name = "org/chromium/base/library_loader" |
240 # include_path = "android/java/templates" | 231 # include_path = "android/java/templates" |
241 # } | 232 # } |
242 template("java_cpp_template") { | 233 template("java_cpp_template") { |
243 set_sources_assignment_filter([]) | 234 set_sources_assignment_filter([]) |
244 if (defined(invoker.testonly)) { | 235 forward_variables_from(invoker, [ "testonly" ]) |
245 testonly = invoker.testonly | |
246 } | |
247 | 236 |
248 assert(defined(invoker.sources)) | 237 assert(defined(invoker.sources)) |
249 package_name = invoker.package_name + "" | 238 package_name = invoker.package_name + "" |
250 | 239 |
251 if (defined(invoker.include_path)) { | 240 if (defined(invoker.include_path)) { |
252 include_path = invoker.include_path + "" | 241 include_path = invoker.include_path + "" |
253 } else { | 242 } else { |
254 include_path = "//" | 243 include_path = "//" |
255 } | 244 } |
256 | 245 |
257 apply_gcc_target_name = "${target_name}__apply_gcc" | 246 apply_gcc_target_name = "${target_name}__apply_gcc" |
258 zip_srcjar_target_name = "${target_name}__zip_srcjar" | 247 zip_srcjar_target_name = "${target_name}__zip_srcjar" |
259 final_target_name = target_name | 248 final_target_name = target_name |
260 | 249 |
261 action_foreach(apply_gcc_target_name) { | 250 action_foreach(apply_gcc_target_name) { |
| 251 forward_variables_from(invoker, |
| 252 [ |
| 253 "deps", |
| 254 "public_deps", |
| 255 "data_deps", |
| 256 ]) |
262 visibility = [ ":$zip_srcjar_target_name" ] | 257 visibility = [ ":$zip_srcjar_target_name" ] |
263 script = "//build/android/gyp/gcc_preprocess.py" | 258 script = "//build/android/gyp/gcc_preprocess.py" |
264 if (defined(invoker.inputs)) { | 259 if (defined(invoker.inputs)) { |
265 inputs = invoker.inputs + [] | 260 inputs = invoker.inputs + [] |
266 } | 261 } |
267 depfile = "${target_gen_dir}/${target_name}_{{source_name_part}}.d" | 262 depfile = "${target_gen_dir}/${target_name}_{{source_name_part}}.d" |
268 | 263 |
269 sources = invoker.sources | 264 sources = invoker.sources |
270 | 265 |
271 if (defined(invoker.deps)) { | |
272 deps = invoker.deps | |
273 } | |
274 if (defined(invoker.public_deps)) { | |
275 public_deps = invoker.public_deps | |
276 } | |
277 if (defined(invoker.data_deps)) { | |
278 data_deps = invoker.data_deps | |
279 } | |
280 | |
281 gen_dir = | 266 gen_dir = |
282 "${target_gen_dir}/${target_name}/java_cpp_template/${package_name}" | 267 "${target_gen_dir}/${target_name}/java_cpp_template/${package_name}" |
283 gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java" | 268 gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java" |
284 | 269 |
285 outputs = [ | 270 outputs = [ |
286 depfile, | 271 depfile, |
287 gcc_template_output_pattern, | 272 gcc_template_output_pattern, |
288 ] | 273 ] |
289 | 274 |
290 args = [ | 275 args = [ |
(...skipping 24 matching lines...) Expand all Loading... |
315 visibility = [ ":$final_target_name" ] | 300 visibility = [ ":$final_target_name" ] |
316 inputs = apply_gcc_outputs | 301 inputs = apply_gcc_outputs |
317 output = srcjar_path | 302 output = srcjar_path |
318 base_dir = base_gen_dir | 303 base_dir = base_gen_dir |
319 deps = [ | 304 deps = [ |
320 ":$apply_gcc_target_name", | 305 ":$apply_gcc_target_name", |
321 ] | 306 ] |
322 } | 307 } |
323 | 308 |
324 group(final_target_name) { | 309 group(final_target_name) { |
325 if (defined(invoker.visibility)) { | 310 forward_variables_from(invoker, [ "visibility" ]) |
326 visibility = invoker.visibility | |
327 } | |
328 deps = [ | 311 deps = [ |
329 ":$zip_srcjar_target_name", | 312 ":$zip_srcjar_target_name", |
330 ] | 313 ] |
331 } | 314 } |
332 } | 315 } |
333 | 316 |
334 # Declare a target for generating Java classes from C++ enums. | 317 # Declare a target for generating Java classes from C++ enums. |
335 # | 318 # |
336 # This target generates Java files from C++ enums using a script. | 319 # This target generates Java files from C++ enums using a script. |
337 # | 320 # |
(...skipping 15 matching lines...) Expand all Loading... |
353 # java_cpp_enum("foo_generated_enum") { | 336 # java_cpp_enum("foo_generated_enum") { |
354 # sources = [ | 337 # sources = [ |
355 # "src/native_foo_header.h", | 338 # "src/native_foo_header.h", |
356 # ] | 339 # ] |
357 # outputs = [ | 340 # outputs = [ |
358 # "org/chromium/FooEnum.java", | 341 # "org/chromium/FooEnum.java", |
359 # ] | 342 # ] |
360 # } | 343 # } |
361 template("java_cpp_enum") { | 344 template("java_cpp_enum") { |
362 set_sources_assignment_filter([]) | 345 set_sources_assignment_filter([]) |
363 if (defined(invoker.testonly)) { | 346 forward_variables_from(invoker, [ "testonly" ]) |
364 testonly = invoker.testonly | |
365 } | |
366 | 347 |
367 assert(defined(invoker.sources)) | 348 assert(defined(invoker.sources)) |
368 assert(defined(invoker.outputs)) | 349 assert(defined(invoker.outputs)) |
369 | 350 |
370 generate_enum_target_name = "${target_name}__generate_enum" | 351 generate_enum_target_name = "${target_name}__generate_enum" |
371 zip_srcjar_target_name = "${target_name}__zip_srcjar" | 352 zip_srcjar_target_name = "${target_name}__zip_srcjar" |
372 final_target_name = target_name | 353 final_target_name = target_name |
373 | 354 |
374 action(generate_enum_target_name) { | 355 action(generate_enum_target_name) { |
375 visibility = [ ":$zip_srcjar_target_name" ] | 356 visibility = [ ":$zip_srcjar_target_name" ] |
(...skipping 26 matching lines...) Expand all Loading... |
402 visibility = [ ":$final_target_name" ] | 383 visibility = [ ":$final_target_name" ] |
403 inputs = generate_enum_outputs | 384 inputs = generate_enum_outputs |
404 output = srcjar_path | 385 output = srcjar_path |
405 base_dir = base_gen_dir | 386 base_dir = base_gen_dir |
406 deps = [ | 387 deps = [ |
407 ":$generate_enum_target_name", | 388 ":$generate_enum_target_name", |
408 ] | 389 ] |
409 } | 390 } |
410 | 391 |
411 group(final_target_name) { | 392 group(final_target_name) { |
412 if (defined(invoker.visibility)) { | 393 forward_variables_from(invoker, [ "visibility" ]) |
413 visibility = invoker.visibility | |
414 } | |
415 deps = [ | 394 deps = [ |
416 ":$zip_srcjar_target_name", | 395 ":$zip_srcjar_target_name", |
417 ] | 396 ] |
418 } | 397 } |
419 } | 398 } |
420 | 399 |
421 # Declare a target for processing a Jinja template. | 400 # Declare a target for processing a Jinja template. |
422 # | 401 # |
423 # Variables | 402 # Variables |
424 # input: The template file to be processed. | 403 # input: The template file to be processed. |
425 # output: Where to save the result. | 404 # output: Where to save the result. |
426 # variables: (Optional) A list of variables to make available to the template | 405 # variables: (Optional) A list of variables to make available to the template |
427 # processing environment, e.g. ["name=foo", "color=red"]. | 406 # processing environment, e.g. ["name=foo", "color=red"]. |
428 # | 407 # |
429 # Example | 408 # Example |
430 # jinja_template("chrome_shell_manifest") { | 409 # jinja_template("chrome_shell_manifest") { |
431 # input = "shell/java/AndroidManifest.xml" | 410 # input = "shell/java/AndroidManifest.xml" |
432 # output = "$target_gen_dir/AndroidManifest.xml" | 411 # output = "$target_gen_dir/AndroidManifest.xml" |
433 # } | 412 # } |
434 template("jinja_template") { | 413 template("jinja_template") { |
435 set_sources_assignment_filter([]) | 414 set_sources_assignment_filter([]) |
436 if (defined(invoker.testonly)) { | 415 forward_variables_from(invoker, [ "testonly" ]) |
437 testonly = invoker.testonly | |
438 } | |
439 | 416 |
440 assert(defined(invoker.input)) | 417 assert(defined(invoker.input)) |
441 assert(defined(invoker.output)) | 418 assert(defined(invoker.output)) |
442 | 419 |
443 action(target_name) { | 420 action(target_name) { |
444 if (defined(invoker.visibility)) { | 421 forward_variables_from(invoker, [ "visibility" ]) |
445 visibility = invoker.visibility | |
446 } | |
447 | 422 |
448 sources = [ | 423 sources = [ |
449 invoker.input, | 424 invoker.input, |
450 ] | 425 ] |
451 script = "//build/android/gyp/jinja_template.py" | 426 script = "//build/android/gyp/jinja_template.py" |
452 depfile = "$target_gen_dir/$target_name.d" | 427 depfile = "$target_gen_dir/$target_name.d" |
453 | 428 |
454 outputs = [ | 429 outputs = [ |
455 depfile, | 430 depfile, |
456 invoker.output, | 431 invoker.output, |
(...skipping 30 matching lines...) Expand all Loading... |
487 # processing environment, e.g. ["name=foo", "color=red"]. | 462 # processing environment, e.g. ["name=foo", "color=red"]. |
488 # | 463 # |
489 # Example | 464 # Example |
490 # jinja_template_resources("chrome_shell_template_resources") { | 465 # jinja_template_resources("chrome_shell_template_resources") { |
491 # res_dir = "shell/res_template" | 466 # res_dir = "shell/res_template" |
492 # resources = ["shell/res_template/xml/syncable.xml"] | 467 # resources = ["shell/res_template/xml/syncable.xml"] |
493 # variables = ["color=red"] | 468 # variables = ["color=red"] |
494 # } | 469 # } |
495 template("jinja_template_resources") { | 470 template("jinja_template_resources") { |
496 set_sources_assignment_filter([]) | 471 set_sources_assignment_filter([]) |
497 if (defined(invoker.testonly)) { | 472 forward_variables_from(invoker, [ "testonly" ]) |
498 testonly = invoker.testonly | |
499 } | |
500 | 473 |
501 assert(defined(invoker.resources)) | 474 assert(defined(invoker.resources)) |
502 assert(defined(invoker.res_dir)) | 475 assert(defined(invoker.res_dir)) |
503 | 476 |
504 _base_path = "$target_gen_dir/$target_name" | 477 _base_path = "$target_gen_dir/$target_name" |
505 _resources_zip = _base_path + ".resources.zip" | 478 _resources_zip = _base_path + ".resources.zip" |
506 _build_config = _base_path + ".build_config" | 479 _build_config = _base_path + ".build_config" |
507 | 480 |
508 write_build_config("${target_name}__build_config") { | 481 write_build_config("${target_name}__build_config") { |
509 build_config = _build_config | 482 build_config = _build_config |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 _resources_zip = _base_path + ".resources.zip" | 543 _resources_zip = _base_path + ".resources.zip" |
571 _build_config = _base_path + ".build_config" | 544 _build_config = _base_path + ".build_config" |
572 | 545 |
573 write_build_config("${target_name}__build_config") { | 546 write_build_config("${target_name}__build_config") { |
574 build_config = _build_config | 547 build_config = _build_config |
575 resources_zip = _resources_zip | 548 resources_zip = _resources_zip |
576 type = "android_resources" | 549 type = "android_resources" |
577 } | 550 } |
578 | 551 |
579 action("${target_name}__create_resources_zip") { | 552 action("${target_name}__create_resources_zip") { |
580 sources = invoker.sources | 553 forward_variables_from(invoker, |
| 554 [ |
| 555 "deps", |
| 556 "sources", |
| 557 ]) |
581 script = "//build/android/gyp/locale_pak_resources.py" | 558 script = "//build/android/gyp/locale_pak_resources.py" |
582 depfile = "$target_gen_dir/$target_name.d" | 559 depfile = "$target_gen_dir/$target_name.d" |
583 | 560 |
584 outputs = [ | 561 outputs = [ |
585 depfile, | 562 depfile, |
586 _resources_zip, | 563 _resources_zip, |
587 ] | 564 ] |
588 | 565 |
589 _rebased_sources = rebase_path(invoker.sources, root_build_dir) | 566 _rebased_sources = rebase_path(sources, root_build_dir) |
590 args = [ | 567 args = [ |
591 "--locale-paks=${_rebased_sources}", | 568 "--locale-paks=${_rebased_sources}", |
592 "--resources-zip", | 569 "--resources-zip", |
593 rebase_path(_resources_zip, root_build_dir), | 570 rebase_path(_resources_zip, root_build_dir), |
594 "--depfile", | 571 "--depfile", |
595 rebase_path(depfile, root_build_dir), | 572 rebase_path(depfile, root_build_dir), |
596 ] | 573 ] |
597 | |
598 if (defined(invoker.deps)) { | |
599 deps = invoker.deps | |
600 } | |
601 } | 574 } |
602 | 575 |
603 group(target_name) { | 576 group(target_name) { |
604 deps = [ | 577 deps = [ |
605 ":${target_name}__build_config", | 578 ":${target_name}__build_config", |
606 ":${target_name}__create_resources_zip", | 579 ":${target_name}__create_resources_zip", |
607 ] | 580 ] |
608 } | 581 } |
609 } | 582 } |
610 | 583 |
(...skipping 22 matching lines...) Expand all Loading... |
633 # | 606 # |
634 | 607 |
635 # Example | 608 # Example |
636 # android_resources("foo_resources") { | 609 # android_resources("foo_resources") { |
637 # deps = [":foo_strings_grd"] | 610 # deps = [":foo_strings_grd"] |
638 # resource_dirs = ["res"] | 611 # resource_dirs = ["res"] |
639 # custom_package = "org.chromium.foo" | 612 # custom_package = "org.chromium.foo" |
640 # } | 613 # } |
641 template("android_resources") { | 614 template("android_resources") { |
642 set_sources_assignment_filter([]) | 615 set_sources_assignment_filter([]) |
643 if (defined(invoker.testonly)) { | 616 forward_variables_from(invoker, [ "testonly" ]) |
644 testonly = invoker.testonly | |
645 } | |
646 | 617 |
647 assert(defined(invoker.resource_dirs)) | 618 assert(defined(invoker.resource_dirs)) |
648 assert(defined(invoker.android_manifest) || defined(invoker.custom_package)) | 619 assert(defined(invoker.android_manifest) || defined(invoker.custom_package)) |
649 | 620 |
650 base_path = "$target_gen_dir/$target_name" | 621 base_path = "$target_gen_dir/$target_name" |
651 zip_path = base_path + ".resources.zip" | 622 zip_path = base_path + ".resources.zip" |
652 srcjar_path = base_path + ".srcjar" | 623 srcjar_path = base_path + ".srcjar" |
653 r_text_path = base_path + "_R.txt" | 624 r_text_path = base_path + "_R.txt" |
654 build_config = base_path + ".build_config" | 625 build_config = base_path + ".build_config" |
655 | 626 |
656 build_config_target_name = "${target_name}__build_config" | 627 build_config_target_name = "${target_name}__build_config" |
657 process_resources_target_name = "${target_name}__process_resources" | 628 process_resources_target_name = "${target_name}__process_resources" |
658 final_target_name = target_name | 629 final_target_name = target_name |
659 | 630 |
660 write_build_config(build_config_target_name) { | 631 write_build_config(build_config_target_name) { |
| 632 forward_variables_from(invoker, |
| 633 [ |
| 634 "android_manifest", |
| 635 "custom_package", |
| 636 "deps", |
| 637 ]) |
661 visibility = [ ":$process_resources_target_name" ] | 638 visibility = [ ":$process_resources_target_name" ] |
662 | 639 |
663 type = "android_resources" | 640 type = "android_resources" |
664 resources_zip = zip_path | 641 resources_zip = zip_path |
665 srcjar = srcjar_path | 642 srcjar = srcjar_path |
666 r_text = r_text_path | 643 r_text = r_text_path |
667 if (defined(invoker.deps)) { | |
668 deps = invoker.deps | |
669 } | |
670 if (defined(invoker.android_manifest)) { | |
671 android_manifest = invoker.android_manifest | |
672 } | |
673 if (defined(invoker.custom_package)) { | |
674 custom_package = invoker.custom_package | |
675 } | |
676 } | |
677 | |
678 android_manifest = "//build/android/AndroidManifest.xml" | |
679 if (defined(invoker.android_manifest)) { | |
680 android_manifest = invoker.android_manifest | |
681 } | 644 } |
682 | 645 |
683 process_resources(process_resources_target_name) { | 646 process_resources(process_resources_target_name) { |
684 visibility = [ ":$final_target_name" ] | 647 visibility = [ ":$final_target_name" ] |
685 | 648 deps = [] |
686 resource_dirs = invoker.resource_dirs | 649 forward_variables_from(invoker, |
687 if (defined(invoker.custom_package)) { | 650 [ |
688 custom_package = invoker.custom_package | 651 "android_manifest", |
689 } | 652 "custom_package", |
690 | 653 "deps", |
691 if (defined(invoker.v14_skip)) { | 654 "resource_dirs", |
692 v14_skip = invoker.v14_skip | 655 "shared_resources", |
693 } | 656 "v14_skip", |
694 | 657 ]) |
695 if (defined(invoker.shared_resources)) { | 658 deps += [ ":$build_config_target_name" ] |
696 shared_resources = invoker.shared_resources | 659 if (!defined(android_manifest)) { |
697 } | 660 android_manifest = "//build/android/AndroidManifest.xml" |
698 | |
699 deps = [ | |
700 ":$build_config_target_name", | |
701 ] | |
702 if (defined(invoker.deps)) { | |
703 # Invoker may have added deps that generate the input resources. | |
704 deps += invoker.deps | |
705 } | 661 } |
706 } | 662 } |
707 | 663 |
708 group(final_target_name) { | 664 group(final_target_name) { |
709 if (defined(invoker.visibility)) { | 665 forward_variables_from(invoker, [ "visibility" ]) |
710 visibility = invoker.visibility | |
711 } | |
712 deps = [ | 666 deps = [ |
713 ":${target_name}__process_resources", | 667 ":${target_name}__process_resources", |
714 ] | 668 ] |
715 } | 669 } |
716 } | 670 } |
717 | 671 |
718 # Declare a target that generates localized strings.xml from a .grd file. | 672 # Declare a target that generates localized strings.xml from a .grd file. |
719 # | 673 # |
720 # If this target is included in the deps of an android resources/library/apk, | 674 # If this target is included in the deps of an android resources/library/apk, |
721 # the strings.xml will be included with that target. | 675 # the strings.xml will be included with that target. |
722 # | 676 # |
723 # Variables | 677 # Variables |
724 # deps: Specifies the dependencies of this target. | 678 # deps: Specifies the dependencies of this target. |
725 # grd_file: Path to the .grd file to generate strings.xml from. | 679 # grd_file: Path to the .grd file to generate strings.xml from. |
726 # outputs: Expected grit outputs (see grit rule). | 680 # outputs: Expected grit outputs (see grit rule). |
727 # | 681 # |
728 # Example | 682 # Example |
729 # java_strings_grd("foo_strings_grd") { | 683 # java_strings_grd("foo_strings_grd") { |
730 # grd_file = "foo_strings.grd" | 684 # grd_file = "foo_strings.grd" |
731 # } | 685 # } |
732 template("java_strings_grd") { | 686 template("java_strings_grd") { |
733 set_sources_assignment_filter([]) | 687 set_sources_assignment_filter([]) |
734 if (defined(invoker.testonly)) { | 688 forward_variables_from(invoker, [ "testonly" ]) |
735 testonly = invoker.testonly | |
736 } | |
737 | 689 |
738 base_path = "$target_gen_dir/$target_name" | 690 base_path = "$target_gen_dir/$target_name" |
739 resources_zip = base_path + ".resources.zip" | 691 resources_zip = base_path + ".resources.zip" |
740 build_config = base_path + ".build_config" | 692 build_config = base_path + ".build_config" |
741 | 693 |
742 write_build_config("${target_name}__build_config") { | 694 write_build_config("${target_name}__build_config") { |
| 695 forward_variables_from(invoker, [ "deps" ]) |
743 type = "android_resources" | 696 type = "android_resources" |
744 if (defined(invoker.deps)) { | |
745 deps = invoker.deps | |
746 } | |
747 } | 697 } |
748 | 698 |
749 # Put grit files into this subdirectory of target_gen_dir. | 699 # Put grit files into this subdirectory of target_gen_dir. |
750 extra_output_path = target_name + "_grit_output" | 700 extra_output_path = target_name + "_grit_output" |
751 | 701 |
752 grit_target_name = "${target_name}__grit" | 702 grit_target_name = "${target_name}__grit" |
753 grit_output_dir = "$target_gen_dir/$extra_output_path" | 703 grit_output_dir = "$target_gen_dir/$extra_output_path" |
754 grit(grit_target_name) { | 704 grit(grit_target_name) { |
755 grit_flags = [ | 705 grit_flags = [ |
756 "-E", | 706 "-E", |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
794 # | 744 # |
795 # Example | 745 # Example |
796 # java_strings_grd_prebuilt("foo_strings_grd") { | 746 # java_strings_grd_prebuilt("foo_strings_grd") { |
797 # grit_output_dir = "$root_gen_dir/foo/grit" | 747 # grit_output_dir = "$root_gen_dir/foo/grit" |
798 # generated_files = [ | 748 # generated_files = [ |
799 # "values/strings.xml" | 749 # "values/strings.xml" |
800 # ] | 750 # ] |
801 # } | 751 # } |
802 template("java_strings_grd_prebuilt") { | 752 template("java_strings_grd_prebuilt") { |
803 set_sources_assignment_filter([]) | 753 set_sources_assignment_filter([]) |
804 if (defined(invoker.testonly)) { | 754 forward_variables_from(invoker, [ "testonly" ]) |
805 testonly = invoker.testonly | |
806 } | |
807 | 755 |
808 base_path = "$target_gen_dir/$target_name" | 756 base_path = "$target_gen_dir/$target_name" |
809 resources_zip = base_path + ".resources.zip" | 757 resources_zip = base_path + ".resources.zip" |
810 build_config = base_path + ".build_config" | 758 build_config = base_path + ".build_config" |
811 | 759 |
812 build_config_target_name = "${target_name}__build_config" | 760 build_config_target_name = "${target_name}__build_config" |
813 zip_target_name = "${target_name}__zip" | 761 zip_target_name = "${target_name}__zip" |
814 final_target_name = target_name | 762 final_target_name = target_name |
815 | 763 |
816 write_build_config(build_config_target_name) { | 764 write_build_config(build_config_target_name) { |
817 visibility = [ ":$zip_target_name" ] | 765 visibility = [ ":$zip_target_name" ] |
818 type = "android_resources" | 766 type = "android_resources" |
819 } | 767 } |
820 | 768 |
821 zip(zip_target_name) { | 769 zip(zip_target_name) { |
822 visibility = [ ":$final_target_name" ] | 770 visibility = [ ":$final_target_name" ] |
823 | 771 |
824 base_dir = invoker.grit_output_dir | 772 base_dir = invoker.grit_output_dir |
825 inputs = rebase_path(invoker.generated_files, ".", base_dir) | 773 inputs = rebase_path(invoker.generated_files, ".", base_dir) |
826 output = resources_zip | 774 output = resources_zip |
827 deps = [ | 775 deps = [ |
828 ":$build_config_target_name", | 776 ":$build_config_target_name", |
829 ] | 777 ] |
830 if (defined(invoker.deps)) { | 778 if (defined(invoker.deps)) { |
831 deps += invoker.deps | 779 deps += invoker.deps |
832 } | 780 } |
833 } | 781 } |
834 | 782 |
835 group(final_target_name) { | 783 group(final_target_name) { |
836 if (defined(invoker.visibility)) { | 784 forward_variables_from(invoker, [ "visibility" ]) |
837 visibility = invoker.visibility | |
838 } | |
839 deps = [ | 785 deps = [ |
840 ":$zip_target_name", | 786 ":$zip_target_name", |
841 ] | 787 ] |
842 } | 788 } |
843 } | 789 } |
844 | 790 |
845 # Declare a Java executable target | 791 # Declare a Java executable target |
846 # | 792 # |
847 # This target creates an executable from java code and libraries. The executable | 793 # This target creates an executable from java code and libraries. The executable |
848 # will be in the output folder's /bin/ directory. | 794 # will be in the output folder's /bin/ directory. |
(...skipping 22 matching lines...) Expand all Loading... |
871 # java_files = [ "org/chromium/foo/FooMain.java" ] | 817 # java_files = [ "org/chromium/foo/FooMain.java" ] |
872 # deps = [ ":bar_java" ] | 818 # deps = [ ":bar_java" ] |
873 # main_class = "org.chromium.foo.FooMain" | 819 # main_class = "org.chromium.foo.FooMain" |
874 # } | 820 # } |
875 template("java_binary") { | 821 template("java_binary") { |
876 set_sources_assignment_filter([]) | 822 set_sources_assignment_filter([]) |
877 | 823 |
878 # TODO(cjhopman): This should not act like a java_library for dependents (i.e. | 824 # TODO(cjhopman): This should not act like a java_library for dependents (i.e. |
879 # dependents shouldn't get the jar in their classpath, etc.). | 825 # dependents shouldn't get the jar in their classpath, etc.). |
880 java_library_impl(target_name) { | 826 java_library_impl(target_name) { |
881 if (defined(invoker.DEPRECATED_java_in_dir)) { | 827 forward_variables_from(invoker, "*") |
882 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | |
883 } | |
884 if (defined(invoker.chromium_code)) { | |
885 chromium_code = invoker.chromium_code | |
886 } | |
887 if (defined(invoker.data_deps)) { | |
888 deps = invoker.data_deps | |
889 } | |
890 if (defined(invoker.deps)) { | |
891 deps = invoker.deps | |
892 } | |
893 if (defined(invoker.enable_errorprone)) { | |
894 enable_errorprone = invoker.enable_errorprone | |
895 } | |
896 if (defined(invoker.java_files)) { | |
897 java_files = invoker.java_files | |
898 } | |
899 if (defined(invoker.srcjar_deps)) { | |
900 srcjar_deps = invoker.srcjar_deps | |
901 } | |
902 if (defined(invoker.srcjars)) { | |
903 srcjars = invoker.srcjars | |
904 } | |
905 if (defined(invoker.bypass_platform_checks)) { | |
906 bypass_platform_checks = invoker.bypass_platform_checks | |
907 } | |
908 if (defined(invoker.testonly)) { | |
909 testonly = invoker.testonly | |
910 } | |
911 | |
912 supports_android = false | 828 supports_android = false |
913 main_class = invoker.main_class | 829 main_class = invoker.main_class |
914 } | 830 } |
915 } | 831 } |
916 | 832 |
917 # Declare a Junit executable target | 833 # Declare a Junit executable target |
918 # | 834 # |
919 # This target creates an executable from java code for running as a junit test | 835 # This target creates an executable from java code for running as a junit test |
920 # suite. The executable will be in the output folder's /bin/ directory. | 836 # suite. The executable will be in the output folder's /bin/ directory. |
921 # | 837 # |
(...skipping 11 matching lines...) Expand all Loading... |
933 # | 849 # |
934 # Example | 850 # Example |
935 # junit_binary("foo") { | 851 # junit_binary("foo") { |
936 # java_files = [ "org/chromium/foo/FooTest.java" ] | 852 # java_files = [ "org/chromium/foo/FooTest.java" ] |
937 # deps = [ ":bar_java" ] | 853 # deps = [ ":bar_java" ] |
938 # } | 854 # } |
939 template("junit_binary") { | 855 template("junit_binary") { |
940 set_sources_assignment_filter([]) | 856 set_sources_assignment_filter([]) |
941 | 857 |
942 java_binary(target_name) { | 858 java_binary(target_name) { |
| 859 deps = [] |
| 860 forward_variables_from(invoker, "*") |
943 bypass_platform_checks = true | 861 bypass_platform_checks = true |
944 main_class = "org.chromium.testing.local.JunitTestMain" | 862 main_class = "org.chromium.testing.local.JunitTestMain" |
945 testonly = true | 863 testonly = true |
946 | 864 |
947 if (defined(invoker.DEPRECATED_java_in_dir)) { | 865 deps += [ |
948 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | |
949 } | |
950 if (defined(invoker.chromium_code)) { | |
951 chromium_code = invoker.chromium_code | |
952 } | |
953 deps = [ | |
954 "//testing/android/junit:junit_test_support", | 866 "//testing/android/junit:junit_test_support", |
955 "//third_party/junit", | 867 "//third_party/junit", |
956 "//third_party/mockito:mockito_java", | 868 "//third_party/mockito:mockito_java", |
957 "//third_party/robolectric:robolectric_java", | 869 "//third_party/robolectric:robolectric_java", |
958 "//third_party/robolectric:android-all-4.3_r2-robolectric-0", | 870 "//third_party/robolectric:android-all-4.3_r2-robolectric-0", |
959 ] | 871 ] |
960 if (defined(invoker.deps)) { | |
961 deps += invoker.deps | |
962 } | |
963 if (defined(invoker.java_files)) { | |
964 java_files = invoker.java_files | |
965 } | |
966 if (defined(invoker.srcjar_deps)) { | |
967 srcjar_deps = invoker.srcjar_deps | |
968 } | |
969 if (defined(invoker.srcjars)) { | |
970 srcjars = invoker.srcjars | |
971 } | |
972 } | 872 } |
973 } | 873 } |
974 | 874 |
975 # Declare a java library target | 875 # Declare a java library target |
976 # | 876 # |
977 # Variables | 877 # Variables |
978 # deps: Specifies the dependencies of this target. Java targets in this list | 878 # deps: Specifies the dependencies of this target. Java targets in this list |
979 # will be added to the javac classpath. | 879 # will be added to the javac classpath. |
980 # | 880 # |
981 # java_files: List of .java files included in this library. | 881 # java_files: List of .java files included in this library. |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1019 # srcjar_deps = [ | 919 # srcjar_deps = [ |
1020 # ":foo_generated_enum" | 920 # ":foo_generated_enum" |
1021 # ] | 921 # ] |
1022 # jar_excluded_patterns = [ | 922 # jar_excluded_patterns = [ |
1023 # "*/FooService.class", "*/FooService##*.class" | 923 # "*/FooService.class", "*/FooService##*.class" |
1024 # ] | 924 # ] |
1025 # } | 925 # } |
1026 template("java_library") { | 926 template("java_library") { |
1027 set_sources_assignment_filter([]) | 927 set_sources_assignment_filter([]) |
1028 java_library_impl(target_name) { | 928 java_library_impl(target_name) { |
1029 if (defined(invoker.DEPRECATED_java_in_dir)) { | 929 forward_variables_from(invoker, "*") |
1030 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | |
1031 } | |
1032 if (defined(invoker.chromium_code)) { | |
1033 chromium_code = invoker.chromium_code | |
1034 } | |
1035 if (defined(invoker.data_deps)) { | |
1036 deps = invoker.data_deps | |
1037 } | |
1038 if (defined(invoker.deps)) { | |
1039 deps = invoker.deps | |
1040 } | |
1041 if (defined(invoker.enable_errorprone)) { | |
1042 enable_errorprone = invoker.enable_errorprone | |
1043 } | |
1044 if (defined(invoker.jar_excluded_patterns)) { | |
1045 jar_excluded_patterns = invoker.jar_excluded_patterns | |
1046 } | |
1047 if (defined(invoker.java_files)) { | |
1048 java_files = invoker.java_files | |
1049 } | |
1050 if (defined(invoker.proguard_config)) { | |
1051 proguard_config = invoker.proguard_config | |
1052 } | |
1053 if (defined(invoker.proguard_preprocess)) { | |
1054 proguard_preprocess = invoker.proguard_preprocess | |
1055 } | |
1056 if (defined(invoker.srcjar_deps)) { | |
1057 srcjar_deps = invoker.srcjar_deps | |
1058 } | |
1059 if (defined(invoker.srcjars)) { | |
1060 srcjars = invoker.srcjars | |
1061 } | |
1062 if (defined(invoker.bypass_platform_checks)) { | |
1063 bypass_platform_checks = invoker.bypass_platform_checks | |
1064 } | |
1065 if (defined(invoker.testonly)) { | |
1066 testonly = invoker.testonly | |
1067 } | |
1068 if (defined(invoker.jar_path)) { | |
1069 jar_path = invoker.jar_path | |
1070 } | |
1071 | |
1072 if (defined(invoker.supports_android) && invoker.supports_android) { | |
1073 supports_android = true | |
1074 } | |
1075 } | 930 } |
1076 } | 931 } |
1077 | 932 |
1078 # Declare a java library target for a prebuilt jar | 933 # Declare a java library target for a prebuilt jar |
1079 # | 934 # |
1080 # Variables | 935 # Variables |
1081 # deps: Specifies the dependencies of this target. Java targets in this list | 936 # deps: Specifies the dependencies of this target. Java targets in this list |
1082 # will be added to the javac classpath. | 937 # will be added to the javac classpath. |
1083 # jar_path: Path to the prebuilt jar. | 938 # jar_path: Path to the prebuilt jar. |
1084 # jar_dep: Target that builds jar_path (optional). | 939 # jar_dep: Target that builds jar_path (optional). |
1085 # proguard_preprocess: If true, proguard preprocessing will be run. This can | 940 # proguard_preprocess: If true, proguard preprocessing will be run. This can |
1086 # be used to remove unwanted parts of the library. | 941 # be used to remove unwanted parts of the library. |
1087 # proguard_config: Path to the proguard config for preprocessing. | 942 # proguard_config: Path to the proguard config for preprocessing. |
1088 # | 943 # |
1089 # Example | 944 # Example |
1090 # java_prebuilt("foo_java") { | 945 # java_prebuilt("foo_java") { |
1091 # jar_path = "foo.jar" | 946 # jar_path = "foo.jar" |
1092 # deps = [ | 947 # deps = [ |
1093 # ":foo_resources", | 948 # ":foo_resources", |
1094 # ":bar_java" | 949 # ":bar_java" |
1095 # ] | 950 # ] |
1096 # } | 951 # } |
1097 template("java_prebuilt") { | 952 template("java_prebuilt") { |
1098 set_sources_assignment_filter([]) | 953 set_sources_assignment_filter([]) |
1099 java_prebuilt_impl(target_name) { | 954 java_prebuilt_impl(target_name) { |
1100 jar_path = invoker.jar_path | 955 forward_variables_from(invoker, "*") |
1101 if (defined(invoker.jar_dep)) { | |
1102 jar_dep = invoker.jar_dep | |
1103 } | |
1104 if (defined(invoker.testonly)) { | |
1105 testonly = invoker.testonly | |
1106 } | |
1107 if (defined(invoker.deps)) { | |
1108 deps = invoker.deps | |
1109 } | |
1110 if (defined(invoker.data_deps)) { | |
1111 data_deps = invoker.data_deps | |
1112 } | |
1113 if (defined(invoker.proguard_config)) { | |
1114 proguard_config = invoker.proguard_config | |
1115 } | |
1116 if (defined(invoker.proguard_preprocess)) { | |
1117 proguard_preprocess = invoker.proguard_preprocess | |
1118 } | |
1119 } | 956 } |
1120 } | 957 } |
1121 | 958 |
1122 # Declare an Android library target | 959 # Declare an Android library target |
1123 # | 960 # |
1124 # This target creates an Android library containing java code and Android | 961 # This target creates an Android library containing java code and Android |
1125 # resources. | 962 # resources. |
1126 # | 963 # |
1127 # Variables | 964 # Variables |
1128 # deps: Specifies the dependencies of this target. Java targets in this list | 965 # deps: Specifies the dependencies of this target. Java targets in this list |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 # ] | 1004 # ] |
1168 # jar_excluded_patterns = [ | 1005 # jar_excluded_patterns = [ |
1169 # "*/FooService.class", "*/FooService##*.class" | 1006 # "*/FooService.class", "*/FooService##*.class" |
1170 # ] | 1007 # ] |
1171 # } | 1008 # } |
1172 template("android_library") { | 1009 template("android_library") { |
1173 set_sources_assignment_filter([]) | 1010 set_sources_assignment_filter([]) |
1174 assert(!defined(invoker.jar_path), | 1011 assert(!defined(invoker.jar_path), |
1175 "android_library does not support a custom jar path") | 1012 "android_library does not support a custom jar path") |
1176 java_library_impl(target_name) { | 1013 java_library_impl(target_name) { |
1177 if (defined(invoker.DEPRECATED_java_in_dir)) { | 1014 forward_variables_from(invoker, "*") |
1178 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | |
1179 } | |
1180 if (defined(invoker.chromium_code)) { | |
1181 chromium_code = invoker.chromium_code | |
1182 } | |
1183 if (defined(invoker.data_deps)) { | |
1184 deps = invoker.data_deps | |
1185 } | |
1186 if (defined(invoker.deps)) { | |
1187 deps = invoker.deps | |
1188 } | |
1189 if (defined(invoker.enable_errorprone)) { | |
1190 enable_errorprone = invoker.enable_errorprone | |
1191 } | |
1192 if (defined(invoker.jar_excluded_patterns)) { | |
1193 jar_excluded_patterns = invoker.jar_excluded_patterns | |
1194 } | |
1195 if (defined(invoker.java_files)) { | |
1196 java_files = invoker.java_files | |
1197 } | |
1198 if (defined(invoker.proguard_config)) { | |
1199 proguard_config = invoker.proguard_config | |
1200 } | |
1201 if (defined(invoker.proguard_preprocess)) { | |
1202 proguard_preprocess = invoker.proguard_preprocess | |
1203 } | |
1204 if (defined(invoker.srcjar_deps)) { | |
1205 srcjar_deps = invoker.srcjar_deps | |
1206 } | |
1207 if (defined(invoker.srcjars)) { | |
1208 srcjars = invoker.srcjars | |
1209 } | |
1210 if (defined(invoker.testonly)) { | |
1211 testonly = invoker.testonly | |
1212 } | |
1213 if (defined(invoker.visibility)) { | |
1214 visibility = invoker.visibility | |
1215 } | |
1216 if (defined(invoker.dex_path)) { | |
1217 dex_path = invoker.dex_path | |
1218 } | |
1219 if (defined(invoker.manifest_entries)) { | |
1220 manifest_entries = invoker.manifest_entries | |
1221 } | |
1222 | 1015 |
1223 supports_android = true | 1016 supports_android = true |
1224 requires_android = true | 1017 requires_android = true |
1225 | 1018 |
1226 if (!defined(jar_excluded_patterns)) { | 1019 if (!defined(jar_excluded_patterns)) { |
1227 jar_excluded_patterns = [] | 1020 jar_excluded_patterns = [] |
1228 } | 1021 } |
1229 jar_excluded_patterns += [ | 1022 jar_excluded_patterns += [ |
1230 "*/R.class", | 1023 "*/R.class", |
1231 "*/R##*.class", | 1024 "*/R##*.class", |
1232 "*/Manifest.class", | 1025 "*/Manifest.class", |
1233 "*/Manifest##*.class", | 1026 "*/Manifest##*.class", |
1234 ] | 1027 ] |
1235 } | 1028 } |
1236 } | 1029 } |
1237 | 1030 |
1238 # Declare a target that packages a set of Java dependencies into a standalone | 1031 # Declare a target that packages a set of Java dependencies into a standalone |
1239 # .dex.jar. | 1032 # .dex.jar. |
1240 # | 1033 # |
1241 # Variables | 1034 # Variables |
1242 # deps: specifies the dependencies of this target. Android libraries in deps | 1035 # deps: specifies the dependencies of this target. Android libraries in deps |
1243 # will be packaged into the resulting .dex.jar file. | 1036 # will be packaged into the resulting .dex.jar file. |
1244 # dex_path: location at which the output file will be put | 1037 # dex_path: location at which the output file will be put |
1245 template("android_standalone_library") { | 1038 template("android_standalone_library") { |
1246 set_sources_assignment_filter([]) | 1039 set_sources_assignment_filter([]) |
1247 deps_dex(target_name) { | 1040 deps_dex(target_name) { |
1248 deps = invoker.deps | 1041 forward_variables_from(invoker, |
1249 dex_path = invoker.dex_path | 1042 [ |
1250 if (defined(invoker.excluded_jars)) { | 1043 "deps", |
1251 excluded_jars = invoker.excluded_jars | 1044 "dex_path", |
1252 } | 1045 "excluded_jars", |
| 1046 ]) |
1253 } | 1047 } |
1254 } | 1048 } |
1255 | 1049 |
1256 # Declare an Android library target for a prebuilt jar | 1050 # Declare an Android library target for a prebuilt jar |
1257 # | 1051 # |
1258 # This target creates an Android library containing java code and Android | 1052 # This target creates an Android library containing java code and Android |
1259 # resources. | 1053 # resources. |
1260 # | 1054 # |
1261 # Variables | 1055 # Variables |
1262 # deps: Specifies the dependencies of this target. Java targets in this list | 1056 # deps: Specifies the dependencies of this target. Java targets in this list |
1263 # will be added to the javac classpath. Android resources in dependencies | 1057 # will be added to the javac classpath. Android resources in dependencies |
1264 # will be used when building this library. | 1058 # will be used when building this library. |
1265 # jar_path: Path to the prebuilt jar. | 1059 # jar_path: Path to the prebuilt jar. |
1266 # proguard_preprocess: If true, proguard preprocessing will be run. This can | 1060 # proguard_preprocess: If true, proguard preprocessing will be run. This can |
1267 # be used to remove unwanted parts of the library. | 1061 # be used to remove unwanted parts of the library. |
1268 # proguard_config: Path to the proguard config for preprocessing. | 1062 # proguard_config: Path to the proguard config for preprocessing. |
1269 # | 1063 # |
1270 # Example | 1064 # Example |
1271 # android_java_prebuilt("foo_java") { | 1065 # android_java_prebuilt("foo_java") { |
1272 # jar_path = "foo.jar" | 1066 # jar_path = "foo.jar" |
1273 # deps = [ | 1067 # deps = [ |
1274 # ":foo_resources", | 1068 # ":foo_resources", |
1275 # ":bar_java" | 1069 # ":bar_java" |
1276 # ] | 1070 # ] |
1277 # } | 1071 # } |
1278 template("android_java_prebuilt") { | 1072 template("android_java_prebuilt") { |
1279 set_sources_assignment_filter([]) | 1073 set_sources_assignment_filter([]) |
1280 java_prebuilt_impl(target_name) { | 1074 java_prebuilt_impl(target_name) { |
1281 jar_path = invoker.jar_path | 1075 forward_variables_from(invoker, "*") |
1282 supports_android = true | 1076 supports_android = true |
1283 requires_android = true | 1077 requires_android = true |
1284 if (defined(invoker.testonly)) { | |
1285 testonly = invoker.testonly | |
1286 } | |
1287 if (defined(invoker.deps)) { | |
1288 deps = invoker.deps | |
1289 } | |
1290 if (defined(invoker.data_deps)) { | |
1291 data_deps = invoker.data_deps | |
1292 } | |
1293 if (defined(invoker.proguard_config)) { | |
1294 proguard_config = invoker.proguard_config | |
1295 } | |
1296 if (defined(invoker.proguard_preprocess)) { | |
1297 proguard_preprocess = invoker.proguard_preprocess | |
1298 } | |
1299 } | 1078 } |
1300 } | 1079 } |
1301 | 1080 |
1302 # Declare an Android apk target | 1081 # Declare an Android apk target |
1303 # | 1082 # |
1304 # This target creates an Android APK containing java code, resources, assets, | 1083 # This target creates an Android APK containing java code, resources, assets, |
1305 # and (possibly) native libraries. | 1084 # and (possibly) native libraries. |
1306 # | 1085 # |
1307 # Variables | 1086 # Variables |
1308 # android_manifest: Path to AndroidManifest.xml. | 1087 # android_manifest: Path to AndroidManifest.xml. |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1347 # ] | 1126 # ] |
1348 # srcjar_deps = [ | 1127 # srcjar_deps = [ |
1349 # ":foo_generated_enum" | 1128 # ":foo_generated_enum" |
1350 # ] | 1129 # ] |
1351 # native_libs = [ | 1130 # native_libs = [ |
1352 # native_lib_path | 1131 # native_lib_path |
1353 # ] | 1132 # ] |
1354 # } | 1133 # } |
1355 template("android_apk") { | 1134 template("android_apk") { |
1356 set_sources_assignment_filter([]) | 1135 set_sources_assignment_filter([]) |
1357 if (defined(invoker.testonly)) { | 1136 forward_variables_from(invoker, [ "testonly" ]) |
1358 testonly = invoker.testonly | |
1359 } | |
1360 | 1137 |
1361 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) | 1138 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) |
1362 assert(defined(invoker.android_manifest)) | 1139 assert(defined(invoker.android_manifest)) |
1363 gen_dir = "$target_gen_dir/$target_name" | 1140 gen_dir = "$target_gen_dir/$target_name" |
1364 base_path = "$gen_dir/$target_name" | 1141 base_path = "$gen_dir/$target_name" |
1365 _build_config = "$target_gen_dir/$target_name.build_config" | 1142 _build_config = "$target_gen_dir/$target_name.build_config" |
1366 resources_zip_path = "$base_path.resources.zip" | 1143 resources_zip_path = "$base_path.resources.zip" |
1367 _all_resources_zip_path = "$base_path.resources.all.zip" | 1144 _all_resources_zip_path = "$base_path.resources.all.zip" |
1368 jar_path = "$base_path.jar" | 1145 jar_path = "$base_path.jar" |
1369 _template_name = target_name | 1146 _template_name = target_name |
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1860 test_name = invoker.target_name | 1637 test_name = invoker.target_name |
1861 test_type = "instrumentation" | 1638 test_type = "instrumentation" |
1862 test_apk = invoker.apk_name | 1639 test_apk = invoker.apk_name |
1863 if (defined(invoker.isolate_file)) { | 1640 if (defined(invoker.isolate_file)) { |
1864 isolate_file = invoker.isolate_file | 1641 isolate_file = invoker.isolate_file |
1865 } | 1642 } |
1866 } | 1643 } |
1867 } | 1644 } |
1868 | 1645 |
1869 android_apk(target_name) { | 1646 android_apk(target_name) { |
1870 if (defined(invoker.android_manifest)) { | 1647 deps = [] |
1871 android_manifest = invoker.android_manifest | 1648 data_deps = [] |
1872 } | 1649 forward_variables_from(invoker, "*") |
1873 data_deps = [ | 1650 data_deps += [ |
1874 "//testing/android/driver:driver_apk", | 1651 "//testing/android/driver:driver_apk", |
1875 "//tools/android/forwarder2", | 1652 "//tools/android/forwarder2", |
1876 "//tools/android/md5sum", | 1653 "//tools/android/md5sum", |
1877 ] | 1654 ] |
1878 if (defined(test_runner_data_dep)) { | 1655 if (defined(test_runner_data_dep)) { |
1879 data_deps += test_runner_data_dep | 1656 data_deps += test_runner_data_dep |
1880 } | 1657 } |
1881 if (defined(invoker.data_deps)) { | 1658 deps += [ "//testing/android/broker:broker_java" ] |
1882 data_deps += invoker.data_deps | |
1883 } | |
1884 deps = [ | |
1885 "//testing/android/broker:broker_java", | |
1886 ] | |
1887 if (defined(invoker.deps)) { | |
1888 deps += invoker.deps | |
1889 } | |
1890 if (defined(invoker.java_files)) { | |
1891 java_files = invoker.java_files | |
1892 } | |
1893 if (defined(invoker.srcjar_deps)) { | |
1894 srcjar_deps = invoker.srcjar_deps | |
1895 } | |
1896 if (defined(invoker.apk_name)) { | |
1897 apk_name = invoker.apk_name | |
1898 } | |
1899 if (defined(invoker.final_apk_path)) { | |
1900 final_apk_path = invoker.final_apk_path | |
1901 } | |
1902 if (defined(invoker.native_libs)) { | |
1903 native_libs = invoker.native_libs | |
1904 } | |
1905 if (defined(invoker.apk_under_test)) { | |
1906 apk_under_test = invoker.apk_under_test | |
1907 } | |
1908 if (defined(invoker.DEPRECATED_java_in_dir)) { | |
1909 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir | |
1910 } | |
1911 } | 1659 } |
1912 } | 1660 } |
1913 | 1661 |
1914 # Declare an Android gtest apk | 1662 # Declare an Android gtest apk |
1915 # | 1663 # |
1916 # This target creates an Android apk for running gtest-based unittests. | 1664 # This target creates an Android apk for running gtest-based unittests. |
1917 # | 1665 # |
1918 # Variables | 1666 # Variables |
1919 # deps: Specifies the dependencies of this target. These will be passed to | 1667 # deps: Specifies the dependencies of this target. These will be passed to |
1920 # the underlying android_apk invocation and should include the java and | 1668 # the underlying android_apk invocation and should include the java and |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2004 # Example | 1752 # Example |
2005 # android_aidl("foo_aidl") { | 1753 # android_aidl("foo_aidl") { |
2006 # import_include = "java/src" | 1754 # import_include = "java/src" |
2007 # sources = [ | 1755 # sources = [ |
2008 # "java/src/com/foo/bar/FooBarService.aidl", | 1756 # "java/src/com/foo/bar/FooBarService.aidl", |
2009 # "java/src/com/foo/bar/FooBarServiceCallback.aidl", | 1757 # "java/src/com/foo/bar/FooBarServiceCallback.aidl", |
2010 # ] | 1758 # ] |
2011 # } | 1759 # } |
2012 template("android_aidl") { | 1760 template("android_aidl") { |
2013 set_sources_assignment_filter([]) | 1761 set_sources_assignment_filter([]) |
2014 if (defined(invoker.testonly)) { | 1762 forward_variables_from(invoker, [ "testonly" ]) |
2015 testonly = invoker.testonly | |
2016 } | |
2017 | 1763 |
2018 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" | 1764 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
2019 aidl_path = "${android_sdk_build_tools}/aidl" | 1765 aidl_path = "${android_sdk_build_tools}/aidl" |
2020 framework_aidl = "$android_sdk/framework.aidl" | 1766 framework_aidl = "$android_sdk/framework.aidl" |
2021 | 1767 |
2022 action(target_name) { | 1768 action(target_name) { |
2023 script = "//build/android/gyp/aidl.py" | 1769 script = "//build/android/gyp/aidl.py" |
2024 sources = invoker.sources | 1770 sources = invoker.sources |
2025 | 1771 |
2026 imports = [ framework_aidl ] | 1772 imports = [ framework_aidl ] |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2081 # binary: Path to (stripped) executable. | 1827 # binary: Path to (stripped) executable. |
2082 # | 1828 # |
2083 # Example | 1829 # Example |
2084 # create_native_executable_dist("foo_dist") { | 1830 # create_native_executable_dist("foo_dist") { |
2085 # dist_dir = "$root_build_dir/foo_dist" | 1831 # dist_dir = "$root_build_dir/foo_dist" |
2086 # binary = "$root_build_dir/foo" | 1832 # binary = "$root_build_dir/foo" |
2087 # deps = [ ":the_thing_that_makes_foo" ] | 1833 # deps = [ ":the_thing_that_makes_foo" ] |
2088 # } | 1834 # } |
2089 template("create_native_executable_dist") { | 1835 template("create_native_executable_dist") { |
2090 set_sources_assignment_filter([]) | 1836 set_sources_assignment_filter([]) |
2091 if (defined(invoker.testonly)) { | 1837 forward_variables_from(invoker, [ "testonly" ]) |
2092 testonly = invoker.testonly | |
2093 } | |
2094 | 1838 |
2095 dist_dir = invoker.dist_dir | 1839 dist_dir = invoker.dist_dir |
2096 binary = invoker.binary | 1840 binary = invoker.binary |
2097 template_name = target_name | 1841 template_name = target_name |
2098 | 1842 |
2099 libraries_list = | 1843 libraries_list = |
2100 "${target_gen_dir}/${template_name}_library_dependencies.list" | 1844 "${target_gen_dir}/${template_name}_library_dependencies.list" |
2101 | 1845 |
2102 find_deps_target_name = "${template_name}__find_library_dependencies" | 1846 find_deps_target_name = "${template_name}__find_library_dependencies" |
2103 copy_target_name = "${template_name}__copy_libraries_and_exe" | 1847 copy_target_name = "${template_name}__copy_libraries_and_exe" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2175 # sources: Paths to .proto files to compile. | 1919 # sources: Paths to .proto files to compile. |
2176 # proto_path: Root directory of .proto files. | 1920 # proto_path: Root directory of .proto files. |
2177 # | 1921 # |
2178 # Example: | 1922 # Example: |
2179 # proto_java_library("foo_proto_java") { | 1923 # proto_java_library("foo_proto_java") { |
2180 # proto_path = [ "src/foo" ] | 1924 # proto_path = [ "src/foo" ] |
2181 # sources = [ "$proto_path/foo.proto" ] | 1925 # sources = [ "$proto_path/foo.proto" ] |
2182 # } | 1926 # } |
2183 template("proto_java_library") { | 1927 template("proto_java_library") { |
2184 set_sources_assignment_filter([]) | 1928 set_sources_assignment_filter([]) |
| 1929 forward_variables_from(invoker, [ "testonly" ]) |
2185 _protoc_dep = "//third_party/android_protobuf:android_protoc($host_toolchain)" | 1930 _protoc_dep = "//third_party/android_protobuf:android_protoc($host_toolchain)" |
2186 _protoc_out_dir = get_label_info(_protoc_dep, "root_out_dir") | 1931 _protoc_out_dir = get_label_info(_protoc_dep, "root_out_dir") |
2187 _protoc_bin = "$_protoc_out_dir/android_protoc" | 1932 _protoc_bin = "$_protoc_out_dir/android_protoc" |
2188 _proto_path = invoker.proto_path | 1933 _proto_path = invoker.proto_path |
2189 | 1934 |
2190 _template_name = target_name | 1935 _template_name = target_name |
2191 | 1936 |
2192 action("${_template_name}__protoc_java") { | 1937 action("${_template_name}__protoc_java") { |
2193 srcjar_path = "$target_gen_dir/$target_name.srcjar" | 1938 srcjar_path = "$target_gen_dir/$target_name.srcjar" |
2194 script = "//build/protoc_java.py" | 1939 script = "//build/protoc_java.py" |
(...skipping 23 matching lines...) Expand all Loading... |
2218 srcjar_deps = [ ":${_template_name}__protoc_java" ] | 1963 srcjar_deps = [ ":${_template_name}__protoc_java" ] |
2219 deps = [ | 1964 deps = [ |
2220 "//third_party/android_protobuf:protobuf_nano_javalib", | 1965 "//third_party/android_protobuf:protobuf_nano_javalib", |
2221 ] | 1966 ] |
2222 } | 1967 } |
2223 } | 1968 } |
2224 | 1969 |
2225 # TODO(GYP): implement this. | 1970 # TODO(GYP): implement this. |
2226 template("uiautomator_test") { | 1971 template("uiautomator_test") { |
2227 set_sources_assignment_filter([]) | 1972 set_sources_assignment_filter([]) |
2228 if (defined(invoker.testonly)) { | 1973 forward_variables_from(invoker, [ "testonly" ]) |
2229 testonly = invoker.testonly | |
2230 } | |
2231 assert(target_name != "") | 1974 assert(target_name != "") |
2232 assert(invoker.deps != [] || true) | 1975 assert(invoker.deps != [] || true) |
2233 group(target_name) { | 1976 group(target_name) { |
2234 } | 1977 } |
2235 } | 1978 } |
OLD | NEW |