Index: build/config/android/internal_rules.gni |
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni |
index 9895c460102fa50a4095bd405efe364986a8d9e1..17a1335e83b756da4993b17cc01f5a9f99d61b19 100644 |
--- a/build/config/android/internal_rules.gni |
+++ b/build/config/android/internal_rules.gni |
@@ -223,6 +223,63 @@ template("java_binary_script") { |
template("dex") { |
set_sources_assignment_filter([]) |
+ _multidex = defined(invoker.multidex) && invoker.multidex |
agrieve
2015/11/16 19:02:33
nit: It would be more GN'y to call this "enable_mu
jbudorick
2015/11/16 20:45:56
I'm still getting a handle on what's GN'y. switche
|
+ |
+ if (_multidex) { |
+ _main_dex_list_path = invoker.output + ".main_dex_list" |
+ template("main_dex_list_helper") { |
agrieve
2015/11/16 19:02:33
doesn't look like this is used more than once, so
jbudorick
2015/11/16 20:45:56
I'm not. I think I patterned this off of something
|
+ action(target_name) { |
+ forward_variables_from(invoker, |
+ [ |
+ "deps", |
+ "inputs", |
+ "sources", |
+ "testonly", |
+ ]) |
+ |
+ script = "//build/android/gyp/main_dex_list.py" |
+ depfile = "$target_gen_dir/$target_name.d" |
+ |
+ main_dex_rules = "//build/android/main_dex_classes.flags" |
+ |
+ outputs = [ |
+ depfile, |
+ invoker.output, |
+ ] |
+ |
+ args = [ |
+ "--depfile", |
+ rebase_path(depfile, root_build_dir), |
+ "--android-sdk-tools", |
+ rebased_android_sdk_build_tools, |
+ "--main-dex-list-path", |
+ rebase_path(invoker.output, root_build_dir), |
+ "--main-dex-rules-path", |
+ rebase_path(main_dex_rules, root_build_dir), |
+ ] |
+ |
+ if (defined(invoker.args)) { |
+ args += invoker.args |
+ } |
+ |
+ if (defined(invoker.sources)) { |
+ args += rebase_path(invoker.sources, root_build_dir) |
+ } |
+ } |
+ } |
+ |
+ _main_dex_list_target_name = "${target_name}__main_dex_list" |
+ main_dex_list_helper(_main_dex_list_target_name) { |
+ forward_variables_from(invoker, |
+ [ |
+ "args", |
+ "sources", |
+ ]) |
+ output = _main_dex_list_path |
+ deps = invoker.deps |
+ } |
+ } |
+ |
assert(defined(invoker.output)) |
action(target_name) { |
forward_variables_from(invoker, |
@@ -258,6 +315,16 @@ template("dex") { |
args += [ "--no-locals=1" ] |
} |
+ if (defined(invoker.multidex) && invoker.multidex) { |
+ args += [ |
+ "--multi-dex", |
+ "--main-dex-list-path", |
+ rebase_path(_main_dex_list_path, root_build_dir), |
+ ] |
+ deps += [ ":${_main_dex_list_target_name}" ] |
+ inputs += [ _main_dex_list_path ] |
+ } |
+ |
if (defined(invoker.args)) { |
args += invoker.args |
} |