Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3519)

Unified Diff: build/config/android/rules.gni

Issue 269943005: Add android_library template (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/config/android/rules.gni
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 8aaaba17f343b2e35317a1a263186b2df3accfb6..a56cbdd6aa6bdef86213958c900342378fb387ce 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("config.gni")
import("internal_rules.gni")
# Declare a jni target
@@ -62,6 +63,7 @@ template("generate_jni") {
}
}
+
# Declare a target for c-preprocessor-generated java files
#
# This target generates java files using the host C pre-processor. Each file in
@@ -82,7 +84,7 @@ template("generate_jni") {
# package_name: this will be the subdirectory for each .java file in the .srcjar.
#
# Example
-# java_cpp_template("foo_jni") {
+# java_cpp_template("foo_generated_enum") {
# sources = [
# "android/java/templates/Foo.template",
# ]
@@ -105,9 +107,9 @@ template("java_cpp_template") {
base_gen_dir = "${root_gen_dir}/java_cpp_template/${target_name}/${package_name}"
gen_dir = "${base_gen_dir}/${package_name}"
+ gcc_template_output_pattern = "${gen_dir}/{{source_name_part}}.java"
apply_gcc_outputs = process_file_template(
- invoker.sources,
- "${gen_dir}/{{source_name_part}}.java"
+ invoker.sources, gcc_template_output_pattern
)
action_foreach("${target_name}__apply_gcc") {
@@ -118,7 +120,7 @@ template("java_cpp_template") {
sources = invoker.sources
outputs = [
- "${gen_dir}/{{source_name_part}}.java"
+ gcc_template_output_pattern
]
args = [
@@ -128,9 +130,10 @@ template("java_cpp_template") {
]
}
+ srcjar_path = get_target_gen_path(":${target_name}", ".srcjar")
_zip("${target_name}__zip_srcjar") {
inputs = apply_gcc_outputs
- output = get_target_gen_path(target_name, ".srcjar")
+ output = srcjar_path
base_dir = base_gen_dir
}
@@ -142,3 +145,49 @@ template("java_cpp_template") {
}
+# Declare an Android library target
+#
+# This target creates an Android library containing java code and Android
+# resources.
+#
+# Variables
+# android_library_deps: list of other Android libraries that this library
+# depends on.
+# java_files: List of .java files included in this library.
+# srcjar_deps: List of srcjar dependencies. The .java files in the srcjars
+# will be added to java_files and be included in this library.
+#
+# Example
+# android_library("foo_java") {
+# java_files = [
+# "android/org/chromium/foo/Foo.java",
+# "android/org/chromium/foo/FooInterface.java",
+# "android/org/chromium/foo/FooService.java",
+# ]
+# srcjar_deps = [
+# ":foo_generated_enum"
+# ]
+# }
+template("android_library") {
+ template_name = target_name
+
+ #TODO(cjhopman): resources
+
+ assert(defined(invoker.java_files))
+ if (defined(invoker.android_library_deps)) {
+ android_library_deps = invoker.android_library_deps
+ } else {
+ android_library_deps = []
+ }
+
+ _android_java_library(target_name) {
+ jar_path = get_target_gen_path(":${template_name}", ".jar")
+ java_files = invoker.java_files
+ library_deps = android_library_deps
+
+ if (defined(invoker.srcjar_deps)) {
+ srcjar_deps = invoker.srcjar_deps
+ }
+ }
+}
+

Powered by Google App Engine
This is Rietveld 408576698