aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-08-07 14:04:44 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2015-08-07 14:04:44 +0300
commit270b24c8e0a5986c4f13c8d33f4703467fa356fb (patch)
tree57b3dafdef1df6833a4353c5673163c1ae7a0684
parent849786da14251b60be0584b2f481b039e725dd36 (diff)
downloadmeson-270b24c8e0a5986c4f13c8d33f4703467fa356fb.zip
meson-270b24c8e0a5986c4f13c8d33f4703467fa356fb.tar.gz
meson-270b24c8e0a5986c4f13c8d33f4703467fa356fb.tar.bz2
Now with xmlness.
-rwxr-xr-xgtkdochelper.py19
-rw-r--r--modules/gnome.py13
2 files changed, 22 insertions, 10 deletions
diff --git a/gtkdochelper.py b/gtkdochelper.py
index f27b2b5..4709012 100755
--- a/gtkdochelper.py
+++ b/gtkdochelper.py
@@ -17,7 +17,7 @@ import sys, os
import subprocess
import shutil
-def build_gtkdoc(source_root, build_root, doc_subdir, src_subdir, main_sgml, module):
+def build_gtkdoc(source_root, build_root, doc_subdir, src_subdir, main_file, module):
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')
@@ -25,14 +25,19 @@ def build_gtkdoc(source_root, build_root, doc_subdir, src_subdir, main_sgml, mod
'--module=' + module,
'--source-dir=' + abs_src,
'--output-dir=.'], cwd=abs_out)
+ if main_file.endswith('sgml'):
+ modeflag = '--sgml-mode'
+ else:
+ modeflag = '--xml-mode'
mkdb_cmd = ['gtkdoc-mkdb',
'--module=' + module,
'--output-format=xml',
- '--sgml-mode',
+ modeflag,
'--source-dir=' + abs_src]
- sgml_abs = os.path.join(source_root, doc_subdir, main_sgml)
+ main_abs = os.path.join(source_root, doc_subdir, main_file)
if len(main_sgml) > 0:
- mkdb_cmd.append('--main-sgml-file=' + sgml_abs)
+ # Yes, this is the flag even if the file is in xml.
+ mkdb_cmd.append('--main-sgml-file=' + main_abs)
subprocess.check_call(mkdb_cmd, cwd=abs_out)
shutil.rmtree(htmldir, ignore_errors=True)
try:
@@ -40,11 +45,11 @@ def build_gtkdoc(source_root, build_root, doc_subdir, src_subdir, main_sgml, mod
except Exception:
pass
mkhtml_cmd = ['gtkdoc-mkhtml', module]
- if len(main_sgml) > 0:
+ if len(main_file) > 0:
# Workaround for
# https://bugzilla.gnome.org/show_bug.cgi?id=753145
- plainfile = os.path.split(sgml_abs)[1]
- shutil.copy(sgml_abs, os.path.join(abs_out, plainfile))
+ plainfile = os.path.split(main_abs)[1]
+ shutil.copy(main_abs, os.path.join(abs_out, plainfile))
mkhtml_cmd.append('../' + plainfile)
else:
mkhtml_cmd.append('../%s-docs.xml' % module)
diff --git a/modules/gnome.py b/modules/gnome.py
index 43c0537..0295b03 100644
--- a/modules/gnome.py
+++ b/modules/gnome.py
@@ -184,9 +184,16 @@ class GnomeModule:
raise MesonException('Gtkdoc arg must be string.')
if not 'src_dir' in kwargs:
raise MesonException('Keyword argument src_dir missing.')
- main_sgml = kwargs.get('main_sgml', '')
- if not isinstance(main_sgml, str):
+ main_file = kwargs.get('main_sgml', '')
+ if not isinstance(main_file, str):
raise MesonException('Main sgml keyword argument must be a string.')
+ main_xml = kwargs.get('main_xml', '')
+ if not isinstance(main_xml, str):
+ raise MesonException('Main xml 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
src_dir = kwargs['src_dir']
targetname = modulename + '-doc'
command = os.path.normpath(os.path.join(os.path.split(__file__)[0], "../gtkdochelper.py"))
@@ -194,7 +201,7 @@ class GnomeModule:
state.environment.get_build_dir(),
state.subdir,
os.path.normpath(os.path.join(state.subdir, src_dir)),
- main_sgml,
+ main_file,
modulename]
res = [build.RunTarget(targetname, command, args, state.subdir)]
if kwargs.get('install', True):