More command-line customizability: , , , , .
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 3 Dec 2004 04:09:35 +0000 (04:09 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 3 Dec 2004 04:09:35 +0000 (04:09 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1179 fdb21ef1-2011-0410-befe-b5e4ea1792b1

22 files changed:
doc/man/scons.1
src/CHANGES.txt
src/engine/SCons/Tool/latex.py
src/engine/SCons/Tool/pdflatex.py
src/engine/SCons/Tool/pdftex.py
src/engine/SCons/Tool/tex.py
test/TEX/LATEX.py [moved from test/LATEX.py with 100% similarity]
test/TEX/LATEXCOM.py [new file with mode: 0644]
test/TEX/LATEXCOMSTR.py [new file with mode: 0644]
test/TEX/LATEXFLAGS.py [moved from test/LATEXFLAGS.py with 100% similarity]
test/TEX/PDFLATEX.py [moved from test/PDFLATEX.py with 100% similarity]
test/TEX/PDFLATEXCOM.py [new file with mode: 0644]
test/TEX/PDFLATEXCOMSTR.py [new file with mode: 0644]
test/TEX/PDFLATEXFLAGS.py [moved from test/PDFLATEXFLAGS.py with 100% similarity]
test/TEX/PDFTEX.py [moved from test/PDFTEX.py with 100% similarity]
test/TEX/PDFTEXCOM.py [new file with mode: 0644]
test/TEX/PDFTEXCOMSTR.py [new file with mode: 0644]
test/TEX/PDFTEXFLAGS.py [moved from test/PDFTEXFLAGS.py with 100% similarity]
test/TEX/TEX.py [moved from test/TEX.py with 100% similarity]
test/TEX/TEXCOM.py [new file with mode: 0644]
test/TEX/TEXCOMSTR.py [new file with mode: 0644]
test/TEX/TEXFLAGS.py [moved from test/TEXFLAGS.py with 100% similarity]

index f620a9f6205d1505092dba49b92d481595bce229..f83fc9699f09c5aa008cb20a8fecdcc796be7dff 100644 (file)
@@ -4503,6 +4503,16 @@ The command line used to call the bibliography generator for the
 TeX formatter and typesetter and the LaTeX structured formatter and
 typesetter.
 
+.IP BIBTEXCOMSTR
+The string displayed when generating a bibliography
+for TeX or LaTeX.
+If this is not set, then $BIBTEXCOM (the command line) is displayed.
+
+.ES
+env = Environment(BIBTEXCOMSTR = "Generating bibliography $TARGET")
+.EE
+
+
 .IP BIBTEXFLAGS
 General options passed to the bibliography generator for the TeX formatter
 and typesetter and the LaTeX structured formatter and typesetter.
@@ -5584,6 +5594,15 @@ The LaTeX structured formatter and typesetter.
 .IP LATEXCOM
 The command line used to call the LaTeX structured formatter and typesetter.
 
+.IP LATEXCOMSTR
+The string displayed when calling
+the LaTeX structured formatter and typesetter.
+If this is not set, then $LATEXCOM (the command line) is displayed.
+
+.ES
+env = Environment(LATEXCOMSTR = "Building $TARGET from LaTeX input $SOURCES")
+.EE
+
 .IP LATEXFLAGS
 General options passed to the LaTeX structured formatter and typesetter.
 
@@ -6764,6 +6783,15 @@ The TeX formatter and typesetter.
 .IP TEXCOM
 The command line used to call the TeX formatter and typesetter.
 
+.IP TEXCOMSTR
+The string displayed when calling
+the TeX formatter and typesetter.
+If this is not set, then $TEXCOM (the command line) is displayed.
+
+.ES
+env = Environment(TEXCOMSTR = "Building $TARGET from TeX input $SOURCES")
+.EE
+
 .IP TEXFLAGS
 General options passed to the TeX formatter and typesetter.
 
index 40d84541dbcc5bd410d4b2bab1889dd206c992ec..ebfc13c288ed7320065e3aa27014d1ce40996886 100644 (file)
@@ -130,14 +130,15 @@ RELEASE 0.97 - XXX
   - Fix expansion of env.Command() overrides within target and
     source file names.
 
-  - Support easier customization of what's displayed by various default
-    actions by adding new construction variables:  $ARCOMSTR, $ASCOMSTR,
-    $ASPPCOMSTR, $BITKEEPERCOMSTR, $CCCOMSTR, $CVSCOMSTR, $CXXCOMSTR,
-    $F77COMSTR, $F90COMSTR, $F95COMSTR, $FORTRANCOMSTR, $JARCOMSTR,
-    $JAVACCOMSTR, $JAVAHCOMSTR, $LEXCOMSTR, $LINKCOMSTR, $RCSCOMSTR,
+  - Support easier customization of what's displayed by various
+    default actions by adding lots of new construction variables:
+    $ARCOMSTR, $ASCOMSTR, $ASPPCOMSTR, $BIBTEXCOMSTR, $BITKEEPERCOMSTR,
+    $CCCOMSTR, $CVSCOMSTR, $CXXCOMSTR, $F77COMSTR, $F90COMSTR, $F95COMSTR,
+    $FORTRANCOMSTR, $JARCOMSTR, $JAVACCOMSTR, $JAVAHCOMSTR, $LATEXCOMSTR,
+    $LEXCOMSTR, $LINKCOMSTR, $PDFLATEXCOMSTR, $PDFTEXCOMSTR, $RCSCOMSTR,
     $RMICCOMSTR, $SCCSCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR, $SHF77COMSTR,
     $SHF90COMSTR, $SHF95COMSTR, $SHFORTRANCOMSTR, $SHLINKCOMSTR,
-    $TARCOMSTR, $YACCCOMSTR and $ZIPCOMSTR.
+    $TARCOMSTR, $TEXCOMSTR, $YACCCOMSTR and $ZIPCOMSTR.
 
   - Add an optional "map" keyword argument to ListOption() that takes a
     dictionary to map user-specified values to legal values from the list
index 7bbec6f541967485e8a08b00d703f7b5dbcbe00d..f182b3596319c9f4e683d627325fe19f310ffd3a 100644 (file)
@@ -37,7 +37,7 @@ import SCons.Action
 import SCons.Defaults
 import SCons.Util
 
-LaTeXAction = SCons.Action.Action('$LATEXCOM')
+LaTeXAction = SCons.Action.Action('$LATEXCOM', '$LATEXCOMSTR')
 
 def generate(env):
     """Add Builders and construction variables for LaTeX to an Environment."""
index b1a559a93f6780fa16404761f8e5006be1744840..57c6e2deb4938c82d7d7ae978fde7281e596f43c 100644 (file)
@@ -37,7 +37,7 @@ import SCons.Action
 import SCons.Defaults
 import SCons.Util
 
-PDFLaTeXAction = SCons.Action.Action('$PDFLATEXCOM')
+PDFLaTeXAction = SCons.Action.Action('$PDFLATEXCOM', '$PDFLATEXCOMSTR')
 
 def generate(env):
     """Add Builders and construction variables for pdflatex to an Environment."""
index 3d2add0dda4e933c201719029efe8fd9ad6eaa9d..366151e61140123cbd7eb82fe25b1e122f98892d 100644 (file)
@@ -33,9 +33,12 @@ selection method.
 
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
+import SCons.Action
 import SCons.Defaults
 import SCons.Util
 
+PDFTeXAction = SCons.Action.Action('$PDFTEXCOM', '$PDFTEXCOMSTR')
+
 def generate(env):
     """Add Builders and construction variables for pdftex to an Environment."""
     try:
@@ -44,7 +47,7 @@ def generate(env):
         bld = SCons.Defaults.PDF()
         env['BUILDERS']['PDF'] = bld
 
-    bld.add_action('.tex', '$PDFTEXCOM')
+    bld.add_action('.tex', PDFTeXAction)
 
     env['PDFTEX']      = 'pdftex'
     env['PDFTEXFLAGS'] = SCons.Util.CLVar('')
index b9257ea3a96dca17b8d9b46fd7aab597e6b2691a..db2664a354b3b1a031c8963acaae22aac5bc5aa5 100644 (file)
@@ -45,14 +45,14 @@ import SCons.Util
 
 # Define an action to build a generic tex file.  This is sufficient for all 
 # tex files.
-TeXAction = SCons.Action.CommandAction("$TEXCOM")
+TeXAction = SCons.Action.Action("$TEXCOM", "$TEXCOMSTR")
 
 # Define an action to build a latex file.  This action might be needed more
 # than once if we are dealing with labels and bibtex
-LaTeXAction = SCons.Action.CommandAction("$LATEXCOM")
+LaTeXAction = SCons.Action.Action("$LATEXCOM", "$LATEXCOMSTR")
 
 # Define an action to run BibTeX on a file.
-BibTeXAction = SCons.Action.CommandAction("$BIBTEXCOM")
+BibTeXAction = SCons.Action.Action("$BIBTEXCOM", "$BIBTEXCOMSTR")
 
 def LaTeXAuxAction(target = None, source= None, env=None):
     """A builder for LaTeX files that checks the output in the aux file
@@ -74,22 +74,29 @@ def LaTeXAuxAction(target = None, source= None, env=None):
         LaTeXAction(target,source,env)
     return 0
 
-def TeXLaTeXAction(target = None, source= None, env=None):
+LaTeX_re = re.compile("\\\\document(style|class)")
+
+def is_LaTeX(flist):
+    # Scan a file list to decide if it's TeX- or LaTeX-flavored.
+    for f in flist:
+        content = f.get_contents()
+        if LaTeX_re.search(content):
+           return 1
+    return 0
+
+def TeXLaTeXFunction(target = None, source= None, env=None):
     """A builder for TeX and LaTeX that scans the source file to
     decide the "flavor" of the source and then executes the appropriate
     program."""
-    LaTeXFile = None
-    for src in source:
-       content = src.get_contents()
-        if re.search("\\\\document(style|class)",content):
-          LaTeXFile = 1
-           break
-    if LaTeXFile:
+    if is_LaTeX(source):
        LaTeXAuxAction(target,source,env)
     else:
        TeXAction(target,source,env)
     return 0
 
+TeXLaTeXAction = SCons.Action.Action(TeXLaTeXFunction,
+                                     strfunction=None)
+
 def generate(env):
     """Add Builders and construction variables for TeX to an Environment."""
     try:
similarity index 100%
rename from test/LATEX.py
rename to test/TEX/LATEX.py
diff --git a/test/TEX/LATEXCOM.py b/test/TEX/LATEXCOM.py
new file mode 100644 (file)
index 0000000..803d26d
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test the ability to configure the $LATEXCOM construction variable.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mylatex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*latex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['latex'],
+                  LATEXCOM = r'%(python)s mylatex.py $TARGET $SOURCE')
+env.DVI('test1', 'test1.latex')
+""" % locals())
+
+test.write('test1.latex', """\
+test1.latex
+/*latex*/
+""")
+
+test.run()
+
+test.must_match('test1.dvi', "test1.latex\n")
+
+
+
+test.pass_test()
diff --git a/test/TEX/LATEXCOMSTR.py b/test/TEX/LATEXCOMSTR.py
new file mode 100644 (file)
index 0000000..5e31301
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test that the $LATEXCOMSTR construction variable allows you to configure
+the C compilation output.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mylatex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*latex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['latex'],
+                  LATEXCOM = r'%(python)s mylatex.py $TARGET $SOURCE',
+                  LATEXCOMSTR = 'Building $TARGET from $SOURCE')
+env.DVI('test1', 'test1.latex')
+""" % locals())
+
+test.write('test1.latex', """\
+test1.latex
+/*latex*/
+""")
+
+test.run(stdout = test.wrap_stdout("""\
+Building test1.dvi from test1.latex
+""" % locals()))
+
+test.must_match('test1.dvi', "test1.latex\n")
+
+
+
+test.pass_test()
similarity index 100%
rename from test/LATEXFLAGS.py
rename to test/TEX/LATEXFLAGS.py
similarity index 100%
rename from test/PDFLATEX.py
rename to test/TEX/PDFLATEX.py
diff --git a/test/TEX/PDFLATEXCOM.py b/test/TEX/PDFLATEXCOM.py
new file mode 100644 (file)
index 0000000..f46ed37
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test the ability to configure the $PDFLATEXCOM construction variable.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mypdflatex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*latex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['pdflatex'],
+                  PDFLATEXCOM = r'%(python)s mypdflatex.py $TARGET $SOURCE')
+env.PDF('test1', 'test1.latex')
+""" % locals())
+
+test.write('test1.latex', """\
+test1.latex
+/*latex*/
+""")
+
+test.run()
+
+test.must_match('test1.pdf', "test1.latex\n")
+
+
+
+test.pass_test()
diff --git a/test/TEX/PDFLATEXCOMSTR.py b/test/TEX/PDFLATEXCOMSTR.py
new file mode 100644 (file)
index 0000000..94cf121
--- /dev/null
@@ -0,0 +1,74 @@
+
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test that the $PDFLATEXCOMSTR construction variable allows you to configure
+the C compilation output.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mypdflatex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*latex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['pdflatex'],
+                  PDFLATEXCOM = r'%(python)s mypdflatex.py $TARGET $SOURCE',
+                  PDFLATEXCOMSTR = 'Building $TARGET from $SOURCE')
+env.PDF('test1', 'test1.latex')
+""" % locals())
+
+test.write('test1.latex', """\
+test1.latex
+/*latex*/
+""")
+
+test.run(stdout = test.wrap_stdout("""\
+Building test1.pdf from test1.latex
+""" % locals()))
+
+test.must_match('test1.pdf', "test1.latex\n")
+
+
+
+test.pass_test()
similarity index 100%
rename from test/PDFTEX.py
rename to test/TEX/PDFTEX.py
diff --git a/test/TEX/PDFTEXCOM.py b/test/TEX/PDFTEXCOM.py
new file mode 100644 (file)
index 0000000..2a7f06b
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test the ability to configure the $PDFTEXCOM construction variable.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mypdftex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*tex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['pdftex'],
+                  PDFTEXCOM = r'%(python)s mypdftex.py $TARGET $SOURCE')
+env.PDF('test1')
+""" % locals())
+
+test.write('test1.tex', """\
+test1.tex
+/*tex*/
+""")
+
+test.run()
+
+test.must_match('test1.pdf', "test1.tex\n")
+
+
+
+test.pass_test()
diff --git a/test/TEX/PDFTEXCOMSTR.py b/test/TEX/PDFTEXCOMSTR.py
new file mode 100644 (file)
index 0000000..dbb7b39
--- /dev/null
@@ -0,0 +1,74 @@
+
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test that the $PDFTEXCOMSTR construction variable allows you to configure
+the C compilation output.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mypdftex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*tex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['pdftex'],
+                  PDFTEXCOM = r'%(python)s mypdftex.py $TARGET $SOURCE',
+                  PDFTEXCOMSTR = 'Building $TARGET from $SOURCE')
+env.PDF('test1')
+""" % locals())
+
+test.write('test1.tex', """\
+test1.tex
+/*tex*/
+""")
+
+test.run(stdout = test.wrap_stdout("""\
+Building test1.pdf from test1.tex
+""" % locals()))
+
+test.must_match('test1.pdf', "test1.tex\n")
+
+
+
+test.pass_test()
similarity index 100%
rename from test/PDFTEXFLAGS.py
rename to test/TEX/PDFTEXFLAGS.py
similarity index 100%
rename from test/TEX.py
rename to test/TEX/TEX.py
diff --git a/test/TEX/TEXCOM.py b/test/TEX/TEXCOM.py
new file mode 100644 (file)
index 0000000..4957427
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test the ability to configure the $TEXCOM construction variable.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mytex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*tex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['tex'],
+                  TEXCOM = r'%(python)s mytex.py $TARGET $SOURCE')
+env.DVI('test1')
+""" % locals())
+
+test.write('test1.tex', """\
+test1.tex
+/*tex*/
+""")
+
+test.run()
+
+test.must_match('test1.dvi', "test1.tex\n")
+
+
+
+test.pass_test()
diff --git a/test/TEX/TEXCOMSTR.py b/test/TEX/TEXCOMSTR.py
new file mode 100644 (file)
index 0000000..81e7123
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+"""
+Test that the $TEXCOMSTR construction variable allows you to configure
+the C compilation output.
+"""
+
+import os
+import string
+import sys
+import TestSCons
+
+python = TestSCons.python
+_exe   = TestSCons._exe
+
+test = TestSCons.TestSCons()
+
+
+
+test.write('mytex.py', r"""
+import sys
+outfile = open(sys.argv[1], 'wb')
+infile = open(sys.argv[2], 'rb')
+for l in filter(lambda l: l != '/*tex*/\n', infile.readlines()):
+    outfile.write(l)
+sys.exit(0)
+""")
+
+test.write('SConstruct', """
+env = Environment(TOOLS = ['tex'],
+                  TEXCOM = r'%(python)s mytex.py $TARGET $SOURCE',
+                  TEXCOMSTR = 'Building $TARGET from $SOURCE')
+env.DVI('test1')
+""" % locals())
+
+test.write('test1.tex', """\
+test1.tex
+/*tex*/
+""")
+
+test.run(stdout = test.wrap_stdout("""\
+Building test1.dvi from test1.tex
+""" % locals()))
+
+test.must_match('test1.dvi', "test1.tex\n")
+
+
+
+test.pass_test()
similarity index 100%
rename from test/TEXFLAGS.py
rename to test/TEX/TEXFLAGS.py