mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
104 lines
2.4 KiB
Plaintext
104 lines
2.4 KiB
Plaintext
# 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",
|
|
]
|
|
}
|
|
}
|