gn2bp: sanitize file path from VersionSanitizer

Test: ./update_results.sh
Change-Id: Icc411534d8940ad88e6bd39af81c54708c76ffd1
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 55f5ab5..4c9c40c 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -713,6 +713,10 @@
     filepath = re.sub('^gen', '$(genDir)', filepath)
     return filepath
 
+  # Iterate through all the args and apply function
+  def _update_all_args(self, func):
+    self.target.args = [func(arg) for arg in self.target.args]
+
   def get_args(self):
     return self.target.args
 
@@ -759,8 +763,17 @@
     return super().get_args()
 
 class VersionSanitizer(BaseActionSanitizer):
+  def _sanitize_version_filepath(self, arg):
+    if arg.startswith('../../'):
+      arg = self._sanitize_filepath(arg)
+      arg = self._add_location_tag(arg)
+    return arg
+
   def get_args(self):
     self._set_value_arg('-o', '$(out)')
+    # args for the version.py contain file path without leading --arg key. So apply sanitize
+    # function for all the args.
+    self._update_all_args(self._sanitize_version_filepath)
     return super().get_args()
 
 def get_action_sanitizer(target):
@@ -837,10 +850,7 @@
     # android_chrome_version.py is not specified in anywhere but version.py imports this file
     module.tool_files.add('build/util/android_chrome_version.py')
     for i, val in enumerate(target.args):
-      if val.startswith('../../'):
-        filename = re.sub('^\.\./\.\./', '', val)
-        target.args[i] = '$(location %s)' % filename
-      elif val == '-e':
+      if val == '-e':
         # arg for -e EVAL option should be passed in -e PATCH_HI=int(PATCH)//256 format.
         target.args[i + 1] = '%s=\'%s\'' % (target.args[i + 1], target.args[i + 2])
         target.args[i + 2] = ''