gn2bp: support for jni_generate.py to call javap from soong path
Test: //base:base
Change-Id: I50f224f68805cf4e3cb61df3b2f022be8f38201d
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]