diff options
| author | Robert Managan <managan1@llnl.gov> | 2008-09-04 18:05:49 (GMT) |
|---|---|---|
| committer | Robert Managan <managan1@llnl.gov> | 2008-09-04 18:05:49 (GMT) |
| commit | 6a4d9df86030463c35d40e1a314721eb546fb84e (patch) | |
| tree | 5fcab134f7685c3c589cd2b701d811b6cbc12131 /src/engine | |
| parent | 43528ea6633d5d0d2005de38298b45d631642436 (diff) | |
| download | SCons-6a4d9df86030463c35d40e1a314721eb546fb84e.zip SCons-6a4d9df86030463c35d40e1a314721eb546fb84e.tar.gz SCons-6a4d9df86030463c35d40e1a314721eb546fb84e.tar.bz2 | |
Added a strfunction to the various tex builders. Since the sub-actions report
their commands as they build the strfunction only returns a string for
GetOption("no_exec") which covers --dry-run.
Therefore --dry-run now gets output, the first command to be run plus " ..."
to indicate that the ral builder may repeat or run bibtex, makeindex,...
Also updating the flags to pass -interaction=nonstopmode
This prevents errors in the .tex files from stopping the build
while Latex asks for input.
Updated several tests to handle this new flag by switching to getopt module
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/SCons/Tool/latex.py | 5 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/pdflatex.py | 4 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/pdftex.py | 6 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/tex.py | 21 |
4 files changed, 25 insertions, 11 deletions
diff --git a/src/engine/SCons/Tool/latex.py b/src/engine/SCons/Tool/latex.py index c4934c3..8258829 100644 --- a/src/engine/SCons/Tool/latex.py +++ b/src/engine/SCons/Tool/latex.py @@ -45,7 +45,8 @@ LaTeXAction = None def LaTeXAuxFunction(target = None, source= None, env=None): SCons.Tool.tex.InternalLaTeXAuxAction( LaTeXAction, target, source, env ) -LaTeXAuxAction = SCons.Action.Action(LaTeXAuxFunction, strfunction=None) +LaTeXAuxAction = SCons.Action.Action(LaTeXAuxFunction, + strfunction=SCons.Tool.tex.TeXLaTeXStrFunction) def generate(env): """Add Builders and construction variables for LaTeX to an Environment.""" @@ -63,7 +64,7 @@ def generate(env): bld.add_emitter('.latex', SCons.Tool.tex.tex_emitter) env['LATEX'] = 'latex' - env['LATEXFLAGS'] = SCons.Util.CLVar('') + env['LATEXFLAGS'] = SCons.Util.CLVar('-interaction=nonstopmode') env['LATEXCOM'] = 'cd ${TARGET.dir} && $LATEX $LATEXFLAGS ${SOURCE.file}' env['LATEXRETRIES'] = 3 diff --git a/src/engine/SCons/Tool/pdflatex.py b/src/engine/SCons/Tool/pdflatex.py index 97420a8..b8a7736 100644 --- a/src/engine/SCons/Tool/pdflatex.py +++ b/src/engine/SCons/Tool/pdflatex.py @@ -54,7 +54,7 @@ def generate(env): global PDFLaTeXAuxAction if PDFLaTeXAuxAction is None: PDFLaTeXAuxAction = SCons.Action.Action(PDFLaTeXAuxFunction, - strfunction=None) + strfunction=SCons.Tool.tex.TeXLaTeXStrFunction) import pdf pdf.generate(env) @@ -66,7 +66,7 @@ def generate(env): bld.add_emitter('.latex', SCons.Tool.tex.tex_emitter) env['PDFLATEX'] = 'pdflatex' - env['PDFLATEXFLAGS'] = SCons.Util.CLVar('') + env['PDFLATEXFLAGS'] = SCons.Util.CLVar('-interaction=nonstopmode') env['PDFLATEXCOM'] = 'cd ${TARGET.dir} && $PDFLATEX $PDFLATEXFLAGS ${SOURCE.file}' env['LATEXRETRIES'] = 3 diff --git a/src/engine/SCons/Tool/pdftex.py b/src/engine/SCons/Tool/pdftex.py index e740fac..7bd57b0 100644 --- a/src/engine/SCons/Tool/pdftex.py +++ b/src/engine/SCons/Tool/pdftex.py @@ -71,7 +71,7 @@ def generate(env): global PDFTeXLaTeXAction if PDFTeXLaTeXAction is None: PDFTeXLaTeXAction = SCons.Action.Action(PDFTeXLaTeXFunction, - strfunction=None) + strfunction=SCons.Tool.tex.TeXLaTeXStrFunction) import pdf pdf.generate(env) @@ -81,12 +81,12 @@ def generate(env): bld.add_emitter('.tex', SCons.Tool.tex.tex_emitter) env['PDFTEX'] = 'pdftex' - env['PDFTEXFLAGS'] = SCons.Util.CLVar('') + env['PDFTEXFLAGS'] = SCons.Util.CLVar('-interaction=nonstopmode') env['PDFTEXCOM'] = 'cd ${TARGET.dir} && $PDFTEX $PDFTEXFLAGS ${SOURCE.file}' # Duplicate from latex.py. If latex.py goes away, then this is still OK. env['PDFLATEX'] = 'pdflatex' - env['PDFLATEXFLAGS'] = SCons.Util.CLVar('') + env['PDFLATEXFLAGS'] = SCons.Util.CLVar('-interaction=nonstopmode') env['PDFLATEXCOM'] = 'cd ${TARGET.dir} && $PDFLATEX $PDFLATEXFLAGS ${SOURCE.file}' env['LATEXRETRIES'] = 3 diff --git a/src/engine/SCons/Tool/tex.py b/src/engine/SCons/Tool/tex.py index c3156a3..29dc81d 100644 --- a/src/engine/SCons/Tool/tex.py +++ b/src/engine/SCons/Tool/tex.py @@ -208,7 +208,19 @@ def TeXLaTeXFunction(target = None, source= None, env=None): LaTeXAuxAction(target,source,env) else: TeXAction(target,source,env) - return 0 + +def TeXLaTeXStrFunction(target = None, source= None, env=None): + """A strfunction for TeX and LaTeX that scans the source file to + decide the "flavor" of the source and then returns the appropriate + command string.""" + if env.GetOption("no_exec"): + if is_LaTeX(source): + result = env.subst('$LATEXCOM',0,target,source)+" ..." + else: + result = env.subst("$TEXCOM",0,target,source)+" ..." + else: + result = '' + return result def tex_emitter(target, source, env): base = SCons.Util.splitext(str(source[0]))[0] @@ -275,7 +287,8 @@ def generate(env): global TeXLaTeXAction if TeXLaTeXAction is None: - TeXLaTeXAction = SCons.Action.Action(TeXLaTeXFunction, strfunction=None) + TeXLaTeXAction = SCons.Action.Action(TeXLaTeXFunction, + strfunction=TeXLaTeXStrFunction) import dvi dvi.generate(env) @@ -285,12 +298,12 @@ def generate(env): bld.add_emitter('.tex', tex_emitter) env['TEX'] = 'tex' - env['TEXFLAGS'] = SCons.Util.CLVar('') + env['TEXFLAGS'] = SCons.Util.CLVar('-interaction=nonstopmode') env['TEXCOM'] = 'cd ${TARGET.dir} && $TEX $TEXFLAGS ${SOURCE.file}' # Duplicate from latex.py. If latex.py goes away, then this is still OK. env['LATEX'] = 'latex' - env['LATEXFLAGS'] = SCons.Util.CLVar('') + env['LATEXFLAGS'] = SCons.Util.CLVar('-interaction=nonstopmode') env['LATEXCOM'] = 'cd ${TARGET.dir} && $LATEX $LATEXFLAGS ${SOURCE.file}' env['LATEXRETRIES'] = 3 |
