166 строки
4.7 KiB
Plaintext
166 строки
4.7 KiB
Plaintext
# 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("//build/config/android/config.gni")
|
|
import("//build/config/android/rules.gni")
|
|
|
|
if (enable_java_templates) {
|
|
import("//third_party/ijar/ijar.gni")
|
|
|
|
sun_tools_jar_path = "$root_gen_dir/sun_tools_jar/tools.jar"
|
|
|
|
# Create or update the API versions cache if necessary by running a
|
|
# functionally empty lint task. This prevents racy creation of the
|
|
# cache while linting java targets in android_lint.
|
|
android_lint("prepare_android_lint_cache") {
|
|
android_manifest = "//build/android/AndroidManifest.xml"
|
|
create_cache = true
|
|
}
|
|
|
|
action("find_sun_tools_jar") {
|
|
script = "//build/android/gyp/find_sun_tools_jar.py"
|
|
depfile = "$target_gen_dir/$target_name.d"
|
|
outputs = [
|
|
sun_tools_jar_path,
|
|
]
|
|
args = [
|
|
"--depfile",
|
|
rebase_path(depfile, root_build_dir),
|
|
"--output",
|
|
rebase_path(sun_tools_jar_path, root_build_dir),
|
|
]
|
|
}
|
|
|
|
java_prebuilt("sun_tools_java") {
|
|
jar_path = sun_tools_jar_path
|
|
jar_dep = ":find_sun_tools_jar"
|
|
}
|
|
|
|
generate_interface_jar("android_ijar") {
|
|
input_jar = android_sdk_jar
|
|
output_jar = "$root_out_dir/lib.java/android.interface.jar"
|
|
}
|
|
|
|
# Write to a file some GN vars that are useful to scripts that use the output
|
|
# directory. Format is chosen as easliy importable by both python and bash.
|
|
CR = "$0x0A"
|
|
_data = ""
|
|
_data += "android_sdk_build_tools=" +
|
|
rebase_path(android_sdk_build_tools, root_build_dir) + CR
|
|
_data += "android_sdk_build_tools_version=$android_sdk_build_tools_version$CR"
|
|
_data +=
|
|
"android_sdk_root=" + rebase_path(android_sdk_root, root_build_dir) + CR
|
|
_data += "android_sdk_version=$android_sdk_version$CR"
|
|
_data += "android_tool_prefix=" +
|
|
rebase_path(android_tool_prefix, root_build_dir) + CR
|
|
write_file("$root_build_dir/build_vars.txt", _data)
|
|
}
|
|
|
|
# Copy to the lib.unstripped directory so that gdb can easily find it.
|
|
copy("cpplib_unstripped") {
|
|
_soname = "libc++_shared.so"
|
|
sources = [
|
|
"${android_libcpp_lib_dir}/${_soname}",
|
|
]
|
|
outputs = [
|
|
"${root_out_dir}/lib.unstripped/${_soname}",
|
|
]
|
|
}
|
|
|
|
action("cpplib_stripped") {
|
|
_strip_bin = "${android_tool_prefix}strip"
|
|
_soname = "libc++_shared.so"
|
|
_input_so = "${root_shlib_dir}/lib.unstripped/${_soname}"
|
|
_output_so = "${root_shlib_dir}/${_soname}"
|
|
|
|
deps = [
|
|
":cpplib_unstripped",
|
|
]
|
|
|
|
script = "//build/gn_run_binary.py"
|
|
inputs = [
|
|
_strip_bin,
|
|
]
|
|
sources = [
|
|
_input_so,
|
|
]
|
|
outputs = [
|
|
_output_so,
|
|
]
|
|
data = [
|
|
_output_so,
|
|
]
|
|
|
|
_rebased_strip_bin = rebase_path(_strip_bin, root_build_dir)
|
|
_rebased_input_so = rebase_path(_input_so, root_build_dir)
|
|
_rebased_output_so = rebase_path(_output_so, root_build_dir)
|
|
args = [
|
|
_rebased_strip_bin,
|
|
"--strip-unneeded",
|
|
"-o",
|
|
_rebased_output_so,
|
|
_rebased_input_so,
|
|
]
|
|
}
|
|
|
|
group("test_runner_py") {
|
|
_py_files = read_file("test_runner.pydeps", "list lines")
|
|
|
|
# Filter out comments.
|
|
set_sources_assignment_filter([ "#*" ])
|
|
sources = _py_files
|
|
|
|
data = sources + [
|
|
"devil_chromium.json",
|
|
"pylib/gtest/filter/",
|
|
"pylib/instrumentation/render_test.html.jinja",
|
|
"test_wrapper/logdog_wrapper.py",
|
|
"${android_sdk_build_tools}/aapt",
|
|
"${android_sdk_build_tools}/dexdump",
|
|
"${android_sdk_build_tools}/lib64/libc++.so",
|
|
"${android_sdk_build_tools}/split-select",
|
|
"${android_sdk_root}/platform-tools/adb",
|
|
"//third_party/catapult/third_party/gsutil/",
|
|
"//third_party/catapult/devil/devil/devil_dependencies.json",
|
|
"//third_party/proguard/lib/proguard.jar",
|
|
]
|
|
}
|
|
|
|
group("logdog_wrapper_py") {
|
|
_py_files = read_file("test_wrapper/logdog_wrapper.pydeps", "list lines")
|
|
|
|
# Filter out comments.
|
|
set_sources_assignment_filter([ "#*" ])
|
|
sources = _py_files
|
|
|
|
data = sources
|
|
}
|
|
|
|
# Create wrapper scripts in out/bin that takes care of setting the
|
|
# --output-directory.
|
|
_scripts_to_wrap = [
|
|
# TODO(agrieve): Once GYP is no more, delete the checked-in adb_gdb_* scripts
|
|
# and generated a script for each android_apk() that has a native library.
|
|
"adb_gdb_android_webview_shell",
|
|
"adb_gdb_chrome_public",
|
|
"adb_gdb_content_shell",
|
|
"adb_gdb_cronet_sample",
|
|
"adb_gdb_mojo_shell",
|
|
"asan_symbolize.py",
|
|
"tombstones.py",
|
|
]
|
|
|
|
_wrapper_targets = []
|
|
foreach(script, _scripts_to_wrap) {
|
|
_target_name = get_path_info(script, "name") + "_wrapper"
|
|
_wrapper_targets += [ ":$_target_name" ]
|
|
wrapper_script(_target_name) {
|
|
target = script
|
|
}
|
|
}
|
|
|
|
group("wrapper_scripts") {
|
|
deps = _wrapper_targets
|
|
}
|