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("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
6 import("//build/config/android/internal_rules.gni") | 6 import("//build/config/android/internal_rules.gni") |
7 import("//tools/grit/grit_rule.gni") | 7 import("//tools/grit/grit_rule.gni") |
8 | 8 |
9 assert(is_android) | 9 assert(is_android) |
10 | 10 |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 depfile, | 230 depfile, |
231 gcc_template_output_pattern | 231 gcc_template_output_pattern |
232 ] | 232 ] |
233 | 233 |
234 args = [ | 234 args = [ |
235 "--depfile", rebase_path(depfile, root_build_dir), | 235 "--depfile", rebase_path(depfile, root_build_dir), |
236 "--include-path", rebase_path(include_path, root_build_dir), | 236 "--include-path", rebase_path(include_path, root_build_dir), |
237 "--output", rebase_path(gen_dir, root_build_dir) + "/{{source_name_part}}.
java", | 237 "--output", rebase_path(gen_dir, root_build_dir) + "/{{source_name_part}}.
java", |
238 "--template={{source}}", | 238 "--template={{source}}", |
239 ] | 239 ] |
| 240 |
| 241 if (defined(invoker.defines)) { |
| 242 foreach(def, invoker.defines) { |
| 243 args += ["--defines", def] |
| 244 } |
| 245 } |
240 } | 246 } |
241 | 247 |
242 apply_gcc_outputs = get_target_outputs(":${target_name}__apply_gcc") | 248 apply_gcc_outputs = get_target_outputs(":${target_name}__apply_gcc") |
243 base_gen_dir = get_label_info(":${target_name}__apply_gcc", "target_gen_dir") | 249 base_gen_dir = get_label_info(":${target_name}__apply_gcc", "target_gen_dir") |
244 | 250 |
245 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" | 251 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
246 zip("${target_name}__zip_srcjar") { | 252 zip("${target_name}__zip_srcjar") { |
247 inputs = apply_gcc_outputs | 253 inputs = apply_gcc_outputs |
248 output = srcjar_path | 254 output = srcjar_path |
249 base_dir = base_gen_dir | 255 base_dir = base_gen_dir |
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 # } | 501 # } |
496 template("android_apk") { | 502 template("android_apk") { |
497 gen_dir = "$target_gen_dir/$target_name" | 503 gen_dir = "$target_gen_dir/$target_name" |
498 base_path = "$gen_dir/$target_name" | 504 base_path = "$gen_dir/$target_name" |
499 build_config = "$base_path.build_config" | 505 build_config = "$base_path.build_config" |
500 resources_zip_path = "$base_path.resources.zip" | 506 resources_zip_path = "$base_path.resources.zip" |
501 all_resources_zip_path = "$base_path.resources.all.zip" | 507 all_resources_zip_path = "$base_path.resources.all.zip" |
502 resource_srcjar_path = "$base_path.resources.srcjar" | 508 resource_srcjar_path = "$base_path.resources.srcjar" |
503 jar_path = "$base_path.jar" | 509 jar_path = "$base_path.jar" |
504 final_dex_path = "$gen_dir/classes.dex" | 510 final_dex_path = "$gen_dir/classes.dex" |
| 511 _template_name = target_name |
505 | 512 |
506 # Just mark these as used for now. | 513 _native_lib_version_name = "" |
507 assert(!defined(invoker.native_libs) | 514 |
508 || invoker.native_libs == [] || true) | 515 _use_chromium_linker = false |
| 516 _enable_chromium_linker_tests = false |
| 517 _load_library_from_apk = false |
| 518 |
| 519 _native_libs_dir = base_path + "/libs" |
| 520 _native_libs = [] |
| 521 if (defined(invoker.native_libs)) { |
| 522 _native_libs = invoker.native_libs |
| 523 } |
509 | 524 |
510 _keystore_path = android_default_keystore_path | 525 _keystore_path = android_default_keystore_path |
511 _keystore_name = android_default_keystore_name | 526 _keystore_name = android_default_keystore_name |
512 _keystore_password = android_default_keystore_password | 527 _keystore_password = android_default_keystore_password |
513 | 528 |
514 if (defined(invoker.keystore_path)) { | 529 if (defined(invoker.keystore_path)) { |
515 _keystore_path = invoker.keystore_path | 530 _keystore_path = invoker.keystore_path |
516 _keystore_name = invoker.keystore_name | 531 _keystore_name = invoker.keystore_name |
517 _keystore_password = invoker.keystore_password | 532 _keystore_password = invoker.keystore_password |
518 } | 533 } |
519 | 534 |
520 # TODO(cjhopman): Remove this once we correctly generate the real | 535 _srcjar_deps = [] |
521 # NativeLibraries.java | |
522 srcjar_deps = [ "//base:base_native_libraries_gen" ] | |
523 if (defined(invoker.srcjar_deps)) { | 536 if (defined(invoker.srcjar_deps)) { |
524 srcjar_deps += invoker.srcjar_deps | 537 _srcjar_deps += invoker.srcjar_deps |
525 } | 538 } |
526 | 539 |
| 540 _rebased_build_config = rebase_path(build_config, root_build_dir) |
| 541 |
527 write_build_config("${target_name}__build_config") { | 542 write_build_config("${target_name}__build_config") { |
528 type = "android_apk" | 543 type = "android_apk" |
529 srcjar = resource_srcjar_path | 544 srcjar = resource_srcjar_path |
530 dex_path = final_dex_path | 545 dex_path = final_dex_path |
531 resources_zip = resources_zip_path | 546 resources_zip = resources_zip_path |
532 | 547 |
533 if (defined(invoker.deps)) { | 548 if (defined(invoker.deps)) { |
534 deps = invoker.deps | 549 deps = invoker.deps |
535 } | 550 } |
| 551 |
| 552 native_libs = _native_libs |
536 } | 553 } |
537 | 554 |
538 final_deps = [] | 555 final_deps = [] |
539 | 556 |
540 final_deps += [":${target_name}__process_resources"] | 557 final_deps += [":${target_name}__process_resources"] |
541 process_resources("${target_name}__process_resources") { | 558 process_resources("${target_name}__process_resources") { |
542 android_manifest = invoker.android_manifest | 559 android_manifest = invoker.android_manifest |
543 | 560 |
544 resource_dirs = ["//build/android/ant/empty/res"] | 561 resource_dirs = ["//build/android/ant/empty/res"] |
545 zip_path = resources_zip_path | 562 zip_path = resources_zip_path |
546 srcjar_path = resource_srcjar_path | 563 srcjar_path = resource_srcjar_path |
547 | 564 |
548 generate_constant_ids = true | 565 generate_constant_ids = true |
549 } | 566 } |
550 | 567 |
| 568 java_cpp_template("${target_name}__native_libraries_java") { |
| 569 package_name = "org/chromium/base/library_loader" |
| 570 sources = [ |
| 571 "//base/android/java/templates/NativeLibraries.template", |
| 572 ] |
| 573 inputs = [ |
| 574 build_config, |
| 575 ] |
| 576 |
| 577 defines = [ |
| 578 "NATIVE_LIBRARIES_LIST=" + |
| 579 "@FileArg($_rebased_build_config:native:java_libraries_list)", |
| 580 "NATIVE_LIBRARIES_VERSION_NUMBER=\"$_native_lib_version_name\"", |
| 581 ] |
| 582 if (_use_chromium_linker) { |
| 583 defines += ["ENABLED_CHROMIUM_LINKER"] |
| 584 } |
| 585 if (_load_library_from_apk) { |
| 586 defines += ["ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE"] |
| 587 } |
| 588 if (_enable_chromium_linker_tests) { |
| 589 defines += ["ENABLE_CHROMIUM_LINKER_TESTS"] |
| 590 } |
| 591 } |
| 592 _srcjar_deps += [ ":${target_name}__native_libraries_java" ] |
| 593 |
551 rebased_build_config = rebase_path(build_config, root_build_dir) | 594 rebased_build_config = rebase_path(build_config, root_build_dir) |
552 | 595 |
553 final_deps += [":${target_name}__java"] | 596 final_deps += [":${target_name}__java"] |
554 android_java_library("${target_name}__java") { | 597 android_java_library("${target_name}__java") { |
555 java_files = invoker.java_files | 598 java_files = invoker.java_files |
| 599 srcjar_deps = _srcjar_deps |
556 dex_path = base_path + ".dex.jar" | 600 dex_path = base_path + ".dex.jar" |
557 } | 601 } |
558 | 602 |
559 final_deps += [":${target_name}__final_dex"] | 603 final_deps += [":${target_name}__final_dex"] |
560 dex("${target_name}__final_dex") { | 604 dex("${target_name}__final_dex") { |
561 sources = [jar_path] | 605 sources = [jar_path] |
562 inputs = [build_config] | 606 inputs = [build_config] |
563 output = final_dex_path | 607 output = final_dex_path |
564 dex_arg_key = "${rebased_build_config}:apk_dex:dependency_dex_files" | 608 dex_arg_key = "${rebased_build_config}:apk_dex:dependency_dex_files" |
565 args = ["--inputs=@FileArg($dex_arg_key)"] | 609 args = ["--inputs=@FileArg($dex_arg_key)"] |
566 } | 610 } |
567 | 611 |
| 612 if (_native_libs != []) { |
| 613 copy_ex("${target_name}__prepare_native") { |
| 614 clear_dir = true |
| 615 inputs = [build_config] |
| 616 dest = "$_native_libs_dir/$android_app_abi" |
| 617 args = [ |
| 618 "--files=@FileArg(${rebased_build_config}:native:libraries)", |
| 619 ] |
| 620 if (is_debug) { |
| 621 rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir) |
| 622 args += [ |
| 623 "--files=[\"$rebased_gdbserver\"]" |
| 624 ] |
| 625 } |
| 626 } |
| 627 } |
| 628 |
568 final_deps += [":${target_name}__create"] | 629 final_deps += [":${target_name}__create"] |
569 create_apk("${target_name}__create") { | 630 create_apk("${target_name}__create") { |
570 apk_path = invoker.final_apk_path | 631 apk_path = invoker.final_apk_path |
571 android_manifest = invoker.android_manifest | 632 android_manifest = invoker.android_manifest |
572 resources_zip = all_resources_zip_path | 633 resources_zip = all_resources_zip_path |
573 dex_path = final_dex_path | 634 dex_path = final_dex_path |
574 | 635 |
575 keystore_name = _keystore_name | 636 keystore_name = _keystore_name |
576 keystore_path = _keystore_path | 637 keystore_path = _keystore_path |
577 keystore_password = _keystore_password | 638 keystore_password = _keystore_password |
578 | 639 |
579 # TODO: native libs | 640 if (_native_libs != []) { |
| 641 native_libs_dir = _native_libs_dir |
| 642 deps = [":${_template_name}__prepare_native"] |
| 643 } |
580 } | 644 } |
581 | 645 |
582 group(target_name) { | 646 group(target_name) { |
583 deps = final_deps | 647 deps = final_deps |
584 } | 648 } |
585 } | 649 } |
586 | 650 |
587 | 651 |
588 # Declare an Android gtest apk | 652 # Declare an Android gtest apk |
589 # | 653 # |
(...skipping 20 matching lines...) Expand all Loading... |
610 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv
ity.java" | 674 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv
ity.java" |
611 ] | 675 ] |
612 android_manifest = "//testing/android/java/AndroidManifest.xml" | 676 android_manifest = "//testing/android/java/AndroidManifest.xml" |
613 unittests_outputs = get_target_outputs(invoker.unittests_dep) | 677 unittests_outputs = get_target_outputs(invoker.unittests_dep) |
614 native_libs = [unittests_outputs[0]] | 678 native_libs = [unittests_outputs[0]] |
615 if (defined(invoker.deps)) { | 679 if (defined(invoker.deps)) { |
616 deps = invoker.deps | 680 deps = invoker.deps |
617 } | 681 } |
618 } | 682 } |
619 } | 683 } |
OLD | NEW |