[PATCH 2/2] Fix building with Sphinx 1.8 and later.

chrisj at rtems.org chrisj at rtems.org
Wed Feb 6 06:03:24 UTC 2019


From: Chris Johns <chrisj at rtems.org>

- Provide the pytnon.ist file for makeindex.

- Add support for xelatex building so we can switch if we want too.

Closes #3669
---
 common/conf.py |  8 +++++---
 common/waf.py  | 39 ++++++++++++++++++++++++++++-----------
 2 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/common/conf.py b/common/conf.py
index c658113..14d5d48 100644
--- a/common/conf.py
+++ b/common/conf.py
@@ -165,6 +165,10 @@ htmlhelp_basename = 'rtemsdoc'
 
 
 # -- Options for LaTeX output --------------------------------------------------
+latex_engine = 'pdflatex'
+
+latex_use_xindy = False
+
 latex_paper_size = 'a4'
 
 # Grouping the document tree into LaTeX files. List of tuples
@@ -176,6 +180,7 @@ latex_documents = [] # must be overridden in local conf.py
 latex_elements = {
     'papersize':    'a4paper',
     'pointsize':    '11pt',
+    'releasename':  '',
     'preamble':     r'''
 \newcommand{\rtemscopyright}{%s}
 \usepackage{rtemsstyle}
@@ -183,11 +188,9 @@ latex_elements = {
     'parsedliteralwraps': True,
 }
 
-
 latex_additional_files = ['../common/rtemsstyle.sty', '../common/minted.sty', '../common/logo.pdf']
 latex_use_modindex = False
 
-
 # The name of an image file (relative to this directory) to place at the top of
 # the title page.
 #latex_logo = None
@@ -204,7 +207,6 @@ latex_show_pagerefs = False
 # If false, no module index is generated.
 #latex_domain_indices = True
 
-
 # Example configuration for intersphinx: refer to the Python standard library.
 #intersphinx_mapping = {'http://docs.python.org/': None}
 
diff --git a/common/waf.py b/common/waf.py
index 01dd24f..f859be7 100644
--- a/common/waf.py
+++ b/common/waf.py
@@ -14,6 +14,7 @@ import sys
 from waflib.Build import BuildContext
 
 import latex
+import conf
 
 sphinx_min_version = (1, 3)
 
@@ -221,15 +222,31 @@ def cmd_configure(ctx):
     #
     ctx.env.BUILD_PDF = 'no'
     if ctx.options.pdf:
-        check_tex = not ctx.env.PDFLATEX
-        if check_tex:
-            ctx.load('tex')
-            if not ctx.env.PDFLATEX or not ctx.env.MAKEINDEX:
-                ctx.fatal('The programs pdflatex and makeindex are required for PDF output')
-            if 'PDFLATEXFLAGS' not in ctx.env or \
-               '-shell-escape' not in ctx.env['PDFLATEXFLAGS']:
-                ctx.env.append_value('PDFLATEXFLAGS', '-shell-escape')
-            latex.configure_tests(ctx)
+        if conf.latex_engine == 'xelatex':
+            if not ctx.env.LATEX_CMD:
+                ctx.load('tex')
+                if not ctx.env.XELATEX or not ctx.env.MAKEINDEX:
+                    ctx.fatal('The programs xelatex and makeindex are required for PDF output')
+                ctx.env.LATEX_CMD = 'xelatex'
+                latex.configure_tests(ctx)
+                # Minted needs 'shell-escape'
+                if 'XELATEXFLAGS' not in ctx.env or \
+                   '-shell-escape' not in ctx.env['XELATEXFLAGS']:
+                    ctx.env.append_value('XELATEXFLAGS', '-shell-escape')
+                ctx.env.append_value('MAKEINDEXFLAGS', ['-s', 'python.ist'])
+        elif conf.latex_engine == 'pdflatex':
+            if not ctx.env.LATEX_CMD:
+                ctx.load('tex')
+                if not ctx.env.PDFLATEX or not ctx.env.MAKEINDEX:
+                    ctx.fatal('The programs pdflatex and makeindex are required for PDF output')
+                if 'PDFLATEXFLAGS' not in ctx.env or \
+                   '-shell-escape' not in ctx.env['PDFLATEXFLAGS']:
+                    ctx.env.append_value('PDFLATEXFLAGS', '-shell-escape')
+                ctx.env.append_value('MAKEINDEXFLAGS', ['-s', 'python.ist'])
+                ctx.env.LATEX_CMD = 'pdflatex'
+                latex.configure_tests(ctx)
+        else:
+            ctx.fatal('Unsupported latex engine: %s' % (conf.latex_engine))
         ctx.env.BUILD_PDF = 'yes'
 
     ctx.envBUILD_SINGLEHTML = 'no'
@@ -286,7 +303,7 @@ def doc_pdf(ctx, source_dir, conf_dir, extra_source):
     ctx(
         features     = 'tex',
         cwd          = output_dir,
-        type         = 'pdflatex',
+        type         = ctx.env.LATEX_CMD,
         source       = "%s/%s.tex" % (buildtype, ctx.path.name),
         prompt       = 0
     )
@@ -384,7 +401,7 @@ def images_plantuml(ctx, source_dir, conf_dir, ext):
             source       = src,
             target       = tgt,
             install_path = None
-    )
+        )
 
 
 def cmd_build(ctx, extra_source = []):
-- 
2.19.1



More information about the devel mailing list