gn2bp: support for jni_generate.py to call javap from soong path
Test: //base:base
Change-Id: I50f224f68805cf4e3cb61df3b2f022be8f38201d
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index 87afdc4..c88c09f 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -265,14 +265,14 @@
name: "cronet_aml_base_android_runtime_jni_headers",
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- "--prev_output_dir " +
- "gen/base/android_runtime_jni_headers " +
+ " " +
+ " " +
"--output_dir " +
"$(genDir)/base/android_runtime_jni_headers " +
"--includes " +
"base/android/jni_generator/jni_generator_helper.h " +
"--jar_file " +
- "../../third_party/android_sdk/public/platforms/android-33/android.jar " +
+ "$(location third_party/android_sdk/public/platforms/android-33/android.jar) " +
"--output_name " +
"Runnable_jni.h " +
"--output_name " +
@@ -280,7 +280,9 @@
"--input_file " +
"java/lang/Runnable.class " +
"--input_file " +
- "java/lang/Runtime.class",
+ "java/lang/Runtime.class " +
+ "--javap " +
+ "$$(find out/.path -name javap)",
out: [
"base/android_runtime_jni_headers/Runnable_jni.h",
"base/android_runtime_jni_headers/Runtime_jni.h",
@@ -1017,8 +1019,8 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- "--prev_output_dir " +
- "gen/base/base_jni_headers " +
+ " " +
+ " " +
"--output_dir " +
"$(genDir)/base/base_jni_headers " +
"--includes " +
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 61cd964..0a73a19 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -688,6 +688,7 @@
# chromium builds against a prebuilt ndk that contains the jni_headers, so
# a dependency is never explicitly created.
module.genrule_header_libs.add('jni_headers')
+ needs_javap = False
for i, val in enumerate(target.args):
if val == '--output_dir':
# replace --output_dir gen/jni_headers/... with --output_dir $(genDir)/...
@@ -704,6 +705,19 @@
if val == '--includes' and 'jni_generator_helper' in target.args[i + 1]:
# delete all leading ../
target.args[i + 1] = re.sub('^(\.\./)+', '', target.args[i + 1])
+ if val == '--prev_output_dir':
+ # this is not needed for aosp builds.
+ target.args[i] = ''
+ target.args[i + 1] = ''
+ if val == '--jar_file':
+ # delete leading ../../ and add path to javap
+ filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
+ target.args[i + 1] = '$(location %s)' % filename
+ needs_javap = True
+
+ if needs_javap:
+ target.args.append('--javap')
+ target.args.append('$$(find out/.path -name javap)')
# fix target.output directory to match #include statements.
target.outputs = [re.sub('^jni_headers/', '', out) for out in target.outputs]