| # Copyright 2015 The Chromium Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | import("//build/config/android/rules.gni") | 
 | import("//mojo/public/mojo_application.gni") | 
 |  | 
 | template("mojo_android_java_application") { | 
 |   assert(defined(invoker.mojo_main)) | 
 |  | 
 |   dex_output_path = "$target_out_dir/${target_name}.dex.jar" | 
 |  | 
 |   android_lib_name = "__${target_name}_lib" | 
 |   android_standalone_name = "__${target_name}_standalone" | 
 |  | 
 |   all_deps = [ | 
 |     "//mojo/public/java:bindings", | 
 |     "//mojo/public/java:system", | 
 |   ] | 
 |   if (defined(invoker.deps)) { | 
 |     all_deps += invoker.deps | 
 |   } | 
 |  | 
 |   android_library(android_lib_name) { | 
 |     java_files = invoker.sources | 
 |  | 
 |     manifest_entries = [ "Mojo-Class:" + invoker.mojo_main ] | 
 |  | 
 |     deps = all_deps | 
 |   } | 
 |  | 
 |   android_standalone_library(android_standalone_name) { | 
 |     deps = [ ":${android_lib_name}" ] + all_deps | 
 |  | 
 |     dex_path = dex_output_path | 
 |  | 
 |     system_gen_dir = get_path_info("//mojo/public/java/BUILD.gn", "gen_dir") | 
 |     excluded_jars = [ "${system_gen_dir}/system.dex.jar" ] | 
 |   } | 
 |  | 
 |   if (defined(invoker.output_name)) { | 
 |     mojo_output = "$root_out_dir/" + invoker.output_name + ".mojo" | 
 |   } else { | 
 |     mojo_output = "$root_out_dir/" + target_name + ".mojo" | 
 |   } | 
 |  | 
 |   action(target_name) { | 
 |     script = rebase_path("mojo/public/tools/prepend.py", ".", mojo_root) | 
 |  | 
 |     input = dex_output_path | 
 |     inputs = [ | 
 |       input, | 
 |     ] | 
 |  | 
 |     output = mojo_output | 
 |     outputs = [ | 
 |       output, | 
 |     ] | 
 |  | 
 |     rebase_input = rebase_path(input, root_build_dir) | 
 |     rebase_output = rebase_path(output, root_build_dir) | 
 |     args = [ | 
 |       "--input=$rebase_input", | 
 |       "--output=$rebase_output", | 
 |       "--line=#!mojo mojo:java_handler", | 
 |     ] | 
 |   } | 
 | } |