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/sanitizers/sanitizers.gni") | 6 import("//build/config/sanitizers/sanitizers.gni") |
7 import("//build/config/zip.gni") | 7 import("//build/config/zip.gni") |
8 import("//third_party/ijar/ijar.gni") | 8 import("//third_party/ijar/ijar.gni") |
9 | 9 |
10 assert(is_android) | 10 assert(is_android) |
11 | 11 |
12 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) | 12 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) |
13 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir) | 13 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir) |
14 rebased_android_sdk_build_tools = | 14 rebased_android_sdk_build_tools = |
15 rebase_path(android_sdk_build_tools, root_build_dir) | 15 rebase_path(android_sdk_build_tools, root_build_dir) |
16 | 16 |
17 android_sdk_jar = "$android_sdk/android.jar" | 17 android_sdk_jar = "$android_sdk/android.jar" |
18 rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir) | 18 rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir) |
19 android_aapt_path = "$rebased_android_sdk_build_tools/aapt" | 19 android_default_aapt_path = "$rebased_android_sdk_build_tools/aapt" |
20 | 20 |
21 android_configuration_name = "Release" | 21 android_configuration_name = "Release" |
22 if (is_debug) { | 22 if (is_debug) { |
23 android_configuration_name = "Debug" | 23 android_configuration_name = "Debug" |
24 } | 24 } |
25 | 25 |
26 template("android_lint") { | 26 template("android_lint") { |
27 set_sources_assignment_filter([]) | 27 set_sources_assignment_filter([]) |
28 | 28 |
29 jar_path = invoker.jar_path | 29 jar_path = invoker.jar_path |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 [ | 82 [ |
83 "deps", | 83 "deps", |
84 "data_deps", | 84 "data_deps", |
85 "public_deps", | 85 "public_deps", |
86 "testonly", | 86 "testonly", |
87 ]) | 87 ]) |
88 script = "//build/android/gyp/proguard.py" | 88 script = "//build/android/gyp/proguard.py" |
89 _proguard_jar_path = "//third_party/proguard/lib/proguard.jar" | 89 _proguard_jar_path = "//third_party/proguard/lib/proguard.jar" |
90 _output_jar_path = invoker.output_jar_path | 90 _output_jar_path = invoker.output_jar_path |
91 inputs = [ | 91 inputs = [ |
92 android_sdk_jar, | |
93 _proguard_jar_path, | 92 _proguard_jar_path, |
94 ] | 93 ] |
| 94 if (defined(invoker.alternative_android_sdk_jar)) { |
| 95 inputs += [ invoker.alternative_android_sdk_jar ] |
| 96 _rebased_android_sdk_jar = |
| 97 rebase_path(invoker.alternative_android_sdk_jar) |
| 98 } else { |
| 99 inputs += [ android_sdk_jar ] |
| 100 _rebased_android_sdk_jar = rebased_android_sdk_jar |
| 101 } |
95 if (defined(invoker.inputs)) { | 102 if (defined(invoker.inputs)) { |
96 inputs += invoker.inputs | 103 inputs += invoker.inputs |
97 } | 104 } |
98 depfile = "${target_gen_dir}/${target_name}.d" | 105 depfile = "${target_gen_dir}/${target_name}.d" |
99 outputs = [ | 106 outputs = [ |
100 depfile, | 107 depfile, |
101 _output_jar_path, | 108 _output_jar_path, |
102 "$_output_jar_path.dump", | 109 "$_output_jar_path.dump", |
103 "$_output_jar_path.seeds", | 110 "$_output_jar_path.seeds", |
104 "$_output_jar_path.mapping", | 111 "$_output_jar_path.mapping", |
105 "$_output_jar_path.usage", | 112 "$_output_jar_path.usage", |
106 ] | 113 ] |
107 args = [ | 114 args = [ |
108 "--depfile", | 115 "--depfile", |
109 rebase_path(depfile, root_build_dir), | 116 rebase_path(depfile, root_build_dir), |
110 "--proguard-path", | 117 "--proguard-path", |
111 rebase_path(_proguard_jar_path, root_build_dir), | 118 rebase_path(_proguard_jar_path, root_build_dir), |
112 "--output-path", | 119 "--output-path", |
113 rebase_path(_output_jar_path, root_build_dir), | 120 rebase_path(_output_jar_path, root_build_dir), |
114 "--classpath", | 121 "--classpath", |
115 rebased_android_sdk_jar, | 122 _rebased_android_sdk_jar, |
116 ] | 123 ] |
117 if (defined(invoker.args)) { | 124 if (defined(invoker.args)) { |
118 args += invoker.args | 125 args += invoker.args |
119 } | 126 } |
120 } | 127 } |
121 } | 128 } |
122 | 129 |
123 template("findbugs") { | 130 template("findbugs") { |
124 jar_path = invoker.jar_path | 131 jar_path = invoker.jar_path |
125 | 132 |
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
861 _base_apk_path = _base_path + ".apk_intermediates" | 868 _base_apk_path = _base_path + ".apk_intermediates" |
862 | 869 |
863 _resource_packaged_apk_path = _base_apk_path + ".ap_" | 870 _resource_packaged_apk_path = _base_apk_path + ".ap_" |
864 _incremental_resource_packaged_apk_path = _base_apk_path + "_incremental.ap_" | 871 _incremental_resource_packaged_apk_path = _base_apk_path + "_incremental.ap_" |
865 _packaged_apk_path = _base_apk_path + ".unfinished.apk" | 872 _packaged_apk_path = _base_apk_path + ".unfinished.apk" |
866 _incremental_packaged_apk_path = | 873 _incremental_packaged_apk_path = |
867 _base_apk_path + "_incremental.unfinished.apk" | 874 _base_apk_path + "_incremental.unfinished.apk" |
868 _shared_resources = | 875 _shared_resources = |
869 defined(invoker.shared_resources) && invoker.shared_resources | 876 defined(invoker.shared_resources) && invoker.shared_resources |
870 assert(_shared_resources || true) # Mark as used. | 877 assert(_shared_resources || true) # Mark as used. |
| 878 _app_as_shared_lib = |
| 879 defined(invoker.app_as_shared_lib) && invoker.app_as_shared_lib |
| 880 assert(_app_as_shared_lib || true) # Mark as used. |
| 881 assert(!(_shared_resources && _app_as_shared_lib)) |
871 | 882 |
872 _keystore_path = invoker.keystore_path | 883 _keystore_path = invoker.keystore_path |
873 _keystore_name = invoker.keystore_name | 884 _keystore_name = invoker.keystore_name |
874 _keystore_password = invoker.keystore_password | 885 _keystore_password = invoker.keystore_password |
875 | 886 |
876 _split_densities = [] | 887 _split_densities = [] |
877 if (defined(invoker.create_density_splits) && invoker.create_density_splits) { | 888 if (defined(invoker.create_density_splits) && invoker.create_density_splits) { |
878 _split_densities = [ | 889 _split_densities = [ |
879 "hdpi", | 890 "hdpi", |
880 "xhdpi", | 891 "xhdpi", |
(...skipping 18 matching lines...) Expand all Loading... |
899 invoker.android_manifest, | 910 invoker.android_manifest, |
900 ] | 911 ] |
901 if (defined(_resources_zip)) { | 912 if (defined(_resources_zip)) { |
902 inputs += [ _resources_zip ] | 913 inputs += [ _resources_zip ] |
903 } | 914 } |
904 outputs = [ | 915 outputs = [ |
905 depfile, | 916 depfile, |
906 invoker.resource_packaged_apk_path, | 917 invoker.resource_packaged_apk_path, |
907 ] | 918 ] |
908 | 919 |
| 920 if (defined(invoker.android_aapt_path)) { |
| 921 _android_aapt_path = invoker.android_aapt_path |
| 922 } else { |
| 923 _android_aapt_path = android_default_aapt_path |
| 924 } |
| 925 |
909 args = [ | 926 args = [ |
910 "--depfile", | 927 "--depfile", |
911 rebase_path(depfile, root_build_dir), | 928 rebase_path(depfile, root_build_dir), |
912 "--android-sdk", | 929 "--android-sdk", |
913 rebased_android_sdk, | 930 rebased_android_sdk, |
914 "--aapt-path", | 931 "--aapt-path", |
915 android_aapt_path, | 932 _android_aapt_path, |
916 "--configuration-name=$android_configuration_name", | 933 "--configuration-name=$android_configuration_name", |
917 "--android-manifest", | 934 "--android-manifest", |
918 rebase_path(invoker.android_manifest, root_build_dir), | 935 rebase_path(invoker.android_manifest, root_build_dir), |
919 "--version-code", | 936 "--version-code", |
920 _version_code, | 937 _version_code, |
921 "--version-name", | 938 "--version-name", |
922 _version_name, | 939 _version_name, |
923 "--apk-path", | 940 "--apk-path", |
924 rebase_path(invoker.resource_packaged_apk_path, root_build_dir), | 941 rebase_path(invoker.resource_packaged_apk_path, root_build_dir), |
925 ] | 942 ] |
926 | 943 |
927 if (defined(_resources_zip)) { | 944 if (defined(_resources_zip)) { |
928 args += [ | 945 args += [ |
929 "--resource-zips", | 946 "--resource-zips", |
930 rebase_path(_resources_zip, root_build_dir), | 947 rebase_path(_resources_zip, root_build_dir), |
931 ] | 948 ] |
932 } | 949 } |
933 if (_shared_resources) { | 950 if (_shared_resources) { |
934 args += [ "--shared-resources" ] | 951 args += [ "--shared-resources" ] |
935 } | 952 } |
| 953 if (_app_as_shared_lib) { |
| 954 args += [ "--app-as-shared-lib" ] |
| 955 } |
936 if (_split_densities != []) { | 956 if (_split_densities != []) { |
937 args += [ "--create-density-splits" ] | 957 args += [ "--create-density-splits" ] |
938 foreach(_density, _split_densities) { | 958 foreach(_density, _split_densities) { |
939 outputs += [ "${invoker.resource_packaged_apk_path}_${_density}" ] | 959 outputs += [ "${invoker.resource_packaged_apk_path}_${_density}" ] |
940 } | 960 } |
941 } | 961 } |
942 if (_split_languages != []) { | 962 if (_split_languages != []) { |
943 args += [ "--language-splits=$_split_languages" ] | 963 args += [ "--language-splits=$_split_languages" ] |
944 foreach(_language, _split_languages) { | 964 foreach(_language, _split_languages) { |
945 outputs += [ "${invoker.resource_packaged_apk_path}_${_language}" ] | 965 outputs += [ "${invoker.resource_packaged_apk_path}_${_language}" ] |
946 } | 966 } |
947 } | 967 } |
948 if (defined(invoker.extensions_to_not_compress)) { | 968 if (defined(invoker.extensions_to_not_compress)) { |
949 args += [ | 969 args += [ |
950 "--no-compress", | 970 "--no-compress", |
951 invoker.extensions_to_not_compress, | 971 invoker.extensions_to_not_compress, |
952 ] | 972 ] |
953 } | 973 } |
954 } | 974 } |
955 } | 975 } |
956 | 976 |
957 _package_resources_target_name = "${target_name}__package_resources" | 977 _package_resources_target_name = "${target_name}__package_resources" |
958 package_resources_helper(_package_resources_target_name) { | 978 package_resources_helper(_package_resources_target_name) { |
959 forward_variables_from(invoker, [ "extensions_to_not_compress" ]) | 979 forward_variables_from(invoker, |
| 980 [ |
| 981 "android_aapt_path", |
| 982 "extensions_to_not_compress", |
| 983 ]) |
960 deps = _deps | 984 deps = _deps |
961 android_manifest = _android_manifest | 985 android_manifest = _android_manifest |
962 resource_packaged_apk_path = _resource_packaged_apk_path | 986 resource_packaged_apk_path = _resource_packaged_apk_path |
963 } | 987 } |
964 | 988 |
965 _generate_incremental_manifest_target_name = | 989 _generate_incremental_manifest_target_name = |
966 "${target_name}_incremental_generate_manifest" | 990 "${target_name}_incremental_generate_manifest" |
967 _incremental_android_manifest = | 991 _incremental_android_manifest = |
968 get_label_info(_generate_incremental_manifest_target_name, | 992 get_label_info(_generate_incremental_manifest_target_name, |
969 "target_gen_dir") + "/AndroidManifest.xml" | 993 "target_gen_dir") + "/AndroidManifest.xml" |
(...skipping 22 matching lines...) Expand all Loading... |
992 args += [ "--disable-isolated-processes" ] | 1016 args += [ "--disable-isolated-processes" ] |
993 } | 1017 } |
994 } | 1018 } |
995 | 1019 |
996 _incremental_package_resources_target_name = | 1020 _incremental_package_resources_target_name = |
997 "${target_name}_incremental__package_resources" | 1021 "${target_name}_incremental__package_resources" |
998 | 1022 |
999 # TODO(agrieve): See if we can speed up this step by swapping the manifest | 1023 # TODO(agrieve): See if we can speed up this step by swapping the manifest |
1000 # from the result of the main package_resources step. | 1024 # from the result of the main package_resources step. |
1001 package_resources_helper(_incremental_package_resources_target_name) { | 1025 package_resources_helper(_incremental_package_resources_target_name) { |
1002 forward_variables_from(invoker, [ "extensions_to_not_compress" ]) | 1026 forward_variables_from(invoker, |
| 1027 [ |
| 1028 "android_aapt_path", |
| 1029 "extensions_to_not_compress", |
| 1030 ]) |
1003 deps = | 1031 deps = |
1004 _incremental_deps + [ ":$_generate_incremental_manifest_target_name" ] | 1032 _incremental_deps + [ ":$_generate_incremental_manifest_target_name" ] |
1005 android_manifest = _incremental_android_manifest | 1033 android_manifest = _incremental_android_manifest |
1006 resource_packaged_apk_path = _incremental_resource_packaged_apk_path | 1034 resource_packaged_apk_path = _incremental_resource_packaged_apk_path |
1007 } | 1035 } |
1008 | 1036 |
1009 package_target = "${target_name}__package" | 1037 package_target = "${target_name}__package" |
1010 package_apk(package_target) { | 1038 package_apk(package_target) { |
1011 forward_variables_from(invoker, | 1039 forward_variables_from(invoker, |
1012 [ | 1040 [ |
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1728 sources += invoker.generated_resource_files | 1756 sources += invoker.generated_resource_files |
1729 } | 1757 } |
1730 | 1758 |
1731 inputs = [ | 1759 inputs = [ |
1732 build_config, | 1760 build_config, |
1733 android_manifest, | 1761 android_manifest, |
1734 ] | 1762 ] |
1735 | 1763 |
1736 _rebased_all_resource_dirs = rebase_path(_all_resource_dirs, root_build_dir) | 1764 _rebased_all_resource_dirs = rebase_path(_all_resource_dirs, root_build_dir) |
1737 rebase_build_config = rebase_path(build_config, root_build_dir) | 1765 rebase_build_config = rebase_path(build_config, root_build_dir) |
| 1766 |
| 1767 if (defined(invoker.android_aapt_path)) { |
| 1768 _android_aapt_path = invoker.android_aapt_path |
| 1769 } else { |
| 1770 _android_aapt_path = android_default_aapt_path |
| 1771 } |
| 1772 |
1738 args = [ | 1773 args = [ |
1739 "--depfile", | 1774 "--depfile", |
1740 rebase_path(depfile, root_build_dir), | 1775 rebase_path(depfile, root_build_dir), |
1741 "--android-sdk", | 1776 "--android-sdk", |
1742 rebase_path(android_sdk, root_build_dir), | 1777 rebase_path(android_sdk, root_build_dir), |
1743 "--aapt-path", | 1778 "--aapt-path", |
1744 android_aapt_path, | 1779 _android_aapt_path, |
1745 "--android-manifest", | 1780 "--android-manifest", |
1746 rebase_path(android_manifest, root_build_dir), | 1781 rebase_path(android_manifest, root_build_dir), |
1747 "--resource-dirs=$_rebased_all_resource_dirs", | 1782 "--resource-dirs=$_rebased_all_resource_dirs", |
1748 "--srcjar-out", | 1783 "--srcjar-out", |
1749 rebase_path(srcjar_path, root_build_dir), | 1784 rebase_path(srcjar_path, root_build_dir), |
1750 "--resource-zip-out", | 1785 "--resource-zip-out", |
1751 rebase_path(zip_path, root_build_dir), | 1786 rebase_path(zip_path, root_build_dir), |
1752 "--r-text-out", | 1787 "--r-text-out", |
1753 rebase_path(r_text_path, root_build_dir), | 1788 rebase_path(r_text_path, root_build_dir), |
1754 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc
y_zips)", | 1789 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc
y_zips)", |
(...skipping 13 matching lines...) Expand all Loading... |
1768 } | 1803 } |
1769 | 1804 |
1770 if (defined(invoker.v14_skip) && invoker.v14_skip) { | 1805 if (defined(invoker.v14_skip) && invoker.v14_skip) { |
1771 args += [ "--v14-skip" ] | 1806 args += [ "--v14-skip" ] |
1772 } | 1807 } |
1773 | 1808 |
1774 if (defined(invoker.shared_resources) && invoker.shared_resources) { | 1809 if (defined(invoker.shared_resources) && invoker.shared_resources) { |
1775 args += [ "--shared-resources" ] | 1810 args += [ "--shared-resources" ] |
1776 } | 1811 } |
1777 | 1812 |
| 1813 if (defined(invoker.app_as_shared_lib) && invoker.app_as_shared_lib) { |
| 1814 args += [ "--app-as-shared-lib" ] |
| 1815 } |
| 1816 |
1778 if (defined(invoker.include_all_resources) && | 1817 if (defined(invoker.include_all_resources) && |
1779 invoker.include_all_resources) { | 1818 invoker.include_all_resources) { |
1780 args += [ "--include-all-resources" ] | 1819 args += [ "--include-all-resources" ] |
1781 } | 1820 } |
1782 | 1821 |
1783 if (defined(invoker.all_resources_zip_path)) { | 1822 if (defined(invoker.all_resources_zip_path)) { |
1784 all_resources_zip = invoker.all_resources_zip_path | 1823 all_resources_zip = invoker.all_resources_zip_path |
1785 outputs += [ all_resources_zip ] | 1824 outputs += [ all_resources_zip ] |
1786 args += [ | 1825 args += [ |
1787 "--all-resources-zip-out", | 1826 "--all-resources-zip-out", |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2017 ] | 2056 ] |
2018 args = [ | 2057 args = [ |
2019 "--depfile", | 2058 "--depfile", |
2020 rebase_path(depfile, root_build_dir), | 2059 rebase_path(depfile, root_build_dir), |
2021 "--script-output-path", | 2060 "--script-output-path", |
2022 rebase_path(generated_script, root_build_dir), | 2061 rebase_path(generated_script, root_build_dir), |
2023 ] | 2062 ] |
2024 args += test_runner_args | 2063 args += test_runner_args |
2025 } | 2064 } |
2026 } | 2065 } |
OLD | NEW |