diff options
Diffstat (limited to 'src/engine/SCons/Tool')
| -rw-r--r-- | src/engine/SCons/Tool/__init__.py | 7 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/dvips.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/latex.py | 6 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/latex.xml | 10 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/pdflatex.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/pdftex.py | 2 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/tex.py | 21 | ||||
| -rw-r--r-- | src/engine/SCons/Tool/tex.xml | 31 |
8 files changed, 73 insertions, 8 deletions
diff --git a/src/engine/SCons/Tool/__init__.py b/src/engine/SCons/Tool/__init__.py index 94fe121..528ee4d 100644 --- a/src/engine/SCons/Tool/__init__.py +++ b/src/engine/SCons/Tool/__init__.py @@ -45,10 +45,12 @@ import SCons.Errors import SCons.Scanner import SCons.Scanner.C import SCons.Scanner.D +import SCons.Scanner.LaTeX import SCons.Scanner.Prog CScanner = SCons.Scanner.C.CScanner() DScanner = SCons.Scanner.D.DScanner() +LaTeXScanner = SCons.Scanner.LaTeX.LaTeXScanner() ProgramScanner = SCons.Scanner.Prog.ProgramScanner() SourceFileScanner = SCons.Scanner.Scanner({}, name='SourceFileScanner') @@ -62,12 +64,17 @@ DSuffixes = ['.d'] IDLSuffixes = [".idl", ".IDL"] +LaTeXSuffixes = [".tex", ".ltx", ".latex"] + for suffix in CSuffixes: SourceFileScanner.add_scanner(suffix, CScanner) for suffix in DSuffixes: SourceFileScanner.add_scanner(suffix, DScanner) +for suffix in LaTeXSuffixes: + SourceFileScanner.add_scanner(suffix, LaTeXScanner) + class Tool: def __init__(self, name, toolpath=[], **kw): self.name = name diff --git a/src/engine/SCons/Tool/dvips.py b/src/engine/SCons/Tool/dvips.py index d2debf0..02db5ca 100644 --- a/src/engine/SCons/Tool/dvips.py +++ b/src/engine/SCons/Tool/dvips.py @@ -52,7 +52,7 @@ def generate(env): env['DVIPS'] = 'dvips' env['DVIPSFLAGS'] = SCons.Util.CLVar('') - env['PSCOM'] = '$DVIPS $DVIPSFLAGS -o $TARGET $SOURCES' + env['PSCOM'] = '$DVIPS $DVIPSFLAGS -o $TARGET $SOURCE' def exists(env): return env.Detect('dvips') diff --git a/src/engine/SCons/Tool/latex.py b/src/engine/SCons/Tool/latex.py index f182b35..7f16681 100644 --- a/src/engine/SCons/Tool/latex.py +++ b/src/engine/SCons/Tool/latex.py @@ -35,7 +35,9 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import SCons.Action import SCons.Defaults +import SCons.Scanner.LaTeX import SCons.Util +import SCons.Tool LaTeXAction = SCons.Action.Action('$LATEXCOM', '$LATEXCOMSTR') @@ -48,8 +50,8 @@ def generate(env): bld = SCons.Defaults.DVI() env['BUILDERS']['DVI'] = bld - bld.add_action('.ltx', LaTeXAction) - bld.add_action('.latex', LaTeXAction) + for suffix in SCons.Tool.LaTeXSuffixes: + bld.add_action(suffix, LaTeXAction) env['LATEX'] = 'latex' env['LATEXFLAGS'] = SCons.Util.CLVar('') diff --git a/src/engine/SCons/Tool/latex.xml b/src/engine/SCons/Tool/latex.xml index 6a415f7..58a4df5 100644 --- a/src/engine/SCons/Tool/latex.xml +++ b/src/engine/SCons/Tool/latex.xml @@ -34,3 +34,13 @@ env = Environment(LATEXCOMSTR = "Building $TARGET from LaTeX input $SOURCES") General options passed to the LaTeX structured formatter and typesetter. </summary> </cvar> + +<cvar name="TEXINPUTS"> +<summary> +List of directories that the LaTeX programm will search +for include directories. +The LaTeX implicit dependency scanner will search these +directories for \include and \import files. +</summary> +</cvar> + diff --git a/src/engine/SCons/Tool/pdflatex.py b/src/engine/SCons/Tool/pdflatex.py index 57c6e2d..3af09ed 100644 --- a/src/engine/SCons/Tool/pdflatex.py +++ b/src/engine/SCons/Tool/pdflatex.py @@ -52,7 +52,7 @@ def generate(env): env['PDFLATEX'] = 'pdflatex' env['PDFLATEXFLAGS'] = SCons.Util.CLVar('') - env['PDFLATEXCOM'] = '$PDFLATEX $PDFLATEXFLAGS $SOURCES $TARGET' + env['PDFLATEXCOM'] = '$PDFLATEX $PDFLATEXFLAGS $SOURCE' def exists(env): return env.Detect('pdflatex') diff --git a/src/engine/SCons/Tool/pdftex.py b/src/engine/SCons/Tool/pdftex.py index 366151e..92a622a 100644 --- a/src/engine/SCons/Tool/pdftex.py +++ b/src/engine/SCons/Tool/pdftex.py @@ -51,7 +51,7 @@ def generate(env): env['PDFTEX'] = 'pdftex' env['PDFTEXFLAGS'] = SCons.Util.CLVar('') - env['PDFTEXCOM'] = '$PDFTEX $PDFTEXFLAGS $SOURCES $TARGET' + env['PDFTEXCOM'] = '$PDFTEX $PDFTEXFLAGS $SOURCE' def exists(env): return env.Detect('pdftex') diff --git a/src/engine/SCons/Tool/tex.py b/src/engine/SCons/Tool/tex.py index adb6c06..40a8211 100644 --- a/src/engine/SCons/Tool/tex.py +++ b/src/engine/SCons/Tool/tex.py @@ -54,6 +54,9 @@ LaTeXAction = SCons.Action.Action("$LATEXCOM", "$LATEXCOMSTR") # Define an action to run BibTeX on a file. BibTeXAction = SCons.Action.Action("$BIBTEXCOM", "$BIBTEXCOMSTR") +# Define an action to run MakeIndex on a file. +MakeIndexAction = SCons.Action.Action("$MAKEINDEXCOM", "$MAKEINDEXOMSTR") + def LaTeXAuxAction(target = None, source= None, env=None): """A builder for LaTeX files that checks the output in the aux file and decides how many times to use LaTeXAction, and BibTeXAction.""" @@ -66,6 +69,14 @@ def LaTeXAuxAction(target = None, source= None, env=None): if string.find(content, "bibdata") != -1: bibfile = env.fs.File(basename) BibTeXAction(None,bibfile,env) + # Now if makeindex will need to be run. + idxfilename = basename + ".idx" + if os.path.exists(idxfilename): + idxfile = env.fs.File(basename) + # TODO: if ( idxfile has changed) ... + MakeIndexAction(None,idxfile,env) + LaTeXAction(target,source,env) + # Now check if latex needs to be run yet again. for trial in range(3): content = open(basename + ".log","rb").read() @@ -109,17 +120,21 @@ def generate(env): env['TEX'] = 'tex' env['TEXFLAGS'] = SCons.Util.CLVar('') - env['TEXCOM'] = '$TEX $TEXFLAGS $SOURCES' + env['TEXCOM'] = '$TEX $TEXFLAGS $SOURCE' # Duplicate from latex.py. If latex.py goes away, then this is still OK. env['LATEX'] = 'latex' env['LATEXFLAGS'] = SCons.Util.CLVar('') - env['LATEXCOM'] = '$LATEX $LATEXFLAGS $SOURCES' + env['LATEXCOM'] = '$LATEX $LATEXFLAGS $SOURCE' env['BIBTEX'] = 'bibtex' env['BIBTEXFLAGS'] = SCons.Util.CLVar('') - env['BIBTEXCOM'] = '$BIBTEX $BIBTEXFLAGS $SOURCES' + env['BIBTEXCOM'] = '$BIBTEX $BIBTEXFLAGS $SOURCE' + env['MAKEINDEX'] = 'makeindex' + env['MAKEINDEXFLAGS'] = SCons.Util.CLVar('') + env['MAKEINDEXCOM'] = '$MAKEINDEX $MAKEINDEXFLAGS $SOURCES' + def exists(env): return env.Detect('tex') diff --git a/src/engine/SCons/Tool/tex.xml b/src/engine/SCons/Tool/tex.xml index 4f69041..df7196e 100644 --- a/src/engine/SCons/Tool/tex.xml +++ b/src/engine/SCons/Tool/tex.xml @@ -39,6 +39,37 @@ and typesetter and the LaTeX structured formatter and typesetter. </summary> </cvar> +<cvar name="MAKEINDEX"> +<summary> +The makeindex generator for the TeX formatter and typesetter and the +LaTeX structured formatter and typesetter. +</summary> +</cvar> + +<cvar name="MAKEINDEXCOM"> +<summary> +The command line used to call the makeindex generator for the +TeX formatter and typesetter and the LaTeX structured formatter and +typesetter. +</summary> +</cvar> + +<cvar name="MAKEINDEXCOMSTR"> +<summary> +The string displayed when calling the makeindex generator for the +TeX formatter and typesetter +and the LaTeX structured formatter and typesetter. +If this is not set, then &cv-MAKEINDEXCOM; (the command line) is displayed. +</summary> +</cvar> + +<cvar name="MAKEINDEXFLAGS"> +<summary> +General options passed to the makeindex generator for the TeX formatter +and typesetter and the LaTeX structured formatter and typesetter. +</summary> +</cvar> + <cvar name="TEX"> <summary> The TeX formatter and typesetter. |
