diff options
-rw-r--r-- | mesonbuild/modules/hotdoc.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py index 1f7368a..7e4c523 100644 --- a/mesonbuild/modules/hotdoc.py +++ b/mesonbuild/modules/hotdoc.py @@ -87,13 +87,16 @@ class HotdocTargetBuilder: self.cmd.extend([option, value]) def check_extra_arg_type(self, arg, value): + value = getattr(value, 'held_object', value) if isinstance(value, list): for v in value: self.check_extra_arg_type(arg, v) return - if not isinstance(value, (str, bool, mesonlib.File)): - raise InvalidArguments('Argument "%s=%s" should be a string.' % (arg, value)) + valid_types = (str, bool, mesonlib.File, build.IncludeDirs) + if not isinstance(value, valid_types): + raise InvalidArguments('Argument "%s=%s" should be of type: %s.' % ( + arg, value, [t.__name__ for t in valid_types])) def process_extra_args(self): for arg, value in self.kwargs.items(): @@ -198,9 +201,16 @@ class HotdocTargetBuilder: def flatten_config_command(self): cmd = [] for arg in mesonlib.listify(self.cmd, flatten=True): + arg = getattr(arg, 'held_object', arg) if isinstance(arg, mesonlib.File): arg = arg.absolute_path(self.state.environment.get_source_dir(), self.state.environment.get_build_dir()) + elif isinstance(arg, build.IncludeDirs): + for inc_dir in arg.get_incdirs(): + cmd.append(os.path.join(self.sourcedir, arg.get_curdir(), inc_dir)) + cmd.append(os.path.join(self.builddir, arg.get_curdir(), inc_dir)) + + continue cmd.append(arg) |