diff --git a/gtkdochelper.py b/gtkdochelper.py index 16ddf6047..c063bb6d4 100755 --- a/gtkdochelper.py +++ b/gtkdochelper.py @@ -27,16 +27,18 @@ parser.add_argument('--headerdir', dest='headerdir') parser.add_argument('--mainfile', dest='mainfile') parser.add_argument('--modulename', dest='modulename') parser.add_argument('--htmlargs', dest='htmlargs', default='') +parser.add_argument('--scanargs', dest='scanargs', default='') def build_gtkdoc(source_root, build_root, doc_subdir, src_subdir, - main_file, module, html_args): + main_file, module, html_args, scan_args): abs_src = os.path.join(source_root, src_subdir) abs_out = os.path.join(build_root, doc_subdir) htmldir = os.path.join(abs_out, 'html') subprocess.check_call(['gtkdoc-scan', '--module=' + module, '--source-dir=' + abs_src, - '--output-dir=.'], cwd=abs_out) + '--output-dir=.'] + scan_args, + cwd=abs_out) if main_file.endswith('sgml'): modeflag = '--sgml-mode' else: @@ -78,17 +80,22 @@ def install_gtkdoc(build_root, doc_subdir, install_prefix, datadir, module): if __name__ == '__main__': options = parser.parse_args(sys.argv[1:]) - if len(options.htmlargs) >0: + if len(options.htmlargs) > 0: htmlargs = options.htmlargs.split('@@') else: htmlargs = [] + if len(options.scanargs) > 0: + scanargs = options.scanargs.split('@@') + else: + scanargs = [] build_gtkdoc(options.sourcedir, options.builddir, options.subdir, options.headerdir, options.mainfile, options.modulename, - htmlargs) + htmlargs, + scanargs) if 'MESON_INSTALL_PREFIX' in os.environ: if 'DESTDIR' in os.environ: diff --git a/modules/gnome.py b/modules/gnome.py index 9e2b4761e..f126bcf2c 100644 --- a/modules/gnome.py +++ b/modules/gnome.py @@ -233,21 +233,26 @@ class GnomeModule: '--headerdir=' + header_dir, '--mainfile=' + main_file, '--modulename=' + modulename] + args += self.unpack_args('--htmlargs=', 'html_args', kwargs) + args += self.unpack_args('--scanargs=', 'scan_args', kwargs) + res = [build.RunTarget(targetname, command, args, state.subdir)] + if kwargs.get('install', True): + res.append(build.InstallScript([command] + args)) + return res + + def unpack_args(self, arg, kwarg_name, kwargs): try: - html_args = kwargs['html_args'] - if not isinstance(html_args, list): - html_args = [html_args] - for i in html_args: + new_args = kwargs[kwarg_name] + if not isinstance(new_args, list): + new_args = [new_args] + for i in new_args: if not isinstance(i, str): raise MesonException('html_args values must be strings.') except KeyError: - html_args = [] + return[] if len(html_args) > 0: - args.append('--htmlargs=' + '@@'.join(html_args)) - res = [build.RunTarget(targetname, command, args, state.subdir)] - if kwargs.get('install', True): - res.append(build.InstallScript([command] + args)) - return res + return ['--htmlargs=' + '@@'.join(new_args)] + return [] def gdbus_codegen(self, state, args, kwargs): if len(args) != 2: