| # 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") |
| |
| mojo_android_path = get_path_info(".", "abspath") |
| |
| template("mojo_android_java_application") { |
| assert(defined(invoker.mojo_main)) |
| |
| dex_output_path = "$target_out_dir/${target_name}.dex.jar" |
| dex_with_manifest_output_path = |
| "$target_out_dir/${target_name}_with_manifest.dex.jar" |
| |
| android_lib_name = "__${target_name}_lib" |
| android_standalone_name = "__${target_name}_standalone" |
| android_with_manifest_name = "__${target_name}_with_manifest" |
| |
| 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 |
| |
| 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" ] |
| } |
| |
| action(android_with_manifest_name) { |
| script = "${mojo_android_path}/add_manifest_entry.py" |
| |
| deps = [ |
| ":$android_standalone_name", |
| ] |
| |
| input = dex_output_path |
| inputs = [ |
| input, |
| ] |
| |
| output = dex_with_manifest_output_path |
| outputs = [ |
| output, |
| ] |
| |
| rebase_input = rebase_path(input) |
| rebase_output = rebase_path(output) |
| mojo_main = invoker.mojo_main |
| args = [ |
| "--input=$rebase_input", |
| "--output=$rebase_output", |
| "--key=Mojo-Class", |
| "--value=$mojo_main", |
| ] |
| } |
| |
| 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) |
| |
| deps = [ |
| ":$android_with_manifest_name", |
| ] |
| |
| input = dex_with_manifest_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", |
| ] |
| } |
| } |