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

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: Fix PageTransitionTypes.template path 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
« no previous file with comments | « build/config/android/internal_rules.gni ('k') | components/crash/browser/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 = []
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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 # ":foo_resources" 597 # ":foo_resources"
594 # ] 598 # ]
595 # srcjar_deps = [ 599 # srcjar_deps = [
596 # ":foo_generated_enum" 600 # ":foo_generated_enum"
597 # ] 601 # ]
598 # native_libs = [ 602 # native_libs = [
599 # native_lib_path 603 # native_lib_path
600 # ] 604 # ]
601 # } 605 # }
602 template("android_apk") { 606 template("android_apk") {
607 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name))
603 gen_dir = "$target_gen_dir/$target_name" 608 gen_dir = "$target_gen_dir/$target_name"
604 base_path = "$gen_dir/$target_name" 609 base_path = "$gen_dir/$target_name"
605 build_config = "$base_path.build_config" 610 build_config = "$base_path.build_config"
606 resources_zip_path = "$base_path.resources.zip" 611 resources_zip_path = "$base_path.resources.zip"
607 all_resources_zip_path = "$base_path.resources.all.zip" 612 all_resources_zip_path = "$base_path.resources.all.zip"
608 resource_srcjar_path = "$base_path.resources.srcjar" 613 resource_srcjar_path = "$base_path.resources.srcjar"
609 jar_path = "$base_path.jar" 614 jar_path = "$base_path.jar"
610 final_dex_path = "$gen_dir/classes.dex" 615 final_dex_path = "$gen_dir/classes.dex"
611 _template_name = target_name 616 _template_name = target_name
617 _final_apk_path = ""
618 if (defined(invoker.final_apk_path)) {
619 _final_apk_path = invoker.final_apk_path
620 } else if (defined(invoker.apk_name)) {
621 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk"
622 }
612 623
613 _native_lib_version_name = ""
614
615 _use_chromium_linker = false
616 _enable_chromium_linker_tests = false
617 _load_library_from_apk = false
618
619 _native_libs_dir = base_path + "/libs"
620 _native_libs = [] 624 _native_libs = []
621 if (defined(invoker.native_libs)) { 625 if (defined(invoker.native_libs)) {
622 _native_libs = invoker.native_libs 626 _native_libs = invoker.native_libs
627 _native_libs_dir = base_path + "/libs"
623 } 628 }
624 629
625 _keystore_path = android_default_keystore_path 630 _keystore_path = android_default_keystore_path
626 _keystore_name = android_default_keystore_name 631 _keystore_name = android_default_keystore_name
627 _keystore_password = android_default_keystore_password 632 _keystore_password = android_default_keystore_password
628 633
629 if (defined(invoker.keystore_path)) { 634 if (defined(invoker.keystore_path)) {
630 _keystore_path = invoker.keystore_path 635 _keystore_path = invoker.keystore_path
631 _keystore_name = invoker.keystore_name 636 _keystore_name = invoker.keystore_name
632 _keystore_password = invoker.keystore_password 637 _keystore_password = invoker.keystore_password
633 } 638 }
634 639
635 _srcjar_deps = [] 640 _srcjar_deps = []
636 if (defined(invoker.srcjar_deps)) { 641 if (defined(invoker.srcjar_deps)) {
637 _srcjar_deps += invoker.srcjar_deps 642 _srcjar_deps += invoker.srcjar_deps
638 } 643 }
639 644
640 _rebased_build_config = rebase_path(build_config, root_build_dir) 645 _rebased_build_config = rebase_path(build_config, root_build_dir)
641 646
642 write_build_config("${target_name}__build_config") { 647 write_build_config("${_template_name}__build_config") {
643 type = "android_apk" 648 type = "android_apk"
644 srcjar = resource_srcjar_path 649 srcjar = resource_srcjar_path
645 dex_path = final_dex_path 650 dex_path = final_dex_path
646 resources_zip = resources_zip_path 651 resources_zip = resources_zip_path
647 652
648 if (defined(invoker.deps)) { 653 if (defined(invoker.deps)) {
649 deps = invoker.deps 654 deps = invoker.deps
650 } 655 }
651 if (defined(invoker.testonly)) { 656 if (defined(invoker.testonly)) {
652 testonly = invoker.testonly 657 testonly = invoker.testonly
653 } 658 }
654 659
655 native_libs = _native_libs 660 native_libs = _native_libs
656 } 661 }
657 662
658 final_deps = [] 663 final_deps = []
659 664
660 final_deps += [":${target_name}__process_resources"] 665 final_deps += [":${_template_name}__process_resources"]
661 process_resources("${target_name}__process_resources") { 666 process_resources("${_template_name}__process_resources") {
662 android_manifest = invoker.android_manifest 667 android_manifest = invoker.android_manifest
663 668
664 resource_dirs = ["//build/android/ant/empty/res"] 669 resource_dirs = ["//build/android/ant/empty/res"]
665 zip_path = resources_zip_path 670 zip_path = resources_zip_path
666 srcjar_path = resource_srcjar_path 671 srcjar_path = resource_srcjar_path
667 672
668 generate_constant_ids = true 673 generate_constant_ids = true
669 } 674 }
670 675
671 java_cpp_template("${target_name}__native_libraries_java") { 676 if (_native_libs != []) {
672 package_name = "org/chromium/base/library_loader" 677 _use_chromium_linker = false
673 sources = [ 678 _enable_chromium_linker_tests = false
674 "//base/android/java/templates/NativeLibraries.template", 679 _load_library_from_apk = false
675 ] 680 _native_lib_version_name = ""
676 inputs = [
677 build_config,
678 ]
679 681
680 defines = [ 682
681 "NATIVE_LIBRARIES_LIST=" + 683 java_cpp_template("${_template_name}__native_libraries_java") {
682 "@FileArg($_rebased_build_config:native:java_libraries_list)", 684 package_name = "org/chromium/base/library_loader"
683 "NATIVE_LIBRARIES_VERSION_NUMBER=\"$_native_lib_version_name\"", 685 sources = [
684 ] 686 "//base/android/java/templates/NativeLibraries.template",
685 if (_use_chromium_linker) { 687 ]
686 defines += ["ENABLED_CHROMIUM_LINKER"] 688 inputs = [
689 build_config,
690 ]
691
692 defines = [
693 "NATIVE_LIBRARIES_LIST=" +
694 "@FileArg($_rebased_build_config:native:java_libraries_list)",
695 "NATIVE_LIBRARIES_VERSION_NUMBER=\"$_native_lib_version_name\"",
696 ]
697 if (_use_chromium_linker) {
698 defines += ["ENABLED_CHROMIUM_LINKER"]
699 }
700 if (_load_library_from_apk) {
701 defines += ["ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE"]
702 }
703 if (_enable_chromium_linker_tests) {
704 defines += ["ENABLE_CHROMIUM_LINKER_TESTS"]
705 }
687 } 706 }
688 if (_load_library_from_apk) { 707 _srcjar_deps += [ ":${_template_name}__native_libraries_java" ]
689 defines += ["ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE"]
690 }
691 if (_enable_chromium_linker_tests) {
692 defines += ["ENABLE_CHROMIUM_LINKER_TESTS"]
693 }
694 } 708 }
695 _srcjar_deps += [ ":${target_name}__native_libraries_java" ]
696 709
697 rebased_build_config = rebase_path(build_config, root_build_dir) 710 final_deps += [":${_template_name}__java"]
698 711 android_java_library("${_template_name}__java") {
699 final_deps += [":${target_name}__java"]
700 android_java_library("${target_name}__java") {
701 android_manifest = invoker.android_manifest 712 android_manifest = invoker.android_manifest
702 if (defined(invoker.java_files)) { 713 if (defined(invoker.java_files)) {
703 java_files = invoker.java_files 714 java_files = invoker.java_files
704 } else { 715 } else {
705 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir 716 DEPRECATED_java_in_dir = invoker.DEPRECATED_java_in_dir
706 } 717 }
707 srcjar_deps = _srcjar_deps 718 srcjar_deps = _srcjar_deps
708 dex_path = base_path + ".dex.jar" 719 dex_path = base_path + ".dex.jar"
709 } 720 }
710 721
711 final_deps += [":${target_name}__final_dex"] 722 final_deps += [":${_template_name}__final_dex"]
712 dex("${target_name}__final_dex") { 723 dex("${_template_name}__final_dex") {
713 sources = [jar_path] 724 sources = [jar_path]
714 inputs = [build_config] 725 inputs = [build_config]
715 output = final_dex_path 726 output = final_dex_path
716 dex_arg_key = "${rebased_build_config}:apk_dex:dependency_dex_files" 727 dex_arg_key = "${_rebased_build_config}:apk_dex:dependency_dex_files"
717 args = ["--inputs=@FileArg($dex_arg_key)"] 728 args = ["--inputs=@FileArg($dex_arg_key)"]
718 } 729 }
719 730
720 if (_native_libs != []) { 731 if (_native_libs != []) {
721 copy_ex("${target_name}__prepare_native") { 732 copy_ex("${_template_name}__prepare_native") {
722 clear_dir = true 733 clear_dir = true
723 inputs = [build_config] 734 inputs = [
735 build_config
736 ]
724 dest = "$_native_libs_dir/$android_app_abi" 737 dest = "$_native_libs_dir/$android_app_abi"
725 args = [ 738 args = [
726 "--files=@FileArg(${rebased_build_config}:native:libraries)", 739 "--files=@FileArg(${_rebased_build_config}:native:libraries)",
727 ] 740 ]
728 if (is_debug) { 741 if (is_debug) {
729 rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir) 742 rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir)
730 args += [ 743 args += [
731 "--files=[\"$rebased_gdbserver\"]" 744 "--files=[\"$rebased_gdbserver\"]"
732 ] 745 ]
733 } 746 }
734 } 747 }
735 } 748 }
736 749
737 final_deps += [":${target_name}__create"] 750 final_deps += [":${_template_name}__create"]
738 create_apk("${target_name}__create") { 751 create_apk("${_template_name}__create") {
739 apk_path = invoker.final_apk_path 752 apk_path = _final_apk_path
740 android_manifest = invoker.android_manifest 753 android_manifest = invoker.android_manifest
741 resources_zip = all_resources_zip_path 754 resources_zip = all_resources_zip_path
742 dex_path = final_dex_path 755 dex_path = final_dex_path
743 756
757 if (defined(invoker.asset_location)) {
758 asset_location = invoker.asset_location
759 }
760
744 keystore_name = _keystore_name 761 keystore_name = _keystore_name
745 keystore_path = _keystore_path 762 keystore_path = _keystore_path
746 keystore_password = _keystore_password 763 keystore_password = _keystore_password
747 764
748 if (_native_libs != []) { 765 if (_native_libs != []) {
749 native_libs_dir = _native_libs_dir 766 native_libs_dir = _native_libs_dir
750 deps = [":${_template_name}__prepare_native"] 767 deps = [":${_template_name}__prepare_native"]
751 } 768 }
752 } 769 }
753 770
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 804
788 test_suite_name = get_label_info(invoker.unittests_dep, "name") 805 test_suite_name = get_label_info(invoker.unittests_dep, "name")
789 806
790 if (defined(invoker.unittests_binary)) { 807 if (defined(invoker.unittests_binary)) {
791 unittests_binary = root_out_dir + "/" + invoker.unittests_binary 808 unittests_binary = root_out_dir + "/" + invoker.unittests_binary
792 } else { 809 } else {
793 unittests_binary = root_out_dir + "/" + test_suite_name 810 unittests_binary = root_out_dir + "/" + test_suite_name
794 } 811 }
795 812
796 android_apk(target_name) { 813 android_apk(target_name) {
797 apk_name = test_suite_name 814 _apk_name = test_suite_name
798 final_apk_path = "$root_build_dir/${apk_name}_apk/${apk_name}-debug.apk" 815 final_apk_path = "$root_build_dir/${_apk_name}_apk/${_apk_name}-debug.apk"
799 java_files = [ 816 java_files = [
800 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv ity.java" 817 "//testing/android/java/src/org/chromium/native_test/ChromeNativeTestActiv ity.java"
801 ] 818 ]
802 android_manifest = "//testing/android/java/AndroidManifest.xml" 819 android_manifest = "//testing/android/java/AndroidManifest.xml"
803 unittests_outputs = [ unittests_binary ] 820 unittests_outputs = [ unittests_binary ]
804 native_libs = [unittests_outputs[0]] 821 native_libs = [unittests_outputs[0]]
805 if (defined(invoker.deps)) { 822 if (defined(invoker.deps)) {
806 deps = invoker.deps 823 deps = invoker.deps
807 } 824 }
808 testonly = true 825 testonly = true
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
871 "//build/android/gyp/find.py", 888 "//build/android/gyp/find.py",
872 rebase_path([invoker.import_include], root_build_dir), 889 rebase_path([invoker.import_include], root_build_dir),
873 "list lines" 890 "list lines"
874 ) 891 )
875 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir) 892 _java_files = rebase_path(_java_files_build_rel, ".", root_build_dir)
876 inputs += _java_files 893 inputs += _java_files
877 } 894 }
878 args += rebase_path(sources, root_build_dir) 895 args += rebase_path(sources, root_build_dir)
879 } 896 }
880 } 897 }
OLDNEW
« no previous file with comments | « build/config/android/internal_rules.gni ('k') | components/crash/browser/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698