# 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", ] } }