[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