diff options
author | David Robillard <d@drobilla.net> | 2018-09-22 10:24:26 +0200 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2018-09-22 10:24:26 +0200 |
commit | 50d838465b76d4e6d1edad42004f09940527f4dc (patch) | |
tree | 44c7ab0110b75c50db839b179d45d0ecb2be1913 /waflib/extras/biber.py | |
parent | ed1e39547d584b21f86a244aeab32e077a21ffe8 (diff) | |
parent | db4fa08d4da3cc840e6f97e6869a877f2b4c9474 (diff) | |
download | lv2-50d838465b76d4e6d1edad42004f09940527f4dc.tar.xz |
Merge commit 'db4fa08d4da3cc840e6f97e6869a877f2b4c9474' as 'waflib'
Diffstat (limited to 'waflib/extras/biber.py')
-rw-r--r-- | waflib/extras/biber.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/waflib/extras/biber.py b/waflib/extras/biber.py new file mode 100644 index 0000000..fd9db4e --- /dev/null +++ b/waflib/extras/biber.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +# encoding: utf-8 +# Thomas Nagy, 2011 (ita) + +""" +Latex processing using "biber" +""" + +import os +from waflib import Task, Logs + +from waflib.Tools import tex as texmodule + +class tex(texmodule.tex): + biber_fun, _ = Task.compile_fun('${BIBER} ${BIBERFLAGS} ${SRCFILE}',shell=False) + biber_fun.__doc__ = """ + Execute the program **biber** + """ + + def bibfile(self): + return None + + def bibunits(self): + self.env.env = {} + self.env.env.update(os.environ) + self.env.env.update({'BIBINPUTS': self.texinputs(), 'BSTINPUTS': self.texinputs()}) + self.env.SRCFILE = self.aux_nodes[0].name[:-4] + + if not self.env['PROMPT_LATEX']: + self.env.append_unique('BIBERFLAGS', '--quiet') + + path = self.aux_nodes[0].abspath()[:-4] + '.bcf' + if os.path.isfile(path): + Logs.warn('calling biber') + self.check_status('error when calling biber, check %s.blg for errors' % (self.env.SRCFILE), self.biber_fun()) + else: + super(tex, self).bibfile() + super(tex, self).bibunits() + +class latex(tex): + texfun, vars = Task.compile_fun('${LATEX} ${LATEXFLAGS} ${SRCFILE}', shell=False) +class pdflatex(tex): + texfun, vars = Task.compile_fun('${PDFLATEX} ${PDFLATEXFLAGS} ${SRCFILE}', shell=False) +class xelatex(tex): + texfun, vars = Task.compile_fun('${XELATEX} ${XELATEXFLAGS} ${SRCFILE}', shell=False) + +def configure(self): + """ + Almost the same as in tex.py, but try to detect 'biber' + """ + v = self.env + for p in ' biber tex latex pdflatex xelatex bibtex dvips dvipdf ps2pdf makeindex pdf2ps'.split(): + try: + self.find_program(p, var=p.upper()) + except self.errors.ConfigurationError: + pass + v['DVIPSFLAGS'] = '-Ppdf' + |