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

Side by Side Diff: build/config/android/rules.gni

Issue 507523002: Add content_shell_apk target (and a bunch of its dependencies) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 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 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 if (defined(invoker.jar_file)) { 111 if (defined(invoker.jar_file)) {
112 jar_file = invoker.jar_file 112 jar_file = invoker.jar_file
113 } else { 113 } else {
114 jar_file = android_sdk_jar 114 jar_file = android_sdk_jar
115 } 115 }
116 116
117 jni_package = invoker.jni_package 117 jni_package = invoker.jni_package
118 base_output_dir = "${root_gen_dir}/${target_name}/${jni_package}" 118 base_output_dir = "${root_gen_dir}/${target_name}/${jni_package}"
119 jni_output_dir = "${base_output_dir}/jni" 119 jni_output_dir = "${base_output_dir}/jni"
120 120
121 jni_generator_include = 121 jni_generator_include = "//base/android/jni_generator/jni_generator_helper.h"
122 rebase_path("//base/android/jni_generator/jni_generator_helper.h",
123 root_build_dir)
124 122
125 # TODO(cjhopman): make jni_generator.py support generating jni for multiple 123 # TODO(cjhopman): make jni_generator.py support generating jni for multiple
126 # .class files from a .jar. 124 # .class files from a .jar.
127 jni_actions = [] 125 jni_actions = []
128 foreach(class, invoker.classes) { 126 foreach(class, invoker.classes) {
129 classname_list = process_file_template( 127 _classname_list = []
newt (away) 2014/09/02 23:41:30 odd... but OK
128 _classname_list = process_file_template(
130 [class], "{{source_name_part}}") 129 [class], "{{source_name_part}}")
131 classname = classname_list[0] 130 classname = _classname_list[0]
132 jni_target_name = "${target_name}__jni_${classname}" 131 jni_target_name = "${target_name}__jni_${classname}"
133 jni_actions += [ ":$jni_target_name" ] 132 jni_actions += [ ":$jni_target_name" ]
134 action(jni_target_name) { 133 action(jni_target_name) {
135 depfile = "$target_gen_dir/$target_name.d" 134 depfile = "$target_gen_dir/$target_name.d"
136 script = "//base/android/jni_generator/jni_generator.py" 135 script = "//base/android/jni_generator/jni_generator.py"
137 sources = [ 136 sources = [
138 jni_generator_include, 137 jni_generator_include,
139 jar_file, 138 jar_file,
140 ] 139 ]
141 outputs = [ 140 outputs = [
142 depfile, 141 depfile,
143 "${jni_output_dir}/${classname}_jni.h" 142 "${jni_output_dir}/${classname}_jni.h"
144 ] 143 ]
145 144
146 args = [ 145 args = [
147 "--depfile", rebase_path(depfile, root_build_dir), 146 "--depfile", rebase_path(depfile, root_build_dir),
148 "--jar_file", rebase_path(jar_file, root_build_dir), 147 "--jar_file", rebase_path(jar_file, root_build_dir),
149 "--input_file", class, 148 "--input_file", class,
150 "--optimize_generation=1", 149 "--optimize_generation=1",
151 "--ptr_type=long", 150 "--ptr_type=long",
152 "--output_dir", rebase_path(jni_output_dir, root_build_dir), 151 "--output_dir", rebase_path(jni_output_dir, root_build_dir),
153 "--includes", rebase_path(jni_generator_include, "//"), 152 "--includes", rebase_path(jni_generator_include, root_build_dir),
154 ] 153 ]
155 } 154 }
156 } 155 }
157 156
158 config("jni_includes_${target_name}") { 157 config("jni_includes_${target_name}") {
159 include_dirs = [ base_output_dir ] 158 include_dirs = [ base_output_dir ]
160 } 159 }
161 160
162 group(target_name) { 161 group(target_name) {
163 deps = jni_actions 162 deps = jni_actions
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 # false. 285 # false.
287 # 286 #
288 # Example 287 # Example
289 # android_resources("foo_resources") { 288 # android_resources("foo_resources") {
290 # deps = [":foo_strings_grd"] 289 # deps = [":foo_strings_grd"]
291 # resource_dirs = ["res"] 290 # resource_dirs = ["res"]
292 # custom_package = "org.chromium.foo" 291 # custom_package = "org.chromium.foo"
293 # } 292 # }
294 template("android_resources") { 293 template("android_resources") {
295 assert(defined(invoker.resource_dirs)) 294 assert(defined(invoker.resource_dirs))
295 assert(defined(invoker.android_manifest) || defined(invoker.custom_package))
296 296
297 base_path = "$target_gen_dir/$target_name" 297 base_path = "$target_gen_dir/$target_name"
298 zip_path = base_path + ".resources.zip" 298 zip_path = base_path + ".resources.zip"
299 srcjar_path = base_path + ".srcjar" 299 srcjar_path = base_path + ".srcjar"
300 build_config = base_path + ".build_config" 300 build_config = base_path + ".build_config"
301 301
302 write_build_config("${target_name}__build_config") { 302 write_build_config("${target_name}__build_config") {
303 type = "android_resources" 303 type = "android_resources"
304 resources_zip = zip_path 304 resources_zip = zip_path
305 srcjar = srcjar_path 305 srcjar = srcjar_path
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 } 467 }
468 build_config = _build_config 468 build_config = _build_config
469 jar_path = _jar_path 469 jar_path = _jar_path
470 dex_path = _dex_path 470 dex_path = _dex_path
471 471
472 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { 472 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
473 proguard_preprocess = true 473 proguard_preprocess = true
474 proguard_config = invoker.proguard_config 474 proguard_config = invoker.proguard_config
475 } 475 }
476 476
477 jar_excluded_patterns = [
478 "*/R.class", "*/R##*.class",
479 "*/Manifest.class", "*/Manifest##*.class",
480 ]
477 if (defined(invoker.jar_excluded_patterns)) { 481 if (defined(invoker.jar_excluded_patterns)) {
478 jar_excluded_patterns = invoker.jar_excluded_patterns 482 jar_excluded_patterns += invoker.jar_excluded_patterns
479 } 483 }
480 484
481 if (defined(invoker.srcjar_deps)) { 485 if (defined(invoker.srcjar_deps)) {
482 srcjar_deps = invoker.srcjar_deps 486 srcjar_deps = invoker.srcjar_deps
483 } 487 }
484 } 488 }
485 } 489 }
486 490
487 491
488 # Declare an Android library target for a prebuilt jar 492 # Declare an Android library target for a prebuilt jar
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 # ":foo_resources" 596 # ":foo_resources"
593 # ] 597 # ]
594 # srcjar_deps = [ 598 # srcjar_deps = [
595 # ":foo_generated_enum" 599 # ":foo_generated_enum"
596 # ] 600 # ]
597 # native_libs = [ 601 # native_libs = [
598 # native_lib_path 602 # native_lib_path
599 # ] 603 # ]
600 # } 604 # }
601 template("android_apk") { 605 template("android_apk") {
606 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name))
602 gen_dir = "$target_gen_dir/$target_name" 607 gen_dir = "$target_gen_dir/$target_name"
603 base_path = "$gen_dir/$target_name" 608 base_path = "$gen_dir/$target_name"
604 build_config = "$base_path.build_config" 609 build_config = "$base_path.build_config"
605 resources_zip_path = "$base_path.resources.zip" 610 resources_zip_path = "$base_path.resources.zip"
606 all_resources_zip_path = "$base_path.resources.all.zip" 611 all_resources_zip_path = "$base_path.resources.all.zip"
607 resource_srcjar_path = "$base_path.resources.srcjar" 612 resource_srcjar_path = "$base_path.resources.srcjar"
608 jar_path = "$base_path.jar" 613 jar_path = "$base_path.jar"
609 final_dex_path = "$gen_dir/classes.dex" 614 final_dex_path = "$gen_dir/classes.dex"
610 _template_name = target_name 615 _template_name = target_name
616 _final_apk_path = ""
617 if (defined(invoker.final_apk_path)) {
618 _final_apk_path = invoker.final_apk_path
619 } else if (defined(invoker.apk_name)) {
620 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk"
621 }
611 622
612 _native_lib_version_name = ""
613
614 _use_chromium_linker = false
615 _enable_chromium_linker_tests = false
616 _load_library_from_apk = false
617
618 _native_libs_dir = base_path + "/libs"
619 _native_libs = [] 623 _native_libs = []
620 if (defined(invoker.native_libs)) { 624 if (defined(invoker.native_libs)) {
621 _native_libs = invoker.native_libs 625 _native_libs = invoker.native_libs
626 _native_libs_dir = base_path + "/libs"
622 } 627 }
623 628
624 _keystore_path = android_default_keystore_path 629 _keystore_path = android_default_keystore_path
625 _keystore_name = android_default_keystore_name 630 _keystore_name = android_default_keystore_name
626 _keystore_password = android_default_keystore_password 631 _keystore_password = android_default_keystore_password
627 632
628 if (defined(invoker.keystore_path)) { 633 if (defined(invoker.keystore_path)) {
629 _keystore_path = invoker.keystore_path 634 _keystore_path = invoker.keystore_path
630 _keystore_name = invoker.keystore_name 635 _keystore_name = invoker.keystore_name
631 _keystore_password = invoker.keystore_password 636 _keystore_password = invoker.keystore_password
632 } 637 }
633 638
634 _srcjar_deps = [] 639 _srcjar_deps = []
635 if (defined(invoker.srcjar_deps)) { 640 if (defined(invoker.srcjar_deps)) {
636 _srcjar_deps += invoker.srcjar_deps 641 _srcjar_deps += invoker.srcjar_deps
637 } 642 }
638 643
639 _rebased_build_config = rebase_path(build_config, root_build_dir) 644 _rebased_build_config = rebase_path(build_config, root_build_dir)
640 645
641 write_build_config("${target_name}__build_config") { 646 write_build_config("${_template_name}__build_config") {
642 type = "android_apk" 647 type = "android_apk"
643 srcjar = resource_srcjar_path 648 srcjar = resource_srcjar_path
644 dex_path = final_dex_path 649 dex_path = final_dex_path
645 resources_zip = resources_zip_path 650 resources_zip = resources_zip_path
646 651
647 if (defined(invoker.deps)) { 652 if (defined(invoker.deps)) {
648 deps = invoker.deps 653 deps = invoker.deps
649 } 654 }
650 655
651 native_libs = _native_libs 656 native_libs = _native_libs
652 } 657 }
653 658
654 final_deps = [] 659 final_deps = []
655 660
656 final_deps += [":${target_name}__process_resources"] 661 final_deps += [":${_template_name}__process_resources"]
657 process_resources("${target_name}__process_resources") { 662 process_resources("${_template_name}__process_resources") {
658 android_manifest = invoker.android_manifest 663 android_manifest = invoker.android_manifest
659 664
660 resource_dirs = ["//build/android/ant/empty/res"] 665 resource_dirs = ["//build/android/ant/empty/res"]
661 zip_path = resources_zip_path 666 zip_path = resources_zip_path
662 srcjar_path = resource_srcjar_path 667 srcjar_path = resource_srcjar_path
663 668
664 generate_constant_ids = true 669 generate_constant_ids = true
665 } 670 }
666 671
667 java_cpp_template("${target_name}__native_libraries_java") { 672 if (_native_libs != []) {
668 package_name = "org/chromium/base/library_loader" 673 _use_chromium_linker = false
669 sources = [ 674 _enable_chromium_linker_tests = false
670 "//base/android/java/templates/NativeLibraries.template", 675 _load_library_from_apk = false
671 ] 676 _native_lib_version_name = ""
672 inputs = [
673 build_config,
674 ]
675 677
676 defines = [ 678
677 "NATIVE_LIBRARIES_LIST=" + 679 java_cpp_template("${_template_name}__native_libraries_java") {
678 "@FileArg($_rebased_build_config:native:java_libraries_list)", 680 package_name = "org/chromium/base/library_loader"
679 "NATIVE_LIBRARIES_VERSION_NUMBER=\"$_native_lib_version_name\"", 681 sources = [
680 ] 682 "//base/android/java/templates/NativeLibraries.template",
681 if (_use_chromium_linker) { 683 ]
682 defines += ["ENABLED_CHROMIUM_LINKER"] 684 inputs = [
685 build_config,
686 ]
687
688 defines = [
689 "NATIVE_LIBRARIES_LIST=" +
690 "@FileArg($_rebased_build_config:native:java_libraries_list)",
691 "NATIVE_LIBRARIES_VERSION_NUMBER=\"$_native_lib_version_name\"",
692 ]
693 if (_use_chromium_linker) {
694 defines += ["ENABLED_CHROMIUM_LINKER"]
695 }
696 if (_load_library_from_apk) {
697 defines += ["ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE"]
698 }
699 if (_enable_chromium_linker_tests) {
700 defines += ["ENABLE_CHROMIUM_LINKER_TESTS"]
701 }
683 } 702 }
684 if (_load_library_from_apk) { 703 _srcjar_deps += [ ":${_template_name}__native_libraries_java" ]
685 defines += ["ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE"]
686 }
687 if (_enable_chromium_linker_tests) {
688 defines += ["ENABLE_CHROMIUM_LINKER_TESTS"]
689 }
690 } 704 }
691 _srcjar_deps += [ ":${target_name}__native_libraries_java" ]
692 705
693 rebased_build_config = rebase_path(build_config, root_build_dir) 706 final_deps += [":${_template_name}__java"]
694 707 android_java_library("${_template_name}__java") {
695 final_deps += [":${target_name}__java"]
696 android_java_library("${target_name}__java") {
697 android_manifest = invoker.android_manifest 708 android_manifest = invoker.android_manifest
698 if (defined(invoker.java_files)) { 709 if (defined(invoker.java_files)) {
699 java_files = invoker.java_files 710 java_files = invoker.java_files
700 } else { 711 } else {
701 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir 712 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir
702 } 713 }
703 srcjar_deps = _srcjar_deps 714 srcjar_deps = _srcjar_deps
704 dex_path = base_path + ".dex.jar" 715 dex_path = base_path + ".dex.jar"
705 } 716 }
706 717
707 final_deps += [":${target_name}__final_dex"] 718 final_deps += [":${_template_name}__final_dex"]
708 dex("${target_name}__final_dex") { 719 dex("${_template_name}__final_dex") {
709 sources = [jar_path] 720 sources = [jar_path]
710 inputs = [build_config] 721 inputs = [build_config]
711 output = final_dex_path 722 output = final_dex_path
712 dex_arg_key = "${rebased_build_config}:apk_dex:dependency_dex_files" 723 dex_arg_key = "${_rebased_build_config}:apk_dex:dependency_dex_files"
713 args = ["--inputs=@FileArg($dex_arg_key)"] 724 args = ["--inputs=@FileArg($dex_arg_key)"]
714 } 725 }
715 726
716 if (_native_libs != []) { 727 if (_native_libs != []) {
717 copy_ex("${target_name}__prepare_native") { 728 copy_ex("${_template_name}__prepare_native") {
718 clear_dir = true 729 clear_dir = true
719 inputs = [build_config] 730 inputs = [
731 build_config
732 ]
720 dest = "$_native_libs_dir/$android_app_abi" 733 dest = "$_native_libs_dir/$android_app_abi"
721 args = [ 734 args = [
722 "--files=@FileArg(${rebased_build_config}:native:libraries)", 735 "--files=@FileArg(${_rebased_build_config}:native:libraries)",
723 ] 736 ]
724 if (is_debug) { 737 if (is_debug) {
725 rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir) 738 rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir)
726 args += [ 739 args += [
727 "--files=[\"$rebased_gdbserver\"]" 740 "--files=[\"$rebased_gdbserver\"]"
728 ] 741 ]
729 } 742 }
730 } 743 }
731 } 744 }
732 745
733 final_deps += [":${target_name}__create"] 746 final_deps += [":${_template_name}__create"]
734 create_apk("${target_name}__create") { 747 create_apk("${_template_name}__create") {
735 apk_path = invoker.final_apk_path 748 apk_path = _final_apk_path
736 android_manifest = invoker.android_manifest 749 android_manifest = invoker.android_manifest
737 resources_zip = all_resources_zip_path 750 resources_zip = all_resources_zip_path
738 dex_path = final_dex_path 751 dex_path = final_dex_path
739 752
753 if (defined(invoker.asset_location)) {
754 asset_location = invoker.asset_location
755 }
756
740 keystore_name = _keystore_name 757 keystore_name = _keystore_name
741 keystore_path = _keystore_path 758 keystore_path = _keystore_path
742 keystore_password = _keystore_password 759 keystore_password = _keystore_password
743 760
744 if (_native_libs != []) { 761 if (_native_libs != []) {
745 native_libs_dir = _native_libs_dir 762 native_libs_dir = _native_libs_dir
746 deps = [":${_template_name}__prepare_native"] 763 deps = [":${_template_name}__prepare_native"]
747 } 764 }
748 } 765 }
749 766
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 800
784 test_suite_name = get_label_info(invoker.unittests_dep, "name") 801 test_suite_name = get_label_info(invoker.unittests_dep, "name")
785 802
786 if (defined(invoker.unittests_binary)) { 803 if (defined(invoker.unittests_binary)) {
787 unittests_binary = root_out_dir + "/" + invoker.unittests_binary 804 unittests_binary = root_out_dir + "/" + invoker.unittests_binary
788 } else { 805 } else {
789 unittests_binary = root_out_dir + "/" + test_suite_name 806 unittests_binary = root_out_dir + "/" + test_suite_name
790 } 807 }
791 808
792 android_apk(target_name) { 809 android_apk(target_name) {
793 apk_name = test_suite_name 810 _apk_name = test_suite_name
794 final_apk_path = "$root_build_dir/${apk_name}_apk/${apk_name}-debug.apk" 811 final_apk_path = "$root_build_dir/${_apk_name}_apk/${_apk_name}-debug.apk"
795 java_files = [ 812 java_files = [
796 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv ity.java" 813 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv ity.java"
797 ] 814 ]
798 android_manifest = "//testing/android/java/AndroidManifest.xml" 815 android_manifest = "//testing/android/java/AndroidManifest.xml"
799 unittests_outputs = [ unittests_binary ] 816 unittests_outputs = [ unittests_binary ]
800 native_libs = [unittests_outputs[0]] 817 native_libs = [unittests_outputs[0]]
801 if (defined(invoker.deps)) { 818 if (defined(invoker.deps)) {
802 deps = invoker.deps 819 deps = invoker.deps
803 } 820 }
804 } 821 }
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 "//build/android/gyp/find.py", 883 "//build/android/gyp/find.py",
867 rebase_path([invoker.import_include], root_build_dir), 884 rebase_path([invoker.import_include], root_build_dir),
868 "list lines" 885 "list lines"
869 ) 886 )
870 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir) 887 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir)
871 inputs += _java_files 888 inputs += _java_files
872 } 889 }
873 args += rebase_path(sources, root_build_dir) 890 args += rebase_path(sources, root_build_dir)
874 } 891 }
875 } 892 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698