Still more Win32 portability.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 14 Jul 2002 17:57:51 +0000 (17:57 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 14 Jul 2002 17:57:51 +0000 (17:57 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@412 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Platform/win32.py
src/engine/SCons/Util.py
test/BuildDir.py
test/SHCCFLAGS.py
test/TAR.py
test/TARFLAGS.py
test/option--U.py
test/option-v.py

index 121fed66c0b9c276e048b50e19f462f14bb5296b..96404396eb24a48cc8c373d413f3b52b0e69a2ab 100644 (file)
@@ -58,5 +58,5 @@ def generate(env):
     env['LIBSUFFIX']      = '.lib'
     env['SHLIBPREFIX']    = ''
     env['SHLIBSUFFIX']    = '.dll'
-    env['LIBPREFIXES']    = '$LIBPREFIX'
-    env['LIBSUFFIXES']    = '$LIBSUFFIX'
+    env['LIBPREFIXES']    = [ '$LIBPREFIX', '$SHLIBPREFIX' ]
+    env['LIBSUFFIXES']    = [ '$LIBSUFFIX', '$SHLIBSUFFIX' ]
index eda8c4070e511deb15ed336cd3fe78a4bd0507ce..89871a3111a3ab5a9110cbfe90278142425e26ee 100644 (file)
@@ -47,10 +47,15 @@ except ImportError:
     class UserString:
         pass
 
+_altsep = os.altsep
+if _altsep is None and sys.platform == 'win32':
+    # My ActivePython 2.0.1 doesn't set os.altsep!  What gives?
+    _altsep = '/'
+
 def splitext(path):
     "Same as os.path.splitext() but faster."
-    if os.altsep:
-        sep = max(string.rfind(path, os.sep), string.rfind(path, os.altsep))
+    if _altsep:
+        sep = max(string.rfind(path, os.sep), string.rfind(path, _altsep))
     else:
         sep = string.rfind(path, os.sep)
     dot = string.rfind(path, '.')
index 14c24e24e5b7a94b8678e44133c431afc68b1515..a283ac73251cc53d3bc8a2c6f60ef86a33c1dded 100644 (file)
@@ -36,6 +36,11 @@ else:
 
 test = TestSCons.TestSCons()
 
+test.write('SConstruct', "print Environment()['F77']\n")
+test.run()
+f77 = test.where_is(test.stdout()[:-1])
+test.unlink('SConstruct')
+
 foo11 = test.workpath('test', 'build', 'var1', 'foo1' + _exe)
 foo12 = test.workpath('test', 'build', 'var1', 'foo2' + _exe)
 foo21 = test.workpath('test', 'build', 'var2', 'foo1' + _exe)
@@ -105,9 +110,10 @@ env.Command(target='f2.c', source='f2.in', action=buildIt)
 env.Program(target='foo2', source='f2.c')
 env.Program(target='foo1', source='f1.c')
 
-env.Command(target='b2.f', source='b2.in', action=buildIt)
-env.Copy(LIBS = 'g2c').Program(target='bar2', source='b2.f')
-env.Copy(LIBS = 'g2c').Program(target='bar1', source='b1.f')
+if WhereIs(env['F77']):
+    env.Command(target='b2.f', source='b2.in', action=buildIt)
+    env.Copy(LIBS = 'g2c').Program(target='bar2', source='b2.f')
+    env.Copy(LIBS = 'g2c').Program(target='bar1', source='b1.f')
 """)
 
 test.write('test/src/f1.c', r"""
@@ -177,16 +183,17 @@ test.run(program = foo42, stdout = "f2.c\n")
 test.run(program = foo51, stdout = "f1.c\n")
 test.run(program = foo52, stdout = "f2.c\n")
 
-test.run(program = bar11, stdout = " b1.for\n")
-test.run(program = bar12, stdout = " b2.for\n")
-test.run(program = bar21, stdout = " b1.for\n")
-test.run(program = bar22, stdout = " b2.for\n")
-test.run(program = bar31, stdout = " b1.for\n")
-test.run(program = bar32, stdout = " b2.for\n")
-test.run(program = bar41, stdout = " b1.for\n")
-test.run(program = bar42, stdout = " b2.for\n")
-test.run(program = bar51, stdout = " b1.for\n")
-test.run(program = bar52, stdout = " b2.for\n")
+if f77:
+    test.run(program = bar11, stdout = " b1.for\n")
+    test.run(program = bar12, stdout = " b2.for\n")
+    test.run(program = bar21, stdout = " b1.for\n")
+    test.run(program = bar22, stdout = " b2.for\n")
+    test.run(program = bar31, stdout = " b1.for\n")
+    test.run(program = bar32, stdout = " b2.for\n")
+    test.run(program = bar41, stdout = " b1.for\n")
+    test.run(program = bar42, stdout = " b2.for\n")
+    test.run(program = bar51, stdout = " b1.for\n")
+    test.run(program = bar52, stdout = " b2.for\n")
 
 # Make sure we didn't duplicate the source files in build/var3.
 test.fail_test(os.path.exists(test.workpath('test', 'build', 'var3', 'f1.c')))
index 8b5a984cee3ec91eada9ccfa2d2f4ddfd2e76574..32b3838c98941c75c8248047989b15b46a70db77 100644 (file)
@@ -29,11 +29,9 @@ import TestSCons
 import os
 
 if sys.platform == 'win32':
-    _obj = '.obj'
     fooflags = '/nologo -DFOO'
     barflags = '/nologo -DBAR'
 else:
-    _obj = '.o'
     fooflags = '-DFOO'
     barflags = '-DBAR'
     
@@ -45,19 +43,21 @@ test = TestSCons.TestSCons()
 test.write('SConstruct', """
 foo = Environment(SHCCFLAGS = '%s', WIN32_INSERT_DEF=1)
 bar = Environment(SHCCFLAGS = '%s', WIN32_INSERT_DEF=1)
-foo.SharedObject(target = 'foo%s', source = 'prog.c')
-bar.SharedObject(target = 'bar%s', source = 'prog.c')
-foo.SharedLibrary(target = 'foo', source = 'foo%s')
-bar.SharedLibrary(target = 'bar', source = 'bar%s')
+
+foo_obj = foo.SharedObject(target = 'foo', source = 'prog.c')
+foo.SharedLibrary(target = 'foo', source = foo_obj)
+
+bar_obj = bar.SharedObject(target = 'bar', source = 'prog.c')
+bar.SharedLibrary(target = 'bar', source = bar_obj)
 
 fooMain = foo.Copy(LIBS='foo', LIBPATH='.')
-foo_obj = fooMain.Object(target='foomain', source='main.c')
-fooMain.Program(target='fooprog', source=foo_obj)
+foomain_obj = fooMain.Object(target='foomain', source='main.c')
+fooMain.Program(target='fooprog', source=foomain_obj)
 
 barMain = bar.Copy(LIBS='bar', LIBPATH='.')
-bar_obj = barMain.Object(target='barmain', source='main.c')
-barMain.Program(target='barprog', source=bar_obj)
-""" % (fooflags, barflags, _obj, _obj, _obj, _obj))
+barmain_obj = barMain.Object(target='barmain', source='main.c')
+barMain.Program(target='barprog', source=barmain_obj)
+""" % (fooflags, barflags))
 
 test.write('foo.def', r"""
 LIBRARY        "foo"
@@ -107,17 +107,19 @@ test.run(program = test.workpath('barprog'), stdout = "prog.c:  BAR\n")
 
 test.write('SConstruct', """
 bar = Environment(SHCCFLAGS = '%s', WIN32_INSERT_DEF=1)
-bar.SharedObject(target = 'foo%s', source = 'prog.c')
-bar.SharedObject(target = 'bar%s', source = 'prog.c')
-bar.SharedLibrary(target = 'foo', source = 'foo%s')
-bar.SharedLibrary(target = 'bar', source = 'bar%s')
+
+foo_obj = bar.SharedObject(target = 'foo', source = 'prog.c')
+bar.SharedLibrary(target = 'foo', source = foo_obj)
+
+bar_obj = bar.SharedObject(target = 'bar', source = 'prog.c')
+bar.SharedLibrary(target = 'bar', source = bar_obj)
 
 barMain = bar.Copy(LIBS='bar', LIBPATH='.')
-foo_obj = barMain.Object(target='foomain', source='main.c')
-bar_obj = barMain.Object(target='barmain', source='main.c')
-barMain.Program(target='barprog', source=foo_obj)
-barMain.Program(target='fooprog', source=bar_obj)
-""" % (barflags, _obj, _obj, _obj, _obj))
+foomain_obj = barMain.Object(target='foomain', source='main.c')
+barmain_obj = barMain.Object(target='barmain', source='main.c')
+barMain.Program(target='barprog', source=foomain_obj)
+barMain.Program(target='fooprog', source=barmain_obj)
+""" % (barflags))
 
 test.run(arguments = '.')
 
index 0327ca992bdf0142da2d27a076c99d79417047cb..0d6f857a7b38cc3a263cde6e072a03f1a7b6eec6 100644 (file)
@@ -123,10 +123,10 @@ bar.Tar(target = 'bar.tar', source = 'file15')
 
     test.fail_test(not os.path.exists(test.workpath('bar.tar')))
 
-    test.run(program = tar, arguments = "-t -f foo.tar")
+    test.run(program = tar, arguments = "-t -f foo.tar", stderr = None)
     test.fail_test(test.stdout() != "file10\nfile11\nfile12\n")
 
-    test.run(program = tar, arguments = "-t -f bar.tar")
+    test.run(program = tar, arguments = "-t -f bar.tar", stderr = None)
     test.fail_test(test.stdout() != "file13\nfile14\nfile15\n")
 
 test.pass_test()
index 4701f35a7bacf242237cb5850713e6c3c0c8b1a6..6fcff4364b6ee0277e4b978d5b4efaf3a2f62654 100644 (file)
@@ -127,7 +127,7 @@ bar.Tar(target = 'bar.tar', source = 'file15')
 
     test.fail_test(not os.path.exists(test.workpath('bar.tar')))
 
-    test.run(program = tar, arguments = "-t -f foo.tar")
+    test.run(program = tar, arguments = "-t -f foo.tar", stderr = None)
     test.fail_test(test.stdout() != "file10\nfile11\nfile12\n")
 
     test.run(program = tar, arguments = "-t -f bar.tar", stderr = None)
index 1facab8fe24879649a6b0839b0e5c0cdad86a242..013b81fdebb62d6c1b094a39b4d1d6b3ece30712 100644 (file)
@@ -71,7 +71,7 @@ test.write(['sub2', 'bar.in'], "sub2/bar.in\n")
 test.write(['sub3', 'baz.in'], "sub3/baz.in\n")
 test.write('xxx.in', "xxx.in\n")
 
-test.write('SConscript', """assert GetLaunchDir() == '%s'"""%test.workpath('sub1'))
+test.write('SConscript', """assert GetLaunchDir() == r'%s'"""%test.workpath('sub1'))
 test.run(arguments = '-U foo.out', chdir = 'sub1')
 
 test.fail_test(not os.path.exists(test.workpath('sub1', 'foo.out')))
@@ -83,7 +83,7 @@ test.fail_test(os.path.exists(test.workpath('sub2/xxx.out')))
 
 test.unlink(['sub1', 'foo.out'])
 
-test.write('SConscript', """assert GetLaunchDir() == '%s'"""%test.workpath('sub1'))
+test.write('SConscript', """assert GetLaunchDir() == r'%s'"""%test.workpath('sub1'))
 test.run(arguments = '-U', chdir = 'sub1')
 test.fail_test(os.path.exists(test.workpath('sub1', 'foo.out')))
 test.fail_test(os.path.exists(test.workpath('sub2', 'bar.out')))
@@ -92,7 +92,7 @@ test.fail_test(os.path.exists(test.workpath('sub3', 'baz.out')))
 test.fail_test(os.path.exists(test.workpath('bar.out')))
 test.fail_test(os.path.exists(test.workpath('sub2/xxx.out')))
 
-test.write('SConscript', """assert GetLaunchDir() == '%s'"""%test.workpath('sub2'))
+test.write('SConscript', """assert GetLaunchDir() == r'%s'"""%test.workpath('sub2'))
 test.run(chdir = 'sub2', arguments = '-U')
 test.fail_test(os.path.exists(test.workpath('sub1', 'foo.out')))
 test.fail_test(not os.path.exists(test.workpath('sub2', 'bar.out')))
@@ -105,7 +105,7 @@ test.unlink(['sub2', 'bar.out'])
 test.unlink(['sub2b', 'bar.out'])
 test.unlink('bar.out')
 
-test.write('SConscript', """assert GetLaunchDir() == '%s'"""%test.workpath())
+test.write('SConscript', """assert GetLaunchDir() == r'%s'"""%test.workpath())
 test.run(arguments='-U')
 test.fail_test(not os.path.exists(test.workpath('sub1', 'foo.out')))
 test.fail_test(os.path.exists(test.workpath('sub2', 'bar.out')))
@@ -118,7 +118,7 @@ test.unlink(['sub1', 'foo.out'])
 test.unlink(['sub3', 'baz.out'])
 test.unlink(['sub2', 'xxx.out'])
 
-test.write('SConscript', """assert GetLaunchDir() == '%s'"""%test.workpath('sub3'))
+test.write('SConscript', """assert GetLaunchDir() == r'%s'"""%test.workpath('sub3'))
 test.run(chdir = 'sub3', arguments='-U bar')
 test.fail_test(os.path.exists(test.workpath('sub1', 'foo.out')))
 test.fail_test(not os.path.exists(test.workpath('sub2', 'bar.out')))
index a0f7d93851e8ad5cb4ebfe50e52103832aa0d6ca..0461e6897a82df19a2233e532d9dcd181e565b9d 100644 (file)
@@ -33,21 +33,26 @@ test = TestSCons.TestSCons(match = TestCmd.match_re)
 
 test.write('SConstruct', "")
 
-if sys.platform == 'win32':
-    expect = r"""SCons by Steven Knight et al.:
+# Win32 may or may not print a line for the script version
+# depending on whether it's invoked through scons.py or scons.bat.
+expect1 = r"""SCons by Steven Knight et al.:
 \tengine: v\S+, [^,]*, by \S+ on \S+
 Copyright 2001, 2002 Steven Knight
 """
-else:
-    expect = r"""SCons by Steven Knight et al.:
+
+expect2 = r"""SCons by Steven Knight et al.:
 \tscript: v\S+, [^,]*, by \S+ on \S+
 \tengine: v\S+, [^,]*, by \S+ on \S+
 Copyright 2001, 2002 Steven Knight
 """
 
-test.run(arguments = '-v', stdout = expect)
+test.run(arguments = '-v')
+test.fail_test(not test.match_re(test.stdout(), expect1) and
+               not test.match_re(test.stdout(), expect2))
 
-test.run(arguments = '--version', stdout = expect)
+test.run(arguments = '--version')
+test.fail_test(not test.match_re(test.stdout(), expect1) and
+               not test.match_re(test.stdout(), expect2))
 
 test.pass_test()