| 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
|
|
|