gn2bp: Support //tools/grit:grit_sources

Test: m cronet_aml_tools_grit_grit_sources
Change-Id: Iac7241872378ba14f82610d62c730828e35b173b
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index b1c88c9..ad075f3 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -10092,11 +10092,11 @@
 // GN: //tools/grit:grit_sources
 genrule {
     name: "cronet_aml_tools_grit_grit_sources",
-    cmd: "$(location tools/grit/stamp_grit_sources.py) ../../tools/grit " +
-         "obj/tools/grit/grit_sources.script.stamp " +
-         "obj/tools/grit/grit_sources.d",
+    cmd: "python $(location tools/grit/stamp_grit_sources.py) `dirname $(location tools/grit/grit.py)` " +
+         "$(out) " +
+         "$(genDir)/grit_sources.d",
     out: [
-        "//out/test/obj/tools/grit/grit_sources.script.stamp",
+        "out/test/obj/tools/grit/grit_sources.script.stamp",
     ],
     tool_files: [
         "tools/grit/grit.py",
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index b2d20ab..f0eb1d8 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -812,6 +812,16 @@
     for i, val in enumerate(target.args):
       if val == '--output':
         target.args[i + 1] = '$(out)'
+  elif target.script == "//tools/grit/stamp_grit_sources.py":
+    target.outputs = [re.sub('^\/\/', '', out) for out in target.outputs]
+    # Directory that contains grit scripts
+    target.args[0] = '`dirname $(location tools/grit/grit.py)`'
+    # Path to the stamp file
+    target.args[1] = '$(out)'
+    # Script tries to create args[2] file but this is not in the output.
+    # Specifying file under $(genDir) so that parent directory exists.
+    # If this file is used by other module, we may need to add this file to the outputs.
+    target.args[2] = '$(genDir)/' + target.args[2].split('/')[-1]
 
   script = gn_utils.label_to_path(target.script)
   module.tool_files.add(script)
@@ -860,6 +870,9 @@
 
   if target.name == "//build/android:build_config_gen":
     module = override_build_config_gen(module)
+  elif target.script == "//tools/grit/stamp_grit_sources.py":
+    # stamp_grit_sources.py is not executable
+    module.cmd = "python " + module.cmd
 
   blueprint.add_module(module)
   return module