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

Unified Diff: build/config/android/rules.gni

Issue 1291793007: GN(android): Add scripts & runtime logic for installing _managed apks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-managed-install
Patch Set: javadoc & faster managed_install.py when --device specified Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: build/config/android/rules.gni
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 53330d100c5eea7bc34b4ff37067630aaa4edddb..5f6a4f1e14504a58d29992aaaa6222b4bfaa17b6 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -1382,6 +1382,10 @@ template("android_apk") {
[ _final_apk_path ],
"$root_build_dir/test.lib.java/{{source_name_part}}.jar")
_dist_jar_path = _dist_jar_path_list[0]
+ _final_apk_path_no_ext_list =
jbudorick 2015/08/23 02:01:28 Are these only used in the managed_create_script a
agrieve 2015/08/26 00:22:40 It's used at line 1785 as well.
+ process_file_template([ _final_apk_path ],
+ "{{source_dir}}/{{source_name_part}}")
+ _final_apk_path_no_ext = _final_apk_path_no_ext_list[0]
_native_libs = []
@@ -1484,6 +1488,8 @@ template("android_apk") {
defined(invoker.create_abi_split) && invoker.create_abi_split
_create_density_splits =
defined(invoker.create_density_splits) && invoker.create_density_splits
+ _create_language_splits =
+ defined(invoker.language_splits) && invoker.language_splits != []
# Help GN understand that _create_abi_split is not unused (bug in GN).
assert(_create_abi_split || true)
@@ -1715,7 +1721,7 @@ template("android_apk") {
dex_path = final_dex_path
load_library_from_apk = _load_library_from_apk
create_density_splits = _create_density_splits
- if (defined(invoker.language_splits)) {
+ if (_create_language_splits) {
language_splits = invoker.language_splits
}
if (defined(invoker.extensions_to_not_compress)) {
@@ -1772,12 +1778,11 @@ template("android_apk") {
_apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}"
_final_deps += [ ":$_apk_rule" ]
- _managed_final_deps += [ ":${_apk_rule}_managed" ]
+
+ # Don't add this to _managed_final_deps since for managed installs we skip
+ # abi splits altogether.
create_apk(_apk_rule) {
- _split_paths = process_file_template(
- [ _final_apk_path ],
- "{{source_dir}}/{{source_name_part}}-abi-${android_app_abi}.apk")
- apk_path = _split_paths[0]
+ apk_path = "${_final_apk_path_no_ext}-abi-${android_app_abi}.apk"
base_path = "$gen_dir/$_apk_rule"
manifest_outputs = get_target_outputs(":${_manifest_rule}")
@@ -1799,6 +1804,41 @@ template("android_apk") {
}
}
+ _managed_create_script_rule_name = "${_template_name}__managed_script"
+ _managed_final_deps += [ ":${_managed_create_script_rule_name}" ]
+ action(_managed_create_script_rule_name) {
jbudorick 2015/08/23 02:01:28 nit: create_managed_script_rule_name?
agrieve 2015/08/26 00:22:40 Done.
+ script = "//build/android/gyp/create_managed_install_script.py"
+ depfile = "$target_gen_dir/$target_name.d"
+
+ _generated_script_path =
+ "${root_out_dir}/bin/install_managed_${_template_name}"
+ outputs = [
+ depfile,
+ _generated_script_path,
+ ]
+
+ _rebased_apk_path_no_ext =
+ rebase_path(_final_apk_path_no_ext, root_build_dir)
+ _rebased_generated_script_path =
+ rebase_path(_generated_script_path, root_build_dir)
+ _rebased_depfile = rebase_path(depfile, root_build_dir)
+ args = [
+ "--apk-path=${_rebased_apk_path_no_ext}_managed.apk",
+ "--script-output-path=$_rebased_generated_script_path",
+ "--depfile=$_rebased_depfile",
+ ]
+ if (defined(_native_libs_dir)) {
+ _rebased_native_libs_dir = rebase_path(_native_libs_dir, root_build_dir)
+ args += [ "--lib-dir=$_rebased_native_libs_dir/$android_app_abi" ]
+ }
+ if (_create_density_splits) {
+ args += [ "--split=${_rebased_apk_path_no_ext}-density-*.apk" ]
+ }
+ if (_create_language_splits) {
+ args += [ "--split=${_rebased_apk_path_no_ext}-language-*.apk" ]
+ }
+ }
+
group(target_name) {
deps = _final_deps
if (defined(invoker.data_deps)) {
« build/android/pylib/device/device_utils.py ('K') | « build/config/android/internal_rules.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698