summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorRobert Managan <managan1@llnl.gov>2008-09-04 18:05:49 (GMT)
committerRobert Managan <managan1@llnl.gov>2008-09-04 18:05:49 (GMT)
commit6a4d9df86030463c35d40e1a314721eb546fb84e (patch)
tree5fcab134f7685c3c589cd2b701d811b6cbc12131 /src/engine
parent43528ea6633d5d0d2005de38298b45d631642436 (diff)
downloadSCons-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.py5
-rw-r--r--src/engine/SCons/Tool/pdflatex.py4
-rw-r--r--src/engine/SCons/Tool/pdftex.py6
-rw-r--r--src/engine/SCons/Tool/tex.py21
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