gn2bp: Duplicate genrules that affect the JNI/Jarjar
* Most of the genrules doesn't affect the JNI/jajar. Only genrules that uses
the following scripts must be jarjared
* //base/android/jni_generator/jni_generator.py
* //base/android/jni_generator/jni_registration_generator.py
Test: None
Change-Id: I2f750e151002b8b21fa2bfd557ad1bbaf5110dff
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index 09e6b42..25583ed 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -923,9 +923,7 @@
"--input_file " +
"java/lang/Runtime.class " +
"--javap " +
- "$$(find $${OUT_DIR:-out}/.path -name javap) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$$(find $${OUT_DIR:-out}/.path -name javap)",
out: [
"base/android_runtime_jni_headers/Runnable_jni.h",
"base/android_runtime_jni_headers/Runtime_jni.h",
@@ -3183,9 +3181,7 @@
"--input_file " +
"$(location base/android/java/src/org/chromium/base/task/PostTask.java) " +
"--input_file " +
- "$(location base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java)",
out: [
"base/base_jni_headers/ApkAssets_jni.h",
"base/base_jni_headers/ApplicationStatus_jni.h",
@@ -4638,9 +4634,7 @@
"--input_file " +
"$(location base/test/android/java/src/org/chromium/base/ContentUriTestUtils.java) " +
"--input_file " +
- "$(location base/test/android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location base/test/android/java/src/org/chromium/base/JavaHandlerThreadHelpers.java)",
out: [
"base/test/base_unittests_jni_headers/ContentUriTestUtils_jni.h",
"base/test/base_unittests_jni_headers/JavaHandlerThreadHelpers_jni.h",
@@ -5075,9 +5069,7 @@
"--input_file " +
"$(location base/test/android/javatests/src/org/chromium/base/test/task/ThreadPoolTestHelpers.java) " +
"--input_file " +
- "$(location base/test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location base/test/android/javatests/src/org/chromium/base/test/util/UrlUtils.java)",
out: [
"base/test/test_support_jni_headers/MainReturnCodeResult_jni.h",
"base/test/test_support_jni_headers/MultiprocessTestClientLauncher_jni.h",
@@ -6866,9 +6858,7 @@
"--input_file " +
"$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java) " +
"--input_file " +
- "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java)",
out: [
"components/cronet/android/cronet_jni_headers/CronetBidirectionalStream_jni.h",
"components/cronet/android/cronet_jni_headers/CronetLibraryLoader_jni.h",
@@ -7623,8 +7613,6 @@
"--header-path " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h " +
"--manual_jni_registration " +
- "--package_prefix " +
- "android.net.http.internal " +
";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h",
out: [
@@ -9233,9 +9221,7 @@
"--output_name " +
"PrefService_jni.h " +
"--input_file " +
- "$(location components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java)",
out: [
"components/prefs/android/jni_headers/PrefService_jni.h",
],
@@ -13790,9 +13776,7 @@
"--input_file " +
"$(location net/android/java/src/org/chromium/net/ProxyChangeListener.java) " +
"--input_file " +
- "$(location net/android/java/src/org/chromium/net/X509Util.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location net/android/java/src/org/chromium/net/X509Util.java)",
out: [
"net/net_jni_headers/AndroidCertVerifyResult_jni.h",
"net/net_jni_headers/AndroidKeyStore_jni.h",
@@ -16822,9 +16806,7 @@
"--input_file " +
"$(location testing/android/native_test/java/src/org/chromium/native_test/MainRunner.java) " +
"--input_file " +
- "$(location testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location testing/android/native_test/java/src/org/chromium/native_test/NativeTest.java)",
out: [
"testing/android/native_test/native_test_jni_headers/MainRunner_jni.h",
"testing/android/native_test/native_test_jni_headers/NativeTest_jni.h",
@@ -30126,9 +30108,7 @@
"--input_file " +
"$(location url/android/java/src/org/chromium/url/IDNStringUtil.java) " +
"--input_file " +
- "$(location url/android/java/src/org/chromium/url/Origin.java) " +
- "--package_prefix " +
- "android.net.http.internal",
+ "$(location url/android/java/src/org/chromium/url/Origin.java)",
out: [
"url/url_jni_headers/IDNStringUtil_jni.h",
"url/url_jni_headers/Origin_jni.h",
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index ab74962..4c5a479 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -1023,6 +1023,10 @@
return NEWLINE.join(self.target.args)
class JniGeneratorSanitizer(BaseActionSanitizer):
+ def __init__(self, target, arch, is_test_target):
+ self.is_test_target = is_test_target
+ super().__init__(target, arch)
+
def _add_location_tag_to_filepath(self, arg):
if not arg.endswith('.class'):
# --input_file supports both .class specifiers or source files as arguments.
@@ -1039,7 +1043,9 @@
self._delete_value_arg('--prev_output_dir', False)
self._update_list_arg('--input_file', self._sanitize_filepath)
self._update_list_arg('--input_file', self._add_location_tag_to_filepath)
- self._append_arg('--package_prefix', 'android.net.http.internal')
+ if not self.is_test_target:
+ # Only jarjar platform code
+ self._append_arg('--package_prefix', 'android.net.http.internal')
super()._sanitize_args()
def _sanitize_outputs(self):
@@ -1059,6 +1065,10 @@
return tool_files
class JniRegistrationGeneratorSanitizer(BaseActionSanitizer):
+ def __init__(self, target, arch, is_test_target):
+ self.is_test_target = is_test_target
+ super().__init__(target, arch)
+
def _sanitize_inputs(self):
self.target.inputs = [file for file in self.target.inputs if not file.startswith('//out/')]
@@ -1070,7 +1080,9 @@
# update_jni_registration_module removes them from the srcs of the module
# It might be better to remove sources by '--sources-exclusions'
self._delete_value_arg('--sources-exclusions')
- self._append_arg('--package_prefix', 'android.net.http.internal')
+ if not self.is_test_target:
+ # Only jarjar platform code
+ self._append_arg('--package_prefix', 'android.net.http.internal')
super()._sanitize_args()
def get_cmd(self):
@@ -1095,7 +1107,10 @@
class JavaJniRegistrationGeneratorSanitizer(JniRegistrationGeneratorSanitizer):
def get_name(self):
- return label_to_module_name(self.target.name) + "__java"
+ name = super().get_name() + "__java"
+ if self.is_test_target:
+ name += gn_utils.TESTING_SUFFIX
+ return name
def _sanitize_outputs(self):
self.target.outputs = [out for out in self.target.outputs if
@@ -1146,18 +1161,18 @@
self._set_value_arg('--output', '$(out)')
super()._sanitize_args()
-def get_action_sanitizer(target, type, arch):
+def get_action_sanitizer(target, type, arch, is_test_target):
if target.script == "//build/write_buildflag_header.py":
return WriteBuildFlagHeaderSanitizer(target, arch)
elif target.script == "//build/write_build_date_header.py":
return WriteBuildDateHeaderSanitizer(target, arch)
elif target.script == '//base/android/jni_generator/jni_generator.py':
- return JniGeneratorSanitizer(target, arch)
+ return JniGeneratorSanitizer(target, arch, is_test_target)
elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
if type == 'java_genrule':
- return JavaJniRegistrationGeneratorSanitizer(target, arch)
+ return JavaJniRegistrationGeneratorSanitizer(target, arch, is_test_target)
else:
- return JniRegistrationGeneratorSanitizer(target, arch)
+ return JniRegistrationGeneratorSanitizer(target, arch, is_test_target)
elif target.script == "//build/util/version.py":
return VersionSanitizer(target, arch)
elif target.script == "//build/android/gyp/java_cpp_enum.py":
@@ -1176,7 +1191,7 @@
# TODO: throw exception here once all script hacks have been converted.
return BaseActionSanitizer(target, arch)
-def create_action_foreach_modules(blueprint, target):
+def create_action_foreach_modules(blueprint, target, is_test_target):
""" The following assumes that rebase_path exists in the args.
The args of an action_foreach contains hints about which output files are generated
by which source files.
@@ -1207,10 +1222,10 @@
new_args.append(arg)
target.args = new_args
- return create_action_module(blueprint, target, 'cc_genrule')
+ return create_action_module(blueprint, target, 'cc_genrule', is_test_target)
-def create_action_module_internal(target, type, arch=None):
- sanitizer = get_action_sanitizer(target, type, arch)
+def create_action_module_internal(target, type, is_test_target, arch=None):
+ sanitizer = get_action_sanitizer(target, type, arch, is_test_target)
sanitizer.sanitize()
module = Module(type, sanitizer.get_name(), target.name)
@@ -1280,7 +1295,7 @@
merged_module.cmd = merge_cmd(modules, genrule_type)
return merged_module
-def create_action_module(blueprint, target, genrule_type):
+def create_action_module(blueprint, target, genrule_type, is_test_target):
'''
Create module for action target and add to the blueprint. If target has arch specific attributes
this function merge them and create a single module.
@@ -1293,11 +1308,11 @@
# different value for cpu-family arg between archs
if target.name in ['//build/android:native_libraries_gen',
'//build/android:native_libraries_gen__testing']:
- module = create_action_module_internal(target, genrule_type, target.arch['android_arm'])
+ module = create_action_module_internal(target, genrule_type, is_test_target, target.arch['android_arm'])
blueprint.add_module(module)
return module
- modules = {arch_name: create_action_module_internal(target, genrule_type, arch)
+ modules = {arch_name: create_action_module_internal(target, genrule_type, is_test_target, arch)
for arch_name, arch in target.arch.items()}
module = merge_modules(modules, genrule_type)
blueprint.add_module(module)
@@ -1384,9 +1399,9 @@
if module is None:
return None
elif target.type == 'action':
- module = create_action_module(blueprint, target, 'cc_genrule')
+ module = create_action_module(blueprint, target, 'cc_genrule', is_test_target)
elif target.type == 'action_foreach':
- module = create_action_foreach_modules(blueprint, target)
+ module = create_action_foreach_modules(blueprint, target, is_test_target)
elif target.type == 'copy':
# TODO: careful now! copy targets are not supported yet, but this will stop
# traversing the dependency tree. For //base:base, this is not a big
@@ -1634,7 +1649,7 @@
if target.script == '//build/android/gyp/gcc_preprocess.py':
module.srcs.add(':' + create_gcc_preprocess_modules(blueprint, target).name)
else:
- module.srcs.add(':' + create_action_module(blueprint, target, 'java_genrule').name)
+ module.srcs.add(':' + create_action_module(blueprint, target, 'java_genrule', False).name)
preprocessor_module = create_java_jni_preprocessor(blueprint)
module.plugins.add(preprocessor_module.name)
blueprint.add_module(module)
@@ -1649,7 +1664,7 @@
source_module.comment += "\n// TODO(danstahr): add the API helpers separately after the main" \
" API is checked in and thoroughly reviewed"
source_module.srcs.update([
- ':' + create_action_module(blueprint, gn.get_target(dep), 'java_genrule').name
+ ':' + create_action_module(blueprint, gn.get_target(dep), 'java_genrule', False).name
for dep in get_api_java_actions(gn)])
blueprint.add_module(source_module)