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

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

Issue 484813002: Add support for prebuilt jars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-lint
Patch Set: Created 6 years, 4 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/android/gyp/proguard.py ('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 1820ff864b72b978efe237c7f400005f416f2ffa..376b4fa040b0272b517fcdf49993238bec3a6266 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -11,6 +11,9 @@ 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)
+android_sdk_jar = "$android_sdk/android.jar"
+rebased_android_sdk_jar = rebase_path(android_sdk_jar, root_build_dir)
+
template("android_lint") {
jar_path = invoker.jar_path
android_manifest = invoker.android_manifest
@@ -332,6 +335,72 @@ template("create_apk") {
}
}
+template("java_prebuilt") {
+ _input_jar_path = invoker.input_jar_path
+ _output_jar_path = invoker.output_jar_path
+ _jar_toc_path = _output_jar_path + ".TOC"
+
+ assert(invoker.build_config != "")
+
+ if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
+ _proguard_jar_path = "$android_sdk_root/tools/proguard/lib/proguard.jar"
+ _proguard_config_path = invoker.proguard_config
+ _build_config = invoker.build_config
+ _rebased_build_config = rebase_path(_build_config, root_build_dir)
+ action("${target_name}__proguard_process") {
+ script = "//build/android/gyp/proguard.py"
+ inputs = [
+ android_sdk_jar,
+ _proguard_jar_path,
+ _build_config,
+ _input_jar_path,
+ _proguard_config_path,
+ ]
+ depfile = "${target_gen_dir}/${target_name}.d"
+ outputs = [
+ depfile,
+ _output_jar_path,
+ ]
+ args = [
+ "--depfile", rebase_path(depfile, root_build_dir),
+ "--proguard-path", rebase_path(_proguard_jar_path, root_build_dir),
+ "--input-path", rebase_path(_input_jar_path, root_build_dir),
+ "--output-path", rebase_path(_output_jar_path, root_build_dir),
+ "--proguard-config", rebase_path(_proguard_config_path, root_build_dir),
+ "--classpath", rebased_android_sdk_jar,
+ "--classpath=@FileArg($_rebased_build_config:javac:classpath)",
+ ]
+ }
+ } else {
+ copy("${target_name}__copy_jar") {
+ sources = [_input_jar_path]
+ outputs = [_output_jar_path]
+ }
+ }
+
+ action("${target_name}__jar_toc") {
+ script = "//build/android/gyp/jar_toc.py"
+ depfile = "$target_gen_dir/$target_name.d"
+ outputs = [
+ depfile,
+ _jar_toc_path,
+ _jar_toc_path + ".md5.stamp"
+ ]
+ inputs = [ _output_jar_path ]
+ args = [
+ "--depfile", rebase_path(depfile, root_build_dir),
+ "--jar-path", rebase_path(_output_jar_path, root_build_dir),
+ "--toc-path", rebase_path(_jar_toc_path, root_build_dir),
+ ]
+ }
+
+ group(target_name) {
+ deps = [
+ ":${target_name}__jar_toc"
+ ]
+ }
+}
+
# Compiles and jars a set of java files.
#
# Outputs:
@@ -352,93 +421,83 @@ template("java_library") {
assert(defined(invoker.build_config))
assert(defined(invoker.jar_path))
- java_files = invoker.java_files
- jar_path = invoker.jar_path
- jar_toc_path = jar_path + ".TOC"
+ _java_files = invoker.java_files
+ _final_jar_path = invoker.jar_path
+ _intermediate_jar_path = "$target_gen_dir/$target_name.initial.jar"
- build_config = invoker.build_config
+ _build_config = invoker.build_config
- jar_excluded_patterns = []
+ _jar_excluded_patterns = []
if (defined(invoker.jar_excluded_patterns)) {
- jar_excluded_patterns += invoker.jar_excluded_patterns
+ _jar_excluded_patterns += invoker.jar_excluded_patterns
}
- chromium_code = false
+ _chromium_code = false
if (defined(invoker.chromium_code)) {
- chromium_code = chromium_code || invoker.chromium_code
+ _chromium_code = invoker.chromium_code
}
- srcjar_deps = []
+ _srcjar_deps = []
if (defined(invoker.srcjar_deps)) {
- srcjar_deps += invoker.srcjar_deps
+ _srcjar_deps += invoker.srcjar_deps
}
- java_srcjars = []
- foreach(dep, srcjar_deps) {
- dep_gen_dir = get_label_info(dep, "target_gen_dir")
- dep_name = get_label_info(dep, "name")
- java_srcjars += [ "$dep_gen_dir/$dep_name.srcjar" ]
+ _java_srcjars = []
+ foreach(dep, _srcjar_deps) {
+ _dep_gen_dir = get_label_info(dep, "target_gen_dir")
+ _dep_name = get_label_info(dep, "name")
+ _java_srcjars += [ "$_dep_gen_dir/$_dep_name.srcjar" ]
}
# Mark srcjar_deps as used.
- assert(srcjar_deps == [] || srcjar_deps != [])
+ assert(_srcjar_deps == [] || true)
- rebase_jar_path = rebase_path(jar_path, root_build_dir)
-
- system_jars = [ "${android_sdk}/android.jar" ]
+ _system_jars = [ android_sdk_jar ]
action("${target_name}__javac") {
script = "//build/android/gyp/javac.py"
depfile = "$target_gen_dir/$target_name.d"
outputs = [
depfile,
- jar_path,
- jar_path + ".md5.stamp"
+ _intermediate_jar_path,
+ _intermediate_jar_path + ".md5.stamp"
]
- sources = java_files + java_srcjars
- inputs = system_jars + [ build_config ]
-
- rebase_system_jars = rebase_path(system_jars, root_build_dir)
- rebase_java_srcjars = rebase_path(java_srcjars, root_build_dir)
- rebase_build_config = rebase_path(build_config, root_build_dir)
- rebase_depfile = rebase_path(depfile, root_build_dir)
+ sources = _java_files + _java_srcjars
+ inputs = _system_jars + [ _build_config ]
+
+ _rebased_system_jars = rebase_path(_system_jars, root_build_dir)
+ _rebased_java_srcjars = rebase_path(_java_srcjars, root_build_dir)
+ _rebased_build_config = rebase_path(_build_config, root_build_dir)
+ _rebased_depfile = rebase_path(depfile, root_build_dir)
+ _rebased_jar_path = rebase_path(_intermediate_jar_path, root_build_dir)
args = [
- "--depfile=$rebase_depfile",
- "--classpath=$rebase_system_jars",
- "--classpath=@FileArg($rebase_build_config:javac:classpath)",
- "--jar-path=$rebase_jar_path",
- "--java-srcjars=$rebase_java_srcjars",
- "--java-srcjars=@FileArg($rebase_build_config:javac:srcjars)",
- "--jar-excluded-classes=$jar_excluded_patterns",
+ "--depfile=$_rebased_depfile",
+ "--classpath=$_rebased_system_jars",
+ "--classpath=@FileArg($_rebased_build_config:javac:classpath)",
+ "--jar-path=$_rebased_jar_path",
+ "--java-srcjars=$_rebased_java_srcjars",
+ "--java-srcjars=@FileArg($_rebased_build_config:javac:srcjars)",
+ "--jar-excluded-classes=$_jar_excluded_patterns",
]
- if (chromium_code) {
+ if (_chromium_code) {
args += [ "--chromium-code" ]
}
- args += rebase_path(java_files, root_build_dir)
+ args += rebase_path(_java_files, root_build_dir)
}
- # TODO(cjhopman): proguard
-
- rebase_jar_toc_path = rebase_path(jar_toc_path, root_build_dir)
- action("${target_name}__jar_toc") {
- script = "//build/android/gyp/jar_toc.py"
- depfile = "$target_gen_dir/$target_name.d"
- outputs = [
- depfile,
- jar_toc_path,
- jar_toc_path + ".md5.stamp"
- ]
- inputs = [ jar_path ]
- args = [
- "--depfile", rebase_path(depfile, root_build_dir),
- "--jar-path=${rebase_jar_path}",
- "--toc-path=${rebase_jar_toc_path}",
- ]
+ java_prebuilt("${target_name}__finish") {
+ build_config = _build_config
+ input_jar_path = _intermediate_jar_path
+ output_jar_path = _final_jar_path
+ if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
+ proguard_preprocess = invoker.proguard_preprocess
+ proguard_config = invoker.proguard_config
+ }
}
group(target_name) {
deps = [
":${target_name}__javac",
- ":${target_name}__jar_toc",
+ ":${target_name}__finish",
]
}
}
@@ -476,6 +535,10 @@ template("android_java_library") {
if (defined(invoker.srcjar_deps)) {
srcjar_deps = invoker.srcjar_deps
}
+ if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) {
+ proguard_preprocess = invoker.proguard_preprocess
+ proguard_config = invoker.proguard_config
+ }
}
if (defined(invoker.chromium_code) && invoker.chromium_code) {
@@ -500,7 +563,6 @@ template("android_java_library") {
}
}
-
# Runs process_resources.py
template("process_resources") {
zip_path = invoker.zip_path
« no previous file with comments | « build/android/gyp/proguard.py ('k') | build/config/android/rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698