Commit 8adb2d69 authored by agrieve's avatar agrieve Committed by Commit Bot

Revert "Cronet: Simplify repackage rules"

This reverts commit b74cdf4b.

Reason for revert: Broke compile of remoting_me2me_host_archive
(see bug)

Original change's description:
> Cronet: Simplify repackage rules
> 
> * Use dist_jar() rather than a custom script
>   * Avoids needing to extract .jars.
>   * Avoids needing to reference ".javac.jar" files, which
>     are somewhat of an implementation detail.
> 
> * Added jar_excluded_patterns support to dist_jar()
> 
> * Merges zip.py and dist_jar.py, since they were doing the
>   same thing.
> 
> Spot checked that these two jars are the same before/after:
> * cronet/cronet_impl_common_java.jar
> * cronet/cronet_impl_native_java.jar
> 
> Change-Id: I4d5a5f495ce0376ef2e53b6d4e3c9ebbc3d75ae1
> Reviewed-on: https://chromium-review.googlesource.com/c/1349872
> Reviewed-by: Paul Jensen <pauljensen@chromium.org>
> Reviewed-by: Eric Stevenson <estevenson@chromium.org>
> Commit-Queue: agrieve <agrieve@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#612210}

TBR=pauljensen@chromium.org,agrieve@chromium.org,estevenson@chromium.org

Bug: 910311
Change-Id: I0d06a36a1694e378bdfafda21f63fd2e5f258239
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1355887Reviewed-by: default avataragrieve <agrieve@chromium.org>
Commit-Queue: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612347}
parent 7040acdf
...@@ -661,6 +661,7 @@ _ANDROID_SPECIFIC_PYDEPS_FILES = [ ...@@ -661,6 +661,7 @@ _ANDROID_SPECIFIC_PYDEPS_FILES = [
'build/android/gyp/copy_ex.pydeps', 'build/android/gyp/copy_ex.pydeps',
'build/android/gyp/create_app_bundle.pydeps', 'build/android/gyp/create_app_bundle.pydeps',
'build/android/gyp/create_apk_operations_script.pydeps', 'build/android/gyp/create_apk_operations_script.pydeps',
'build/android/gyp/create_dist_jar.pydeps',
'build/android/gyp/create_java_binary_script.pydeps', 'build/android/gyp/create_java_binary_script.pydeps',
'build/android/gyp/create_stack_script.pydeps', 'build/android/gyp/create_stack_script.pydeps',
'build/android/gyp/create_test_runner_script.pydeps', 'build/android/gyp/create_test_runner_script.pydeps',
...@@ -685,7 +686,6 @@ _ANDROID_SPECIFIC_PYDEPS_FILES = [ ...@@ -685,7 +686,6 @@ _ANDROID_SPECIFIC_PYDEPS_FILES = [
'build/android/gyp/proguard.pydeps', 'build/android/gyp/proguard.pydeps',
'build/android/gyp/write_build_config.pydeps', 'build/android/gyp/write_build_config.pydeps',
'build/android/gyp/write_ordered_libraries.pydeps', 'build/android/gyp/write_ordered_libraries.pydeps',
'build/android/gyp/zip.pydeps',
'build/android/incremental_install/generate_android_manifest.pydeps', 'build/android/incremental_install/generate_android_manifest.pydeps',
'build/android/incremental_install/write_installer_json.pydeps', 'build/android/incremental_install/write_installer_json.pydeps',
'build/android/resource_sizes.pydeps', 'build/android/resource_sizes.pydeps',
......
#!/usr/bin/env python
#
# Copyright 2014 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.
"""Archives a set of files.
"""
import ast
import optparse
import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir, 'gyp'))
from util import build_utils
def main():
parser = optparse.OptionParser()
build_utils.AddDepfileOption(parser)
parser.add_option('--inputs', help='List of files to archive.')
parser.add_option('--output', help='Path to output archive.')
parser.add_option('--base-dir',
help='If provided, the paths in the archive will be '
'relative to this directory', default='.')
options, _ = parser.parse_args()
inputs = ast.literal_eval(options.inputs)
output = options.output
base_dir = options.base_dir
with build_utils.AtomicOutput(output) as f:
build_utils.DoZip(inputs, f, base_dir)
if options.depfile:
build_utils.WriteDepfile(options.depfile, output)
if __name__ == '__main__':
sys.exit(main())
#!/usr/bin/env python
#
# Copyright 2014 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.
"""Merges a list of jars into a single jar."""
import argparse
import sys
from util import build_utils
def main(args):
args = build_utils.ExpandFileArgs(args)
parser = argparse.ArgumentParser()
build_utils.AddDepfileOption(parser)
parser.add_argument('--output', required=True, help='Path to output jar.')
parser.add_argument('--jars', required=True, help='GN list of jar inputs.')
options = parser.parse_args(args)
input_jars = build_utils.ParseGnList(options.jars)
build_utils.MergeZips(options.output, input_jars)
if options.depfile:
build_utils.WriteDepfile(options.depfile, options.output, input_jars,
add_pydeps=False)
if __name__ == '__main__':
main(sys.argv[1:])
# Generated by running: # Generated by running:
# build/print_python_deps.py --root build/android/gyp --output build/android/gyp/zip.pydeps build/android/gyp/zip.py # build/print_python_deps.py --root build/android/gyp --output build/android/gyp/create_dist_jar.pydeps build/android/gyp/create_dist_jar.py
../../gn_helpers.py ../../gn_helpers.py
create_dist_jar.py
util/__init__.py util/__init__.py
util/build_utils.py util/build_utils.py
util/md5_check.py util/md5_check.py
zip.py
#!/usr/bin/env python
#
# Copyright 2014 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.
"""Archives a set of files."""
import argparse
import os
import sys
import zipfile
from util import build_utils
def main(args):
args = build_utils.ExpandFileArgs(args)
parser = argparse.ArgumentParser(args)
parser.add_argument('--input-files', help='GN-list of files to zip.')
parser.add_argument(
'--input-files-base-dir',
help='Paths in the archive will be relative to this directory')
parser.add_argument('--input-zips', help='GN-list of zips to merge.')
parser.add_argument(
'--input-zips-excluded-globs',
help='GN-list of globs for paths to exclude.')
parser.add_argument('--output', required=True, help='Path to output archive.')
compress_group = parser.add_mutually_exclusive_group()
compress_group.add_argument(
'--compress', action='store_true', help='Compress entries')
compress_group.add_argument(
'--no-compress',
action='store_false',
dest='compress',
help='Do not compress entries')
build_utils.AddDepfileOption(parser)
options = parser.parse_args(args)
with build_utils.AtomicOutput(options.output) as f:
with zipfile.ZipFile(f.name, 'w') as out_zip:
depfile_deps = None
if options.input_files:
files = build_utils.ParseGnList(options.input_files)
build_utils.DoZip(
files,
out_zip,
options.input_files_base_dir,
compress_fn=lambda _: options.compress)
if options.input_zips:
files = build_utils.ParseGnList(options.input_zips)
depfile_deps = files
path_transform = None
if options.input_zips_excluded_globs:
globs = build_utils.ParseGnList(options.input_zips_excluded_globs)
path_transform = (
lambda p: None if build_utils.MatchesGlob(p, globs) else p)
build_utils.MergeZips(
out_zip,
files,
path_transform=path_transform,
compress=options.compress)
# Depfile used only by dist_jar().
if options.depfile:
build_utils.WriteDepfile(
options.depfile, options.output, inputs=depfile_deps, add_pydeps=False)
if __name__ == '__main__':
main(sys.argv[1:])
...@@ -1447,8 +1447,6 @@ if (enable_java_templates) { ...@@ -1447,8 +1447,6 @@ if (enable_java_templates) {
# implementation .jars. # implementation .jars.
# use_unprocessed_jars: Use unprocessed / undesugared .jars. # use_unprocessed_jars: Use unprocessed / undesugared .jars.
# direct_deps_only: Do not recurse on deps. # direct_deps_only: Do not recurse on deps.
# jar_excluded_patterns (optional)
# List of globs for paths to exclude.
# #
# Example # Example
# dist_jar("lib_fatjar") { # dist_jar("lib_fatjar") {
...@@ -1511,7 +1509,7 @@ if (enable_java_templates) { ...@@ -1511,7 +1509,7 @@ if (enable_java_templates) {
_rebased_build_config = rebase_path(_build_config, root_build_dir) _rebased_build_config = rebase_path(_build_config, root_build_dir)
action_with_pydeps(_jar_target_name) { action_with_pydeps(_jar_target_name) {
forward_variables_from(invoker, [ "data" ]) forward_variables_from(invoker, [ "data" ])
script = "//build/android/gyp/zip.py" script = "//build/android/gyp/create_dist_jar.py"
depfile = "$target_gen_dir/$target_name.d" depfile = "$target_gen_dir/$target_name.d"
deps = _deps deps = _deps
...@@ -1528,16 +1526,15 @@ if (enable_java_templates) { ...@@ -1528,16 +1526,15 @@ if (enable_java_templates) {
rebase_path(depfile, root_build_dir), rebase_path(depfile, root_build_dir),
"--output", "--output",
rebase_path(invoker.output, root_build_dir), rebase_path(invoker.output, root_build_dir),
"--no-compress",
] ]
if (_direct_deps_only) { if (_direct_deps_only) {
if (_use_interface_jars) { if (_use_interface_jars) {
args += [ "--input-zips=@FileArg($_rebased_build_config:javac:interface_classpath)" ]
} else if (_use_unprocessed_jars) {
args += [ args += [
"--input-zips=@FileArg($_rebased_build_config:javac:classpath)", "--jars=@FileArg($_rebased_build_config:javac:interface_classpath)",
] ]
} else if (_use_unprocessed_jars) {
args += [ "--jars=@FileArg($_rebased_build_config:javac:classpath)" ]
} else { } else {
assert( assert(
false, false,
...@@ -1545,17 +1542,13 @@ if (enable_java_templates) { ...@@ -1545,17 +1542,13 @@ if (enable_java_templates) {
} }
} else { } else {
if (_use_interface_jars) { if (_use_interface_jars) {
args += [ "--input-zips=@FileArg($_rebased_build_config:dist_jar:all_interface_jars)" ] args += [ "--jars=@FileArg($_rebased_build_config:dist_jar:all_interface_jars)" ]
} else if (_use_unprocessed_jars) { } else if (_use_unprocessed_jars) {
args += [ "--input-zips=@FileArg($_rebased_build_config:deps_info:javac_full_classpath)" ] args += [ "--jars=@FileArg($_rebased_build_config:deps_info:javac_full_classpath)" ]
} else { } else {
args += [ "--input-zips=@FileArg($_rebased_build_config:deps_info:java_runtime_classpath)" ] args += [ "--jars=@FileArg($_rebased_build_config:deps_info:java_runtime_classpath)" ]
} }
} }
if (defined(invoker.jar_excluded_patterns)) {
args +=
[ "--input-zips-excluded-globs=${invoker.jar_excluded_patterns}" ]
}
} }
} }
......
...@@ -2,49 +2,54 @@ ...@@ -2,49 +2,54 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("python.gni")
# Creates a zip archive of the inputs. # Creates a zip archive of the inputs.
# #
# output (required)
# Path to output zip.
# inputs (required) # inputs (required)
# List of input files to zip. # List of input files relative to the current directory.
#
# output (required)
# File name to write.
#
# base_dir (optional) # base_dir (optional)
# If provided, the archive paths will be relative to this directory. # If provided, the archive paths will be relative to this directory.
# Applies only to |inputs|.
# #
# deps, public_deps, data, data_deps, testonly, visibility # deps, public_deps, data_deps, testonly, visibility (optional)
# Normal meaning. # Normal meaning.
template("zip") { template("zip") {
action_with_pydeps(target_name) { action(target_name) {
forward_variables_from(invoker, script = "//build/android/gn/zip.py"
[ depfile = "$target_gen_dir/$target_name.d"
"data",
"data_deps",
"deps",
"public_deps",
"testonly",
"visibility",
])
script = "//build/android/gyp/zip.py"
inputs = invoker.inputs inputs = invoker.inputs
outputs = [ outputs = [
invoker.output, invoker.output,
] ]
assert(defined(invoker.inputs))
rebase_inputs = rebase_path(invoker.inputs, root_build_dir)
assert(defined(invoker.output))
rebase_output = rebase_path(invoker.output, root_build_dir)
args = [ args = [
"--output", "--depfile",
rebase_path(invoker.output, root_build_dir), rebase_path(depfile, root_build_dir),
"--inputs=$rebase_inputs",
"--output=$rebase_output",
] ]
_rebased_inputs = rebase_path(invoker.inputs, root_build_dir)
args += [ "--input-files=$_rebased_inputs" ]
if (defined(invoker.base_dir)) { if (defined(invoker.base_dir)) {
args += [ args += [
"--input-files-base-dir", "--base-dir",
rebase_path(invoker.base_dir, root_build_dir), rebase_path(invoker.base_dir, root_build_dir),
] ]
} }
forward_variables_from(invoker,
[
"testonly",
"deps",
"public_deps",
"data_deps",
"visibility",
])
} }
} }
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
import("//build/buildflag_header.gni") import("//build/buildflag_header.gni")
import("//build/config/android/config.gni") import("//build/config/android/config.gni")
import("//build/config/android/rules.gni") import("//build/config/android/rules.gni")
import("//build/config/zip.gni")
import("//build/util/lastchange.gni") import("//build/util/lastchange.gni")
import("//build/util/process_version.gni") import("//build/util/process_version.gni")
import("//build/util/version.gni") import("//build/util/version.gni")
...@@ -51,7 +50,7 @@ generate_jni_registration("cronet_jni_registration") { ...@@ -51,7 +50,7 @@ generate_jni_registration("cronet_jni_registration") {
] ]
} }
android_library("cronet_jni_registration_java") { java_library("cronet_jni_registration_java") {
srcjar_deps = [ ":cronet_jni_registration" ] srcjar_deps = [ ":cronet_jni_registration" ]
} }
...@@ -456,7 +455,7 @@ _package_dir = "$root_out_dir/cronet" ...@@ -456,7 +455,7 @@ _package_dir = "$root_out_dir/cronet"
android_java_prebuilt("package_api_java") { android_java_prebuilt("package_api_java") {
jar_path = "$_package_dir/cronet_api.jar" jar_path = "$_package_dir/cronet_api.jar"
deps = [ deps = [
":repackage_api", ":copy_cronet_java8_jars_cronet_api_javaX",
] ]
} }
...@@ -464,7 +463,7 @@ android_java_prebuilt("package_impl_common_java") { ...@@ -464,7 +463,7 @@ android_java_prebuilt("package_impl_common_java") {
jar_path = "$_package_dir/cronet_impl_common_java.jar" jar_path = "$_package_dir/cronet_impl_common_java.jar"
deps = [ deps = [
":package_api_java", ":package_api_java",
":repackage_common", ":repackage_extracted_common_jars",
] ]
} }
...@@ -473,7 +472,7 @@ android_java_prebuilt("package_impl_native_java") { ...@@ -473,7 +472,7 @@ android_java_prebuilt("package_impl_native_java") {
deps = [ deps = [
":package_api_java", ":package_api_java",
":package_impl_common_java", ":package_impl_common_java",
":repackage_native", ":repackage_extracted_native_jars",
"//third_party/android_deps:android_support_v4_java", "//third_party/android_deps:android_support_v4_java",
"//third_party/jsr-305:jsr_305_javalib", "//third_party/jsr-305:jsr_305_javalib",
] ]
...@@ -482,9 +481,9 @@ android_java_prebuilt("package_impl_native_java") { ...@@ -482,9 +481,9 @@ android_java_prebuilt("package_impl_native_java") {
android_java_prebuilt("package_impl_platform_java") { android_java_prebuilt("package_impl_platform_java") {
jar_path = "$_package_dir/cronet_impl_platform_java.jar" jar_path = "$_package_dir/cronet_impl_platform_java.jar"
deps = [ deps = [
":copy_cronet_java8_jars_cronet_impl_platform_base_javaX",
":package_api_java", ":package_api_java",
":package_impl_common_java", ":package_impl_common_java",
":repackage_platform",
] ]
} }
...@@ -585,8 +584,58 @@ jar_src("jar_cronet_impl_platform_java_source") { ...@@ -585,8 +584,58 @@ jar_src("jar_cronet_impl_platform_java_source") {
jar_path = "$_package_dir/cronet_impl_platform_java-src.jar" jar_path = "$_package_dir/cronet_impl_platform_java-src.jar"
} }
template("copy_java8_jars") {
_deps = []
foreach(_dep, invoker.deps) {
_dep_name = get_label_info(_dep, "name")
_source_jar =
get_label_info(_dep, "target_gen_dir") + "/" + _dep_name + ".javac.jar"
_output_jar = "$_package_dir/" + _dep_name + ".jar"
# Adjust file names that are different from the target name that builds it.
if (_output_jar == "$_package_dir/" + "cronet_api_java.jar") {
_output_jar = "$_package_dir/" + "cronet_api.jar"
}
if (_output_jar == "$_package_dir/" + "cronet_impl_platform_base_java.jar") {
_output_jar = "$_package_dir/" + "cronet_impl_platform_java.jar"
}
# _deps have targets which match the java target whitelist. Add a
# trailing X to avoid the copy() target matching the whitelist.
# See _java_target_whitelist in build/config/android/internal_rules.gni.
_copy_target_name = "${target_name}_${_dep_name}X"
copy(_copy_target_name) {
sources = [
_source_jar,
]
outputs = [
_output_jar,
]
deps = [
":$_dep_name",
]
}
_deps += [ ":" + _copy_target_name ]
}
group(target_name) {
deps = _deps
}
}
copy_java8_jars("copy_cronet_java8_jars") {
deps = [
":cronet_api_java",
":cronet_impl_platform_base_java",
]
}
_extract_cronet_native_jars_dir = "$target_gen_dir/cronet_native_jar_extract"
_extract_cronet_common_jars_dir = "$target_gen_dir/cronet_common_jar_extract"
# List of patterns of .class files to exclude from the jar. # List of patterns of .class files to exclude from the jar.
_jar_excluded_patterns = [ jar_excluded_patterns = [
# Excludes Android support libraries crbug.com/832770. # Excludes Android support libraries crbug.com/832770.
"android/*", "android/*",
"*/library_loader/*.class", "*/library_loader/*.class",
...@@ -597,43 +646,118 @@ _jar_excluded_patterns = [ ...@@ -597,43 +646,118 @@ _jar_excluded_patterns = [
"org/chromium/base/memory/MemoryPressureMonitor*.class", "org/chromium/base/memory/MemoryPressureMonitor*.class",
] ]
template("repackage_jars") { action("extract_cronet_native_jars") {
dist_jar(target_name) { # extract_from_jars.py deletes the target directory before extracting.
requires_android = true script = "//components/cronet/tools/extract_from_jars.py"
direct_deps_only = true depfile = "$target_gen_dir/$target_name.d"
use_unprocessed_jars = true
no_build_hooks = true _stamp_file = "$target_gen_dir/$target_name.stamp"
forward_variables_from(invoker, "*") outputs = [
_stamp_file,
]
deps = [
":cronet_impl_native_base_java",
":cronet_jni_registration_java",
]
deps += cronet_impl_native_java_deps_to_package
sources = []
# Extract pre-desugared jar for each dependency.
foreach(dep, deps) {
sources += [ get_label_info(dep, "target_gen_dir") + "/" +
get_label_info(dep, "name") + ".javac.jar" ]
} }
_rebased_sources = rebase_path(sources, root_build_dir)
args = [
"--classes-dir",
rebase_path(_extract_cronet_native_jars_dir, root_build_dir),
"--jars=${_rebased_sources}",
"--depfile",
rebase_path(depfile, root_build_dir),
"--stamp",
rebase_path(_stamp_file, root_build_dir),
]
} }
repackage_jars("repackage_api") { action("repackage_extracted_native_jars") {
output = "$_package_dir/cronet_api.jar" _output_jar = "$_package_dir/cronet_impl_native_java.jar"
script = "//build/android/gyp/jar.py"
outputs = [
_output_jar,
]
args = [
"--classes-dir",
rebase_path(_extract_cronet_native_jars_dir, root_build_dir),
"--excluded-classes=$jar_excluded_patterns",
"--jar-path",
rebase_path(_output_jar, root_build_dir),
]
deps = [ deps = [
":cronet_api_java", ":extract_cronet_native_jars",
] ]
} }
repackage_jars("repackage_platform") { action("extract_cronet_common_jars") {
output = "$_package_dir/cronet_impl_platform_java.jar" # extract_from_jars.py deletes the target directory before extracting.
script = "//components/cronet/tools/extract_from_jars.py"
depfile = "$target_gen_dir/$target_name.d"
_stamp_file = "$target_gen_dir/$target_name.stamp"
outputs = [
_stamp_file,
]
deps = [ deps = [
":cronet_impl_platform_base_java", ":cronet_impl_common_base_java",
] ]
} deps += cronet_impl_common_java_deps_to_package
sources = []
# Extract pre-desugared jar for each dependency.
foreach(dep, deps) {
sources += [ get_label_info(dep, "target_gen_dir") + "/" +
get_label_info(dep, "name") + ".javac.jar" ]
}
_rebased_sources = rebase_path(sources, root_build_dir)
repackage_jars("repackage_native") { args = [
output = "$_package_dir/cronet_impl_native_java.jar" "--classes-dir",
deps = cronet_impl_native_java_deps_to_package + [ rebase_path(_extract_cronet_common_jars_dir, root_build_dir),
":cronet_impl_native_base_java", "--jars=${_rebased_sources}",
":cronet_jni_registration_java", "--depfile",
] rebase_path(depfile, root_build_dir),
jar_excluded_patterns = _jar_excluded_patterns "--stamp",
rebase_path(_stamp_file, root_build_dir),
]
} }
repackage_jars("repackage_common") { action("repackage_extracted_common_jars") {
output = "$_package_dir/cronet_impl_common_java.jar" _output_jar = "$_package_dir/cronet_impl_common_java.jar"
deps = cronet_impl_common_java_deps_to_package +
[ ":cronet_impl_common_base_java" ] script = "//build/android/gyp/jar.py"
outputs = [
_output_jar,
]
args = [
"--classes-dir",
rebase_path(_extract_cronet_common_jars_dir, root_build_dir),
"--jar-path",
rebase_path(_output_jar, root_build_dir),
]
deps = [
":extract_cronet_common_jars",
]
} }
if (!is_component_build) { if (!is_component_build) {
...@@ -1127,14 +1251,69 @@ if (!is_component_build) { ...@@ -1127,14 +1251,69 @@ if (!is_component_build) {
} }
_test_package_dir = "$root_out_dir/cronet/test" _test_package_dir = "$root_out_dir/cronet/test"
_extract_cronet_test_jars_dir = "$target_gen_dir/cronet_test_jar_extract"
cronet_test_deps = [ ":cronet_javatests" ]
cronet_test_deps += cronet_javatests_deps_to_package
action("extract_cronet_test_jars") {
# extract_from_jars.py deletes the target directory before extracting.
script = "//components/cronet/tools/extract_from_jars.py"
depfile = "$target_gen_dir/$target_name.d"
testonly = true
sources = [
NETTY4_JAR_FILE,
]
# Extract pre-desugared jar for each cronet_test_deps.
foreach(dep, cronet_test_deps) {
sources += [ get_label_info(dep, "target_gen_dir") + "/" +
get_label_info(dep, "name") + ".javac.jar" ]
}
_stamp_file = "$target_gen_dir/$target_name.stamp"
outputs = [
_stamp_file,
]
_rebased_sources = rebase_path(sources, root_build_dir)
args = [
"--classes-dir",
rebase_path(_extract_cronet_test_jars_dir, root_build_dir),
"--jars=${_rebased_sources}",
"--depfile",
rebase_path(depfile, root_build_dir),
"--stamp",
rebase_path(_stamp_file, root_build_dir),
]
deps = [
"//third_party/netty4:netty_all_java",
]
deps += cronet_test_deps
}
repackage_jars("repackage_test_jars") { action("repackage_extracted_test_jars") {
output = "$_test_package_dir/cronet_tests_java.jar" _output_jar = "$_test_package_dir/cronet_tests_java.jar"
testonly = true testonly = true
deps = cronet_javatests_deps_to_package + [
":cronet_javatests", script = "//build/android/gyp/jar.py"
"//third_party/netty4:netty_all_java", outputs = [
] _output_jar,
]
args = [
"--classes-dir",
rebase_path(_extract_cronet_test_jars_dir, root_build_dir),
"--jar-path",
rebase_path(_output_jar, root_build_dir),
]
deps = [
":extract_cronet_test_jars",
]
} }
zip("jar_cronet_sample_source") { zip("jar_cronet_sample_source") {
...@@ -1174,7 +1353,7 @@ if (!is_component_build) { ...@@ -1174,7 +1353,7 @@ if (!is_component_build) {
"//net/android:net_android_java_enums_srcjar", "//net/android:net_android_java_enums_srcjar",
"//net/android:net_errors_java", "//net/android:net_errors_java",
] ]
excluded_patterns = _jar_excluded_patterns excluded_patterns = jar_excluded_patterns
jar_path = "$_package_dir/cronet_impl_native_java-src.jar" jar_path = "$_package_dir/cronet_impl_native_java-src.jar"
} }
...@@ -1430,6 +1609,7 @@ if (!is_component_build) { ...@@ -1430,6 +1609,7 @@ if (!is_component_build) {
(!(target_cpu == "arm" && arm_version == 7) || !arm_use_neon)) { (!(target_cpu == "arm" && arm_version == 7) || !arm_use_neon)) {
deps = [ deps = [
":api_static_checks", ":api_static_checks",
":copy_cronet_java8_jars",
":cronet_package_copy", ":cronet_package_copy",
":cronet_package_copy_native_lib", ":cronet_package_copy_native_lib",
":cronet_package_copy_native_lib_unstripped", ":cronet_package_copy_native_lib_unstripped",
...@@ -1442,10 +1622,8 @@ if (!is_component_build) { ...@@ -1442,10 +1622,8 @@ if (!is_component_build) {
":jar_cronet_impl_native_java_source", ":jar_cronet_impl_native_java_source",
":jar_cronet_impl_platform_java_source", ":jar_cronet_impl_platform_java_source",
":jar_cronet_sample_source", ":jar_cronet_sample_source",
":repackage_api", ":repackage_extracted_common_jars",
":repackage_common", ":repackage_extracted_native_jars",
":repackage_native",
":repackage_platform",
] ]
if (current_cpu == "arm" && arm_version == 7) { if (current_cpu == "arm" && arm_version == 7) {
deps += [ ":enforce_no_neon" ] deps += [ ":enforce_no_neon" ]
...@@ -1464,7 +1642,7 @@ if (!is_component_build) { ...@@ -1464,7 +1642,7 @@ if (!is_component_build) {
":cronet_package_copy_test_assets", ":cronet_package_copy_test_assets",
":cronet_package_copy_test_files", ":cronet_package_copy_test_files",
":cronet_package_copy_test_support_apks", ":cronet_package_copy_test_support_apks",
":repackage_test_jars", ":repackage_extracted_test_jars",
] ]
} }
} }
......
#!/usr/bin/env python
#
# Copyright 2014 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 optparse
import os
import sys
REPOSITORY_ROOT = os.path.abspath(os.path.join(
os.path.dirname(__file__), '..', '..', '..'))
sys.path.append(os.path.join(REPOSITORY_ROOT, 'build/android/gyp/util'))
import build_utils
def ExtractJars(options):
# The paths of the files in the jar will be the same as they are passed in to
# the command. Because of this, the command should be run in
# options.classes_dir so the .class file paths in the jar are correct.
jar_cwd = options.classes_dir
build_utils.DeleteDirectory(jar_cwd)
build_utils.MakeDirectory(jar_cwd)
for jar in build_utils.ParseGnList(options.jars):
jar_path = os.path.abspath(jar)
jar_cmd = ['jar', 'xf', jar_path]
build_utils.CheckOutput(jar_cmd, cwd=jar_cwd)
def main():
parser = optparse.OptionParser()
build_utils.AddDepfileOption(parser)
parser.add_option('--classes-dir', help='Directory to extract .class files.')
parser.add_option('--jars', help='Paths to jars to extract.')
parser.add_option('--stamp', help='Path to touch on success.')
options, _ = parser.parse_args()
ExtractJars(options)
if options.depfile:
assert options.stamp
build_utils.WriteDepfile(options.depfile, options.stamp)
if options.stamp:
build_utils.Touch(options.stamp)
if __name__ == '__main__':
sys.exit(main())
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment