[rtems-docs commit] waf: Use the good fonts if installed.

Chris Johns chrisj at rtems.org
Tue Nov 8 04:59:02 UTC 2016


Module:    rtems-docs
Branch:    master
Commit:    2fdbc9826f31ba7c890a7b9e4fcfebcb2a4bad8b
Changeset: http://git.rtems.org/rtems-docs/commit/?id=2fdbc9826f31ba7c890a7b9e4fcfebcb2a4bad8b

Author:    Chris Johns <chrisj at rtems.org>
Date:      Tue Nov  8 15:58:58 2016 +1100

waf: Use the good fonts if installed.

---

 common/latex.py                       | 28 ++++++++++++++++++++++++----
 common/latex/rtemsextrafonts-null.sty |  1 +
 common/latex/rtemsextrafonts.sty      | 11 +++++++++++
 common/rtemsstyle.sty                 | 13 +------------
 common/waf.py                         | 18 ++++++++++++------
 5 files changed, 49 insertions(+), 22 deletions(-)

diff --git a/common/latex.py b/common/latex.py
index 2cc3101..b3ca60c 100644
--- a/common/latex.py
+++ b/common/latex.py
@@ -39,11 +39,13 @@ package_tests = {
     'hypcap'         : ['\\usepackage{hyperref}',
                         '\\usepackage{hypcap}'],
     'hyperref'       : ['\\usepackage{hyperref}'],
+    'inconsolata'    : ['\\usepackage{inconsolata}'],
     'ifplatform'     : ['\\usepackage{ifplatform}'],
     'ifthen'         : ['\\usepackage{ifthen}'],
     'inputenc'       : ['\\usepackage{inputenc}'],
     'keyval'         : ['\\usepackage{keyval}'],
     'kvoptions'      : ['\\usepackage{kvoptions}'],
+    'lato'           : ['\\usepackage{lato}'],
     'lineno'         : ['\\usepackage{lineno}'],
     'longtable'      : ['\\usepackage{longtable}'],
     'makeidx'        : ['\\usepackage{makeidx}'],
@@ -60,6 +62,8 @@ package_tests = {
     'xcolor'         : ['\\usepackage{xcolor}'],
     'xstring'        : ['\\usepackage{xstring}'],
 }
+package_optional = ['inconsolata',
+                    'lato']
 
 #
 # Add per host support. If there is a version clash for the same texlive
@@ -124,11 +128,12 @@ def configure_tests(conf):
 
     tests = sorted(package_tests.keys())
     local_packs = local_packages()
+    excludes = package_optional
     if local_packs is not None:
-        excludes = [p[:p.rfind('.')] for p in local_packs]
-        for e in excludes:
-            if e in tests:
-                tests.remove(e)
+        excludes += [p[:p.rfind('.')] for p in local_packs]
+    for e in excludes:
+        if e in tests:
+            tests.remove(e)
 
     fails = 0
     r = conf.find_program("pygmentize", mandatory = False)
@@ -145,3 +150,18 @@ def configure_tests(conf):
             fails += 1
     if fails > 0:
         conf.fatal('There are %d Tex package failures. Please fix.' % (fails))
+
+    fails = 0
+    for t in package_optional:
+        r = conf.test(build_fun = build_latex_test,
+                      msg = "Checking for Tex package '%s'" % (t),
+                      tex_test = t,
+                      okmsg = 'ok',
+                      errmsg = 'degraded fonts',
+                      mandatory = False)
+        if r is None:
+            fails += 1
+    if fails == 0:
+        conf.env.RTEMSEXTRAFONTS = 'rtemsextrafonts.sty'
+    else:
+        conf.env.RTEMSEXTRAFONTS = 'rtemsextrafonts-null.sty'
diff --git a/common/latex/rtemsextrafonts-null.sty b/common/latex/rtemsextrafonts-null.sty
new file mode 100644
index 0000000..350431f
--- /dev/null
+++ b/common/latex/rtemsextrafonts-null.sty
@@ -0,0 +1 @@
+% Empty
diff --git a/common/latex/rtemsextrafonts.sty b/common/latex/rtemsextrafonts.sty
new file mode 100644
index 0000000..eb7ef47
--- /dev/null
+++ b/common/latex/rtemsextrafonts.sty
@@ -0,0 +1,11 @@
+% Not widely used.
+\usepackage[defaultsans]{lato}
+\usepackage{inconsolata}
+
+% fix single quotes, for inconsolata. (does not work)
+%%\usepackage{textcomp}
+%%\begingroup
+%%  \catcode`'=\active
+%%  \g at addto@macro\@noligs{\let'\textsinglequote}
+%%  \endgroup
+%%\endinput
diff --git a/common/rtemsstyle.sty b/common/rtemsstyle.sty
index 441c454..5bf5c26 100644
--- a/common/rtemsstyle.sty
+++ b/common/rtemsstyle.sty
@@ -137,15 +137,4 @@ gobble=0,
 
 % fonts
 \usepackage{charter}
-% remove, not widely supported on some Linux hosts.
-%%\usepackage[defaultsans]{lato}
-% remove, not widely supported on some Linux hosts.
-%%\usepackage{inconsolata}
-
-% fix single quotes, for inconsolata. (does not work)
-%%\usepackage{textcomp}
-%%\begingroup
-%%  \catcode`'=\active
-%%  \g at addto@macro\@noligs{\let'\textsinglequote}
-%%  \endgroup
-%%\endinput
+\usepackage{rtemsextrafonts}
diff --git a/common/waf.py b/common/waf.py
index 0086be0..c1d3f81 100644
--- a/common/waf.py
+++ b/common/waf.py
@@ -89,21 +89,27 @@ def build_dir_setup(ctx, buildtype):
     return build_dir, output_node, output_dir, doctrees
 
 def pdf_resources(ctx, buildtype):
+    packages_base = ctx.path.parent.find_dir('common/latex')
+    if packages_base is None:
+        ctx.fatal('Latex package directory not found')
+    base = packages_base.path_from(ctx.path)
+    fnode = ctx.path.get_bld().make_node(buildtype)
+    fnode.mkdir()
     local_packages = latex.local_packages()
     if local_packages is not None:
-        packages_base = ctx.path.parent.find_dir('common/latex')
-        if packages_base is None:
-            ctx.fatal('Latex package directory not found')
-        base = packages_base.path_from(ctx.path)
         srcs = [os.path.join(base, p) for p in local_packages]
-        fnode = ctx.path.get_bld().make_node(buildtype)
-        fnode.mkdir()
         ctx(
             features = "subst",
             is_copy  = True,
             source   = srcs,
             target   = [fnode.make_node(p) for p in local_packages]
         )
+    ctx(
+        features = "subst",
+        is_copy  = True,
+        source   = os.path.join(base, ctx.env.RTEMSEXTRAFONTS),
+        target   = fnode.make_node('rtemsextrafonts.sty')
+    )
 
 def html_resources(ctx, buildtype):
     for dir_name in ["_static", "_templates"]:




More information about the vc mailing list