summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Tool/dvipdf.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Tool/dvipdf.py')
-rw-r--r--src/engine/SCons/Tool/dvipdf.py28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/engine/SCons/Tool/dvipdf.py b/src/engine/SCons/Tool/dvipdf.py
index 1ffb655..bade8ff 100644
--- a/src/engine/SCons/Tool/dvipdf.py
+++ b/src/engine/SCons/Tool/dvipdf.py
@@ -35,18 +35,34 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.Action
import SCons.Defaults
+import SCons.Tool.pdf
import SCons.Util
-PDFAction = SCons.Action.Action('$DVIPDFCOM', '$DVIPDFCOMSTR')
+PDFAction = None
+
+def PDFEmitter(target, source, env):
+ """Strips any .aux or .log files from the input source list.
+ These are created by the TeX Builder that in all likelihood was
+ used to generate the .dvi file we're using as input, and we only
+ care about the .dvi file.
+ """
+ def strip_suffixes(n):
+ return not SCons.Util.splitext(str(n))[1] in ['.aux', '.log']
+ source = filter(strip_suffixes, source)
+ return (target, source)
def generate(env):
"""Add Builders and construction variables for dvipdf to an Environment."""
- try:
- bld = env['BUILDERS']['PDF']
- except KeyError:
- bld = SCons.Defaults.PDF()
- env['BUILDERS']['PDF'] = bld
+ global PDFAction
+ if PDFAction is None:
+ PDFAction = SCons.Action.Action('$DVIPDFCOM', '$DVIPDFCOMSTR')
+
+ import pdf
+ pdf.generate(env)
+
+ bld = env['BUILDERS']['PDF']
bld.add_action('.dvi', PDFAction)
+ bld.add_emitter('.dvi', PDFEmitter)
env['DVIPDF'] = 'dvipdf'
env['DVIPDFFLAGS'] = SCons.Util.CLVar('')