Skip to content

Commit

Permalink
Port cronet_package GYP target to GN
Browse files Browse the repository at this point in the history
BUG=462737

Review URL: https://codereview.chromium.org/1553623003

Cr-Commit-Position: refs/heads/master@{#367480}
  • Loading branch information
agrieve authored and Commit bot committed Jan 5, 2016
1 parent e4d0161 commit e23386b
Show file tree
Hide file tree
Showing 7 changed files with 221 additions and 2 deletions.
1 change: 1 addition & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ group("both_gn_and_gyp") {

if (!is_component_build) {
deps += [
"//components/cronet/android:cronet_package",
"//components/cronet/android:cronet_sample_apk",
"//components/cronet/android:cronet_sample_test_apk",
"//components/cronet/android:cronet_test_apk",
Expand Down
1 change: 1 addition & 0 deletions build/gn_migration.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@
'../cc/cc_tests.gyp:cc_perftests_apk',
'../cc/cc_tests.gyp:cc_unittests_apk',
#"//clank" TODO(GYP) - conditional somehow?
'../components/components.gyp:cronet_package',
'../components/components.gyp:cronet_sample_apk',
'../components/components.gyp:cronet_sample_test_apk',
'../components/components.gyp:cronet_test_apk',
Expand Down
185 changes: 185 additions & 0 deletions components/cronet/android/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -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("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//build/util/version.gni")
import("//chrome/version.gni")
Expand Down Expand Up @@ -498,3 +499,187 @@ test("cronet_unittests") {
"//testing/gtest",
]
}

_package_dir = "$root_out_dir/cronet"
_extract_cronet_jars_dir = "$target_gen_dir/cronet_jar_extract"

action("extract_cronet_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"

sources = [
"$root_out_dir/lib.java/base/base_java.jar",
"$root_out_dir/lib.java/components/cronet/android/cronet_java.jar",
"$root_out_dir/lib.java/net/android/net_java.jar",
"$root_out_dir/lib.java/url/url_java.jar",
]
outputs = [
depfile,
]

_rebased_sources = rebase_path(sources, root_build_dir)

args = [
"--classes-dir",
rebase_path(_extract_cronet_jars_dir, root_build_dir),
"--jars=${_rebased_sources}",
"--depfile",
rebase_path(depfile, root_build_dir),
]

deps = [
":cronet_java",
"//base:base_java",
"//net/android:net_java",
"//url:url_java",
]
}

action("repackage_extracted_jars") {
_output_jar = "$_package_dir/cronet.jar"

script = "//build/android/gyp/jar.py"
outputs = [
_output_jar,
]

args = [
"--classes-dir",
rebase_path(_extract_cronet_jars_dir, root_build_dir),
"--jar-path",
rebase_path(_output_jar, root_build_dir),
]

deps = [
":extract_cronet_jars",
]
}

template("jar_src") {
action(target_name) {
_rebased_src_dirs = rebase_path(invoker.src_dirs, root_build_dir)

script = "//components/cronet/tools/jar_src.py"
depfile = "$target_gen_dir/$target_name.d"
outputs = [
depfile,
invoker.jar_path,
]
args = [
"--src-dir=${_rebased_src_dirs}",
"--jar-path",
rebase_path(invoker.jar_path, root_build_dir),
"--depfile",
rebase_path(depfile, root_build_dir),
]
}
}

jar_src("jar_cronet_api_source") {
src_dirs = [ "api/src" ]
jar_path = "$_package_dir/cronet_api-src.jar"
}

jar_src("jar_cronet_sample_source") {
src_dirs = [ "sample" ]
jar_path = "$_package_dir/cronet-sample-src.jar"
}

jar_src("jar_cronet_other_source") {
src_dirs = [
"//base/android/java/src",
"//components/cronet/android/java/src",
"//net/android/java/src",
"//url/android/java/src",
]
jar_path = "$_package_dir/cronet-src.jar"
}

action("generate_licenses") {
_license_path = "$_package_dir/LICENSE"

script = "//components/cronet/tools/cronet_licenses.py"
outputs = [
_license_path,
]
args = [
"license",
rebase_path(_license_path, root_build_dir),
]
}

action("generate_javadoc") {
script = "//components/cronet/tools/generate_javadoc.py"
depfile = "$target_gen_dir/$target_name.d"
outputs = [
depfile,
]

args = [
"--output-dir",
rebase_path(_package_dir, root_build_dir),
"--input-dir",
rebase_path("//components/cronet", root_build_dir),
"--overview-file",
rebase_path("$_package_dir/README.md.html", root_build_dir),
"--readme-file",
rebase_path("//components/cronet/README.md", root_build_dir),
"--depfile",
rebase_path(depfile, root_build_dir),
]
}

copy("cronet_package_copy") {
sources = [
"$root_out_dir/lib.java/components/cronet/android/cronet_api.jar",
"//AUTHORS",
"//chrome/VERSION",
"//components/cronet/android/proguard.cfg",
]
outputs = [
"$_package_dir/{{source_file_part}}",
]

deps = [
":cronet_api",
]
}

copy("cronet_package_copy_native_lib") {
sources = [
"$root_out_dir/libcronet.so",
]
outputs = [
"$_package_dir/libs/${android_app_abi}/libcronet.so",
]
deps = [
":cronet",
]
}

copy("cronet_package_copy_native_lib_unstripped") {
sources = [
"$root_out_dir/lib.unstripped/libcronet.so",
]
outputs = [
"$_package_dir/symbols/${android_app_abi}/libcronet.so",
]
deps = [
":cronet",
]
}

group("cronet_package") {
deps = [
":cronet_package_copy",
":cronet_package_copy_native_lib",
":cronet_package_copy_native_lib_unstripped",
":generate_javadoc",
":generate_licenses",
":jar_cronet_api_source",
":jar_cronet_other_source",
":jar_cronet_sample_source",
":repackage_extracted_jars",
]
}
5 changes: 5 additions & 0 deletions components/cronet/tools/extract_from_jars.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ def ExtractJars(options):

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.')
Expand All @@ -39,6 +40,10 @@ def main():

ExtractJars(options)

if options.depfile:
build_utils.WriteDepfile(options.depfile,
build_utils.GetPythonDependencies())

if options.stamp:
build_utils.Touch(options.stamp)

Expand Down
9 changes: 8 additions & 1 deletion components/cronet/tools/generate_javadoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ def GenerateJavadoc(options):

def main():
parser = optparse.OptionParser()
build_utils.AddDepfileOption(parser)
parser.add_option('--output-dir', help='Directory to put javadoc')
parser.add_option('--input-dir', help='Root of cronet source')
parser.add_option('--overview-file', help='Path of the overview page')
Expand All @@ -60,6 +61,12 @@ def main():

GenerateJavadoc(options)

if options.depfile:
input_paths = []
for root, _, filenames in os.walk(options.input_dir):
input_paths.extend(os.path.join(root, f) for f in filenames)
build_utils.WriteDepfile(options.depfile,
input_paths + build_utils.GetPythonDependencies())

if __name__ == '__main__':
sys.exit(main())

14 changes: 13 additions & 1 deletion components/cronet/tools/jar_src.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,32 @@ def JarSources(src_dir, jar_path):

def main():
parser = optparse.OptionParser()
build_utils.AddDepfileOption(parser)
parser.add_option('--src-dir', action="append",
help='Directory containing .java files.')
parser.add_option('--jar-path', help='Jar output path.')
parser.add_option('--stamp', help='Path to touch on success.')

options, _ = parser.parse_args()

src_dirs = []
for src_dir in options.src_dir:
src_dirs.extend(build_utils.ParseGypList(src_dir))

for src_dir in src_dirs:
JarSources(src_dir, options.jar_path)

if options.depfile:
input_paths = []
for src_dir in src_dirs:
for root, _, filenames in os.walk(src_dir):
input_paths.extend(os.path.join(root, f) for f in filenames)
build_utils.WriteDepfile(options.depfile,
input_paths + build_utils.GetPythonDependencies())

if options.stamp:
build_utils.Touch(options.stamp)


if __name__ == '__main__':
sys.exit(main())

8 changes: 8 additions & 0 deletions url/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,13 @@ component("url") {
}

if (is_android) {
android_library("url_java") {
DEPRECATED_java_in_dir = "android/java/src"
deps = [
"//base:base_java",
]
}

generate_jni("url_jni_headers") {
sources = [
"android/java/src/org/chromium/url/IDNStringUtil.java",
Expand All @@ -98,6 +105,7 @@ if (is_android) {
]

deps = [
":url_java",
":url_jni_headers",
"//base",
"//base/third_party/dynamic_annotations",
Expand Down

0 comments on commit e23386b

Please sign in to comment.