gn2bp: add throw_if_absent parameter to some helper functions
This is much more explicit and should hopefully help us catch errors /
upstream changes early.
Test: none
Change-Id: I4379bbf35d64c5f922a34cdd2f24c6bf03983a94
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 7a31ec2..5c6f036 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -651,26 +651,28 @@
i = self.target.args.index(arg)
return self.target.args[i + 1]
- def _set_value_arg(self, arg, value):
- # Fail silently
- if not self._has_arg(arg):
+ # used to check whether a function call should cause an error when an arg is
+ # missing.
+ def _should_fail_silently(self, arg, throw_if_absent):
+ return not throw_if_absent and not self._has_arg(arg)
+
+ def _set_value_arg(self, arg, value, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
return
assert(self._is_value_arg(arg))
i = self.target.args.index(arg)
self.target.args[i + 1] = value
- def _update_value_arg(self, arg, func):
- # Fail silently
- if not self._has_arg(arg):
+ def _update_value_arg(self, arg, func, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
return
self._set_value_arg(arg, func(self._get_value_arg(arg)))
def _set_arg_at(self, position, value):
self.target.args[position] = value
- def _delete_arg(self, arg):
- # Fail silently
- if not self._has_arg(arg):
+ def _delete_arg(self, arg, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
return
assert(not self._is_list_arg(arg))
hasValue = self._is_value_arg(arg)
@@ -712,13 +714,13 @@
class JniGeneratorSanitizer(BaseActionSanitizer):
def get_args(self):
- self._update_value_arg('--jar_file', self._sanitize_filepath)
- self._update_value_arg('--jar_file', self._add_location_tag)
+ self._update_value_arg('--jar_file', self._sanitize_filepath, False)
+ self._update_value_arg('--jar_file', self._add_location_tag, False)
if self._has_arg('--jar_file'):
self._append_arg('--javap', '$$(find out/.path -name javap)')
self._update_value_arg('--output_dir', self._sanitize_filepath)
- self._update_value_arg('--includes', self._sanitize_filepath)
- self._delete_arg('--prev_output_dir')
+ self._update_value_arg('--includes', self._sanitize_filepath, False)
+ self._delete_arg('--prev_output_dir', False)
return super().get_args()