__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-import os
-import sys
-
import TestSCons
+_python_ = TestSCons._python_
+
test = TestSCons.TestSCons()
-test_config = test.workpath('test-config')
+test_config1 = test.workpath('test-config1')
+test_config2 = test.workpath('test-config2')
+test_config3 = test.workpath('test-config3')
# 'abc' is supposed to be a static lib; it is included in LIBS as a
# File node.
# It used to be returned as the 'static_libs' output of ParseConfig.
-test.write('test-config', """#! /usr/bin/env python
-print "-I/usr/include/fum -Ibar -X"
+test.write(test_config1, """\
+print "-I/usr/include/fum -Ibar -X -arch i386"
print "-L/usr/fax -Lfoo -lxxx abc"
""")
-test.write('SConstruct', """
-env = Environment(CPPPATH = [], LIBPATH = [], LIBS = [], CCFLAGS = '')
-env.ParseConfig([r"%s", r"%s", "--libs --cflags"])
+test.write(test_config2, """\
+print "-L foo -L lib_dir"
+""")
+
+# This is like what wxWidgets does on OSX w/ Universal Binaries
+test.write(test_config3, """\
+print "-L foo -L lib_dir -isysroot /tmp -arch ppc -arch i386"
+""")
+
+test.write('SConstruct1', """
+env = Environment(CPPPATH = [], LIBPATH = [], LIBS = [],
+ CCFLAGS = '-pipe -Wall')
+env.ParseConfig([r'%(_python_)s', r"%(test_config1)s", "--libs --cflags"])
+env.ParseConfig([r'%(_python_)s', r"%(test_config2)s", "--libs --cflags"])
print env['CPPPATH']
print env['LIBPATH']
-print map(lambda x: str(x), env['LIBS'])
+print [str(x) for x in env['LIBS']]
print env['CCFLAGS']
-""" % (TestSCons.python, test_config))
+""" % locals())
test.write('SConstruct2', """
-env = Environment(CPPPATH = [], LIBPATH = [], LIBS = [], CCFLAGS = '',
- PYTHON = '%s')
-env.ParseConfig(r"$PYTHON %s --libs --cflags")
+env = Environment(CPPPATH = [], LIBPATH = [], LIBS = [],
+ CCFLAGS = '-pipe -Wall',
+ PYTHON = r'%(_python_)s')
+env.ParseConfig(r"$PYTHON %(test_config1)s --libs --cflags")
+env.ParseConfig(r"$PYTHON %(test_config2)s --libs --cflags")
print env['CPPPATH']
print env['LIBPATH']
-print map(lambda x: str(x), env['LIBS'])
+print [str(x) for x in env['LIBS']]
print env['CCFLAGS']
-""" % (TestSCons.python, test_config))
+""" % locals())
-good_stdout = test.wrap_stdout(read_str = """\
+test.write('SConstruct3', """
+env = Environment(CPPPATH = [], LIBPATH = [], LIBS = [],
+ CCFLAGS = '-pipe -Wall',
+ PYTHON = r'%(_python_)s')
+env.ParseConfig(r"$PYTHON %(test_config3)s --libs --cflags")
+print env['CPPPATH']
+print env['LIBPATH']
+print [str(x) for x in env['LIBS']]
+print env['CCFLAGS']
+""" % locals())
+
+good_stdout = """\
['/usr/include/fum', 'bar']
-['/usr/fax', 'foo']
+['/usr/fax', 'foo', 'lib_dir']
['xxx', 'abc']
-['-X']
-""", build_str = "scons: `.' is up to date.\n")
+['-pipe', '-Wall', '-X', ('-arch', 'i386')]
+"""
-test.run(arguments = ".", stdout = good_stdout)
+stdout3 = """\
+[]
+['foo', 'lib_dir']
+[]
+['-pipe', '-Wall', ('-isysroot', '/tmp'), ('-arch', 'ppc'), ('-arch', 'i386')]
+"""
-test.run(arguments = "-f SConstruct2 .", stdout = good_stdout)
+test.run(arguments = "-q -Q -f SConstruct1 .", stdout = good_stdout)
+
+test.run(arguments = "-q -Q -f SConstruct2 .", stdout = good_stdout)
+
+test.run(arguments = "-q -Q -f SConstruct3 .", stdout = stdout3)
test.pass_test()
+
+# Local Variables:
+# tab-width:4
+# indent-tabs-mode:nil
+# End:
+# vim: set expandtab tabstop=4 shiftwidth=4: