gn2bp: Generate sources file for jni_registration_generator.py

Path in the original sources file does not work in the genrule.
So, generating sources file based on srcs and use this file from
jni_registration_generator.py

Test: ./update_results.sh
Change-Id: Ia1d56b55b441b969191c33ca25a7fff25c033035
diff --git a/Android.bp.swp b/Android.bp.swp
index 3cc60a6..e13e2f8 100644
--- a/Android.bp.swp
+++ b/Android.bp.swp
@@ -1963,12 +1963,17 @@
         "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
         "url/android/java/src/org/chromium/url/IDNStringUtil.java",
     ],
-    cmd: "$(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
+    cmd: "current_dir=`basename \\`pwd\\``; " +
+         "for f in $(in); " +
+         "do " +
+         "echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
+         "done; " +
+         "$(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
          "$(genDir)/components/cronet/android/cronet_jni_registration.srcjar " +
          "--depfile " +
          "$(genDir)/components/cronet/android/cronet_jni_registration.d " +
          "--sources-files " +
-         "@FileArg(gen/components/cronet/android/cronet_impl_native_base_java.build_config.json:deps_info:jni:all_source) " +
+         "$(genDir)/java.sources " +
          "--include_test_only " +
          "--use_proxy_hash " +
          "--header-path " +
diff --git a/gen_android_bp b/gen_android_bp
index 06cbae0..b7c8b88 100755
--- a/gen_android_bp
+++ b/gen_android_bp
@@ -816,6 +816,8 @@
     for i, val in enumerate(target.args):
       if val in ['--depfile', '--srcjar-path', '--header-path']:
         target.args[i + 1] = re.sub('^gen', '$(genDir)', target.args[i + 1])
+      if val == '--sources-files':
+        target.args[i + 1] = '$(genDir)/java.sources'
 
   elif target.script == '//build/android/gyp/write_build_config.py':
     for i, val in enumerate(target.args):
@@ -985,6 +987,18 @@
     # android_jar.classes should be part of the tools as it list implicit classes
     # for the script to generate JNI headers.
     module.tool_files.add("base/android/jni_generator/android_jar.classes")
+  elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
+    # Path in the original sources file does not work in genrule.
+    # So creating sources file in cmd based on the srcs of this target.
+    # Adding ../$(current_dir)/ to the head because jni_registration_generator.py uses the files
+    # whose path startswith(..)
+    commands = ["current_dir=`basename \\\`pwd\\\``;",
+                "for f in $(in);",
+                "do",
+                "echo \\\"../$$current_dir/$$f\\\" >> $(genDir)/java.sources;",
+                "done;",
+                module.cmd]
+    module.cmd = NEWLINE.join(commands)
 
   blueprint.add_module(module)
   return module