diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/modules/gnome.py | 15 | ||||
-rw-r--r-- | mesonbuild/scripts/gtkdochelper.py | 17 |
2 files changed, 26 insertions, 6 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 7802472..5128de4 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -326,7 +326,7 @@ class GnomeModule(ExtensionModule): for dep in deps: if isinstance(dep, InternalDependency): - cflags.update(dep.compile_args) + cflags.update(dep.get_compile_args()) cflags.update(get_include_args(dep.include_directories)) for lib in dep.libraries: if hasattr(lib, 'held_object'): @@ -883,12 +883,13 @@ This will become a hard error in the future.''') return ModuleReturnValue(None, rv) @FeatureNewKwargs('gnome.gtkdoc', '0.48.0', ['c_args']) + @FeatureNewKwargs('gnome.gtkdoc', '0.48.0', ['module_version']) @FeatureNewKwargs('gnome.gtkdoc', '0.37.0', ['namespace', 'mode']) @permittedKwargs({'main_xml', 'main_sgml', 'src_dir', 'dependencies', 'install', 'install_dir', 'scan_args', 'scanobjs_args', 'gobject_typesfile', 'fixxref_args', 'html_args', 'html_assets', 'content_files', 'mkdb_args', 'ignore_headers', 'include_directories', - 'namespace', 'mode', 'expand_content_files'}) + 'namespace', 'mode', 'expand_content_files', 'module_version'}) def gtkdoc(self, state, args, kwargs): if len(args) != 1: raise MesonException('Gtkdoc must have one positional argument.') @@ -903,11 +904,14 @@ This will become a hard error in the future.''') main_xml = kwargs.get('main_xml', '') if not isinstance(main_xml, str): raise MesonException('Main xml keyword argument must be a string.') + moduleversion = kwargs.get('module_version', '') + if not isinstance(moduleversion, str): + raise MesonException('Module version keyword argument must be a string.') if main_xml != '': if main_file != '': raise MesonException('You can only specify main_xml or main_sgml, not both.') main_file = main_xml - targetname = modulename + '-doc' + targetname = modulename + ('-' + moduleversion if moduleversion else '') + '-doc' command = state.environment.get_build_command() namespace = kwargs.get('namespace', '') @@ -938,6 +942,7 @@ This will become a hard error in the future.''') '--headerdirs=' + '@@'.join(header_dirs), '--mainfile=' + main_file, '--modulename=' + modulename, + '--moduleversion=' + moduleversion, '--mode=' + mode] if namespace: args.append('--namespace=' + namespace) @@ -1013,6 +1018,10 @@ This will become a hard error in the future.''') ldflags.update(state.environment.coredata.get_external_link_args('c')) compiler = state.environment.coredata.compilers.get('c') + compiler_flags = self._get_langs_compilers_flags(state, [('c', compiler)]) + cflags.update(compiler_flags[0]) + ldflags.update(compiler_flags[1]) + ldflags.update(compiler_flags[2]) if compiler: args += ['--cc=%s' % ' '.join(compiler.get_exelist())] args += ['--ld=%s' % ' '.join(compiler.get_linker_exelist())] diff --git a/mesonbuild/scripts/gtkdochelper.py b/mesonbuild/scripts/gtkdochelper.py index bf3d9f6..04b4deb 100644 --- a/mesonbuild/scripts/gtkdochelper.py +++ b/mesonbuild/scripts/gtkdochelper.py @@ -28,6 +28,7 @@ parser.add_argument('--subdir', dest='subdir') parser.add_argument('--headerdirs', dest='headerdirs') parser.add_argument('--mainfile', dest='mainfile') parser.add_argument('--modulename', dest='modulename') +parser.add_argument('--moduleversion', dest='moduleversion') parser.add_argument('--htmlargs', dest='htmlargs', default='') parser.add_argument('--scanargs', dest='scanargs', default='') parser.add_argument('--scanobjsargs', dest='scanobjsargs', default='') @@ -73,7 +74,7 @@ def gtkdoc_run_check(cmd, cwd, library_paths=None): print(out) def build_gtkdoc(source_root, build_root, doc_subdir, src_subdirs, - main_file, module, + main_file, module, module_version, html_args, scan_args, fixxref_args, mkdb_args, gobject_typesfile, scanobjs_args, run, ld, cc, ldflags, cflags, html_assets, content_files, ignore_headers, namespace, @@ -191,7 +192,7 @@ def build_gtkdoc(source_root, build_root, doc_subdir, src_subdirs, else: mkhtml_cmd.append('%s-docs.xml' % module) # html gen must be run in the HTML dir - gtkdoc_run_check(mkhtml_cmd, os.path.join(abs_out, 'html')) + gtkdoc_run_check(mkhtml_cmd, htmldir) # Fix cross-references in HTML files fixref_cmd = ['gtkdoc-fixxref', @@ -199,6 +200,10 @@ def build_gtkdoc(source_root, build_root, doc_subdir, src_subdirs, '--module-dir=html'] + fixxref_args gtkdoc_run_check(fixref_cmd, abs_out) + if module_version: + shutil.move(os.path.join(htmldir, '{}.devhelp2'.format(module)), + os.path.join(htmldir, '{}-{}.devhelp2'.format(module, module_version))) + def install_gtkdoc(build_root, doc_subdir, install_prefix, datadir, module): source = os.path.join(build_root, doc_subdir, 'html') final_destination = os.path.join(install_prefix, datadir, module) @@ -234,6 +239,7 @@ def run(args): options.headerdirs.split('@@'), options.mainfile, options.modulename, + options.moduleversion, htmlargs, scanargs, fixxrefargs, @@ -255,7 +261,12 @@ def run(args): if 'MESON_INSTALL_PREFIX' in os.environ: destdir = os.environ.get('DESTDIR', '') install_prefix = destdir_join(destdir, os.environ['MESON_INSTALL_PREFIX']) - install_dir = options.install_dir if options.install_dir else options.modulename + if options.install_dir: + install_dir = options.install_dir + else: + install_dir = options.modulename + if options.moduleversion: + install_dir += '-' + options.moduleversion if os.path.isabs(install_dir): install_dir = destdir_join(destdir, install_dir) install_gtkdoc(options.builddir, |