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
This commit is contained in:
parent
edb2fd014b
commit
f27cd35ddc
2 changed files with 42 additions and 47 deletions
|
|
@ -923,9 +923,7 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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 @@ cc_genrule {
|
|||
"--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",
|
||||
|
|
|
|||
|
|
@ -1023,6 +1023,10 @@ class GnRunBinary(BaseActionSanitizer):
|
|||
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 @@ class JniGeneratorSanitizer(BaseActionSanitizer):
|
|||
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 @@ class JniGeneratorSanitizer(BaseActionSanitizer):
|
|||
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 @@ class JniRegistrationGeneratorSanitizer(BaseActionSanitizer):
|
|||
# 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 JniRegistrationGeneratorSanitizer(BaseActionSanitizer):
|
|||
|
||||
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 @@ class WriteNativeLibrariesJavaSanitizer(BaseActionSanitizer):
|
|||
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 @@ def get_action_sanitizer(target, type, arch):
|
|||
# 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 @@ def create_action_foreach_modules(blueprint, target):
|
|||
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 @@ def merge_modules(modules, genrule_type):
|
|||
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 @@ def create_action_module(blueprint, target, genrule_type):
|
|||
# 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 @@ def create_modules_from_target(blueprint, gn, gn_target_name, is_test_target):
|
|||
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 @@ def create_java_module(blueprint, gn):
|
|||
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 @@ def create_java_api_module(blueprint, gn):
|
|||
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)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue