Portability fixes for tests.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 19 Aug 2003 23:06:05 +0000 (23:06 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 19 Aug 2003 23:06:05 +0000 (23:06 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@773 fdb21ef1-2011-0410-befe-b5e4ea1792b1

doc/man/scons.1
src/CHANGES.txt
src/engine/SCons/Defaults.py
test/BitKeeper.py
test/ToolSurrogate.py

index aaf6c0ff9ee55afbdf4abacbf20dde0254a8167c..640dc670bce45d32b0bcc8cc9e01a2705688caec 100644 (file)
@@ -4359,7 +4359,7 @@ will add to the (now empty) default-target list
 like normal.
 
 .TP
-.RI DefaultEnvironment()
+.RI DefaultEnvironment([ args ])
 Creates and returns a default construction environment object.
 This construction environment is used internally by SCons
 in order to fetch source files transparently
index a990f934ff7949ac7a1a790e4b4f9acaeacdd4ad..8b5e266355f18357daac89d3c60341ef4a2c8be0 100644 (file)
@@ -18,6 +18,9 @@ RELEASE X.XX - XXX, XX XXX XXXX XX:XX:XX XXXXX
 
   - Refactor the DictCmdGenerator class to be a Selector subclass.
 
+  - Allow the DefaultEnvironment() function to take arguments and pass
+    them to instantiation of the default construction environment.
+
   From Gerard Patel
 
   - When the yacc -d flag is used, take the .h file base name from the
index 5ade3e0ba1ebb6f257c692df77850aa3d811e7d2..66e8b008f70977bbc7d8eab3dfe3e0dda14baa9a 100644 (file)
@@ -60,10 +60,10 @@ _default_env = None
 
 # Lazily instantiate the default environment so the overhead of creating
 # it doesn't apply when it's not needed.
-def DefaultEnvironment():
+def DefaultEnvironment(*args, **kw):
     global _default_env
     if not _default_env:
-        _default_env = SCons.Environment.Environment()
+        _default_env = apply(SCons.Environment.Environment, args, kw)
     return _default_env
 
 
index 3374f92a535079fac67a13443fb11db547e3dd21..4d703ab6a5a78bc41f0f752c29b490d0676db2ed 100644 (file)
@@ -46,7 +46,7 @@ def is_writable(file):
 
 try:
     login = os.getlogin()
-except AttributeError:
+except (AttributeError, OSError):
     try:
         login = os.environ['USER']
     except KeyError:
@@ -298,7 +298,7 @@ def cat(env, source, target):
     for src in source:
         f.write(open(src, "rb").read())
     f.close()
-DefaultEnvironment()['SCCS'] = r'%s'
+DefaultEnvironment(tools=['SCCS'])['SCCS'] = r'%s'
 env = Environment(BUILDERS={'Cat':Builder(action=cat)})
 env.Cat('aaa.out', 'aaa.in')
 env.Cat('bbb.out', 'bbb.in')
index f33d804885cb8992d1c467a7bb3f9f49fb5ef9e4..dc190dd016ff0829998e2ba74a3f2795dc672d2c 100644 (file)
@@ -80,22 +80,22 @@ ToolList = {
 platform = ARGUMENTS['platform']
 tools = map(lambda t: apply(ToolSurrogate, t), ToolList[platform])
 
-env = Environment(tools = tools)
+env = Environment(tools=tools, PROGSUFFIX='.exe', OBJSUFFIX='.obj')
 env.Program('foo.c')
 """)
 
 test.write('foo.c', "foo.c posix\n")
 
 test.run(arguments = '. platform=posix', stdout = test.wrap_stdout("""\
-cc -c -o foo.o foo.c
-c++ -o foo foo.o
+cc -c -o foo.obj foo.c
+c++ -o foo.exe foo.obj
 """))
 
 test.write('foo.c', "foo.c win32\n")
 
 test.run(arguments = '. platform=win32', stdout = test.wrap_stdout("""\
-cl /nologo /c foo.c /Fofoo.o
-link /nologo /OUT:foo foo.o
+cl /nologo /c foo.c /Fofoo.obj
+link /nologo /OUT:foo.exe foo.obj
 """))
 
 test.pass_test()