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

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

Issue 361633002: [Android][gn] Add android resources templates (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-java
Patch Set: Fix bad rebase Created 6 years, 5 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
« no previous file with comments | « build/config/android/config.gni ('k') | build/config/android/rules.gni » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/config/android/internal_rules.gni
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
index f9ed63ebffb15544314f2ca3bd8459d3a42cc529..a4bd0b91ad6a4f16b2f0b773d7973f1a256e6132 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -4,6 +4,13 @@
import("//build/config/android/config.gni")
+assert(is_android)
+
+
+rebased_android_sdk = rebase_path(android_sdk, root_build_dir)
+rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir)
+rebased_android_sdk_build_tools = rebase_path(android_sdk_build_tools, root_build_dir)
+
# Write the target's .build_config file. This is a json file that contains a
# dictionary of information about how to build this target (things that
@@ -22,7 +29,7 @@ template("write_build_config") {
type = invoker.type
build_config = base_path + ".build_config"
- assert(type == "android_library" || type == "android_binary")
+ assert(type == "android_binary" || type == "android_library" || type == "android_resources")
action(target_name) {
script = "//build/android/gyp/write_build_config.py"
@@ -58,9 +65,22 @@ template("write_build_config") {
"--jar-path", rebase_path(jar_path, root_build_dir),
]
}
+
+ if (type == "android_resources") {
+ assert(defined(invoker.resources_zip))
+ args += [
+ "--resources-zip", rebase_path(invoker.resources_zip, root_build_dir),
+ ]
+ if (defined(invoker.srcjar)) {
+ args += [
+ "--srcjar", rebase_path(invoker.srcjar, root_build_dir)
+ ]
+ }
+ }
}
}
+
# Creates a zip archive of the inputs.
# If base_dir is provided, the archive paths will be relative to it.
template("zip") {
@@ -90,7 +110,8 @@ template("zip") {
}
}
-# Compiles and jars a set of java_files.
+
+# Compiles and jars a set of java files.
#
# Outputs:
# $jar_path.jar
@@ -164,6 +185,7 @@ template("java_library") {
"--classpath=@($rebase_build_config:javac:classpath)",
"--jar-path=$rebase_jar_path",
"--java-srcjars=$rebase_java_srcjars",
+ "--java-srcjars=@($rebase_build_config:javac:srcjars)",
"--jar-excluded-classes=$jar_excluded_patterns",
]
if (chromium_code) {
@@ -200,6 +222,7 @@ template("java_library") {
}
}
+
# This adds Android-specific parts to the java_library template.
#
# Runs Android lint against the compiled java files.
@@ -232,3 +255,62 @@ template("android_java_library") {
]
}
}
+
+
+# Runs process_resources.py
+template("process_resources") {
+ zip_path = invoker.zip_path
+ srcjar_path = invoker.srcjar_path
+ build_config = invoker.build_config
+ resource_dirs = invoker.resource_dirs
+ android_manifest = invoker.android_manifest
+
+ action(target_name) {
+ script = "//build/android/gyp/process_resources.py"
+
+ depfile = "$target_gen_dir/$target_name.d"
+ outputs = [
+ depfile,
+ zip_path,
+ srcjar_path,
+ ]
+
+ sources_build_rel = exec_script(
+ "//build/android/gyp/find.py",
+ rebase_path(resource_dirs, root_build_dir),
+ "list lines"
+ )
+ sources = rebase_path(sources_build_rel, ".", root_build_dir)
+
+ source_prereqs = [
+ build_config,
+ android_manifest,
+ ]
+
+ rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir)
+ rebase_build_config = rebase_path(build_config, root_build_dir)
+ args = [
+ "--depfile", rebase_path(depfile, root_build_dir),
+ "--android-sdk", rebase_path(android_sdk, root_build_dir),
+ "--android-sdk-tools", rebase_path(android_sdk_build_tools, root_build_dir),
+ "--non-constant-id",
+ "--android-manifest", rebase_path(android_manifest, root_build_dir),
+
+ "--resource-dirs=$rebase_resource_dirs",
+ "--srcjar-out", rebase_path(srcjar_path, root_build_dir),
+ "--resource-zip-out", rebase_path(zip_path, root_build_dir),
+
+ "--dependencies-res-zips=@($rebase_build_config:resources:dependency_zips)",
+ ]
+
+ if (defined(invoker.custom_package)) {
+ args += [
+ "--custom-package", invoker.custom_package,
+ ]
+ }
+
+ if (defined(invoker.v14_verify_only) && invoker.v14_verify_only) {
+ args += ["--v14-verify-only"]
+ }
+ }
+}
« no previous file with comments | « build/config/android/config.gni ('k') | build/config/android/rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698