Merge changes I1470e1fa,I52250144,I03b12ae6,Id08cb64c
* changes:
gn2bp: remove hardcoded jni_registration denylist
gn2bp: add javacflag to skip GEN_JNI stub generation
gn2bp: use Android libgtest_prod_headers
gn2bp: depend on :current_android_jar for JNI generation
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index afeffcd..917da93 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -228,6 +228,9 @@
"buildtools/third_party/libc++abi/trunk/include",
"third_party/android_ndk/sources/android/cpufeatures/",
],
+ header_libs: [
+ "libgtest_prod_headers",
+ ],
cpp_std: "c++17",
target: {
android_arm: {
@@ -318,7 +321,7 @@
"--includes " +
"base/android/jni_generator/jni_generator_helper.h " +
"--jar_file " +
- "$(location third_party/android_sdk/public/platforms/android-33/android.jar) " +
+ "$(location :current_android_jar) " +
"--output_name " +
"Runnable_jni.h " +
"--output_name " +
@@ -334,12 +337,12 @@
"base/android_runtime_jni_headers/Runtime_jni.h",
],
tool_files: [
+ ":current_android_jar",
"base/android/jni_generator/android_jar.classes",
"base/android/jni_generator/jni_generator.py",
"build/android/gyp/util/__init__.py",
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
- "third_party/android_sdk/public/platforms/android-33/android.jar",
],
apex_available: [
"com.android.tethering",
@@ -898,6 +901,9 @@
"cronet_aml_build_chromeos_buildflags",
"cronet_aml_build_config_compiler_compiler_buildflags",
],
+ export_header_lib_headers: [
+ "libgtest_prod_headers",
+ ],
defaults: [
"cronet_aml_defaults",
],
@@ -935,6 +941,9 @@
"third_party/icu/source/common/",
"third_party/icu/source/i18n/",
],
+ header_libs: [
+ "libgtest_prod_headers",
+ ],
cpp_std: "c++17",
target: {
android_arm: {
@@ -2606,6 +2615,7 @@
"base/android/java/src/org/chromium/base/RadioUtils.java",
"base/android/java/src/org/chromium/base/StreamUtil.java",
"base/android/java/src/org/chromium/base/StrictModeContext.java",
+ "base/android/java/src/org/chromium/base/SysUtils.java",
"base/android/java/src/org/chromium/base/ThreadUtils.java",
"base/android/java/src/org/chromium/base/TimeUtils.java",
"base/android/java/src/org/chromium/base/TimezoneUtils.java",
@@ -2648,6 +2658,8 @@
"base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
"base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
"base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
"base/android/java/src/org/chromium/base/library_loader/Linker.java",
"base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
"base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
@@ -2678,6 +2690,7 @@
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessConnection.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessConstants.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessLauncher.java",
+ "base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessServiceDelegate.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnection.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionDelegate.java",
@@ -2908,6 +2921,7 @@
"base/android/java/src/org/chromium/base/RadioUtils.java",
"base/android/java/src/org/chromium/base/StreamUtil.java",
"base/android/java/src/org/chromium/base/StrictModeContext.java",
+ "base/android/java/src/org/chromium/base/SysUtils.java",
"base/android/java/src/org/chromium/base/ThreadUtils.java",
"base/android/java/src/org/chromium/base/TimeUtils.java",
"base/android/java/src/org/chromium/base/TimezoneUtils.java",
@@ -2950,6 +2964,8 @@
"base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
"base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
"base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java",
+ "base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java",
"base/android/java/src/org/chromium/base/library_loader/Linker.java",
"base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
"base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
@@ -2980,6 +2996,7 @@
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessConnection.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessConstants.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessLauncher.java",
+ "base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildProcessServiceDelegate.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnection.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionDelegate.java",
@@ -4751,6 +4768,9 @@
"cronet_aml_java_jni_annotation_preprocessor",
],
sdk_version: "module_current",
+ javacflags: [
+ "-Aorg.chromium.chrome.skipGenJni",
+ ],
}
// GN: //base/android/jni_generator:jni_processor
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 9c0f796..d1d1d1c 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -142,6 +142,22 @@
'cronet_aml_crypto_crypto',
}),
],
+ # TODO: fix upstream. Both //base:base and
+ # //base/allocator/partition_allocator:partition_alloc do not create a
+ # dependency on gtest despite using gtest_prod.h.
+ 'cronet_aml_base_base': [
+ ('header_libs', {
+ 'libgtest_prod_headers',
+ }),
+ ('export_header_lib_headers', {
+ 'libgtest_prod_headers',
+ }),
+ ],
+ 'cronet_aml_base_allocator_partition_allocator_partition_alloc': [
+ ('header_libs', {
+ 'libgtest_prod_headers',
+ }),
+ ],
}
def enable_brotli(module, arch):
@@ -323,6 +339,7 @@
self.generated_headers = set()
self.export_generated_headers = set()
self.export_static_lib_headers = set()
+ self.export_header_lib_headers = set()
self.defaults = set()
self.cflags = set()
self.include_dirs = set()
@@ -368,6 +385,7 @@
self.plugins = set()
self.processor_class = None
self.sdk_version = None
+ self.javacflags = set()
def to_string(self, output):
if self.comment:
@@ -393,6 +411,7 @@
self._output_field(output, 'generated_headers')
self._output_field(output, 'export_generated_headers')
self._output_field(output, 'export_static_lib_headers')
+ self._output_field(output, 'export_header_lib_headers')
self._output_field(output, 'defaults')
self._output_field(output, 'cflags')
self._output_field(output, 'include_dirs')
@@ -421,6 +440,7 @@
self._output_field(output, 'plugins')
self._output_field(output, 'processor_class')
self._output_field(output, 'sdk_version')
+ self._output_field(output, 'javacflags')
if self.rtti:
self._output_field(output, 'rtti')
@@ -924,8 +944,7 @@
return arg
def _sanitize_args(self):
- self._update_value_arg('--jar_file', self._sanitize_filepath, False)
- self._update_value_arg('--jar_file', self._add_location_tag, False)
+ self._set_value_arg('--jar_file', '$(location :current_android_jar)', False)
if self._has_arg('--jar_file'):
self._append_arg('--javap', '$$(find out/.path -name javap)')
self._update_value_arg('--output_dir', self._sanitize_filepath)
@@ -945,6 +964,10 @@
# android_jar.classes should be part of the tools as it list implicit classes
# for the script to generate JNI headers.
tool_files.add("base/android/jni_generator/android_jar.classes")
+
+ # Filter android.jar and add :current_android_jar
+ tool_files = {file if not file.endswith('android.jar') else ':current_android_jar'
+ for file in tool_files }
return tool_files
class JniRegistrationGeneratorSanitizer(BaseActionSanitizer):
@@ -1474,6 +1497,12 @@
module.aidl["local_include_dirs"] = {"base/android/java/src/"}
module.sdk_version = "module_current"
module.apex_available.add(tethering_apex)
+ # TODO: support for this flag is removed upstream in crrev/c/4062652.
+ # Consider reverting this change upstream, or worst-case downstream. As an
+ # alternative hack, we could rename the generated file to not conflict. This
+ # would be less likely to conflict with upstream changes if the revert is not
+ # accepted.
+ module.javacflags.add("-Aorg.chromium.chrome.skipGenJni")
# TODO: remove following workaround required to make this module visible to make (b/203203405)
module.apex_available.add("//apex_available:platform")
for dep in gn.java_actions:
@@ -1487,17 +1516,10 @@
blueprint.add_module(module)
def update_jni_registration_module(module, gn):
- # TODO: deny list is in the arg of jni_registration_generator.py. Should not be hardcoded
- deny_list = [
- '//base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java',
- '//base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java',
- '//base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java',
- '//base/android/java/src/org/chromium/base/SysUtils.java']
-
# TODO: java_sources might not contain all the required java files
module.srcs.update([gn_utils.label_to_path(source)
for source in gn.java_sources
- if source.endswith('.java') and source not in deny_list])
+ if source.endswith('.java')])
def create_blueprint_for_targets(gn, targets):
"""Generate a blueprint for a list of GN targets."""