summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/man/scons.118
-rw-r--r--doc/user/ENV.in2
-rw-r--r--doc/user/environments.in4
-rw-r--r--doc/user/preface.in4
-rw-r--r--src/CHANGES.txt14
-rw-r--r--src/engine/SCons/ActionTests.py8
-rw-r--r--src/engine/SCons/Node/FS.py17
-rw-r--r--src/engine/SCons/Node/FSTests.py22
-rw-r--r--src/engine/SCons/Platform/__init__.py8
-rw-r--r--src/engine/SCons/SConfTests.py4
-rw-r--r--src/engine/SCons/Script/Main.py6
-rw-r--r--src/engine/SCons/Sig/MD5.py2
-rw-r--r--src/engine/SCons/Tool/Perforce.py2
-rw-r--r--src/engine/SCons/Tool/__init__.xml14
-rw-r--r--src/engine/SCons/Tool/cvf.py8
-rw-r--r--src/engine/SCons/Tool/dmd.py2
-rw-r--r--src/engine/SCons/Tool/intelc.py32
-rw-r--r--src/engine/SCons/Tool/mingw.py12
-rw-r--r--src/engine/SCons/Tool/mslink.py48
-rw-r--r--src/engine/SCons/Tool/mslink.xml83
-rw-r--r--src/engine/SCons/Util.py4
-rw-r--r--src/engine/SCons/dblite.py12
22 files changed, 194 insertions, 132 deletions
diff --git a/doc/man/scons.1 b/doc/man/scons.1
index cab561c..3c014c6 100644
--- a/doc/man/scons.1
+++ b/doc/man/scons.1
@@ -359,7 +359,7 @@ By default,
.B scons
knows how to search for available programming tools
on various systems.
-On WIN32 systems,
+On Windows systems,
.B scons
searches in order for the
Microsoft Visual C++ tools,
@@ -1083,7 +1083,7 @@ that use sockets to connect with other systems
(such as fetching source files from
external CVS repository specifications like
.BR :pserver:anonymous@cvs.sourceforge.net:/cvsroot/scons )
-will work on Win32 systems.
+will work on Windows systems.
The platform argument may be function or callable object,
in which case the Environment() method
@@ -1279,7 +1279,7 @@ environment with a default set of tools for the current platform.
On posix and cygwin platforms
the GNU tools (e.g. gcc) are preferred by SCons,
-on win32 the Microsoft tools (e.g. msvc)
+on Windows the Microsoft tools (e.g. msvc)
followed by MinGW are preferred by SCons,
and in OS/2 the IBM tools (e.g. icc) are preferred by SCons.
@@ -2941,7 +2941,7 @@ that use sockets to connect with other systems
(such as fetching source files from
external CVS repository specifications like
.BR :pserver:anonymous@cvs.sourceforge.net:/cvsroot/scons )
-will work on Win32 systems.
+will work on Windows systems.
'\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.TP
@@ -3850,7 +3850,7 @@ the value of the calling environment's PATH
or the user's current external PATH
(os.environ['PATH'])
by default.
-On Win32 systems, searches for executable
+On Windows systems, searches for executable
programs with any of the file extensions
listed in the specified
.I pathext,
@@ -6034,7 +6034,7 @@ with directories separated by
.B /
(forward slashes)
not backslashes.
-This is sometimes necessary on Win32 systems
+This is sometimes necessary on Windows systems
when a path references a file on other (POSIX) systems.
.IP srcpath
@@ -6409,7 +6409,7 @@ SCons treats a file with a
suffix as a Fortran source file that should
.I not
be run through the C preprocessor.
-.SS WIN32: Cygwin Tools and Cygwin Python vs. Windows Pythons
+.SS Windows: Cygwin Tools and Cygwin Python vs. Windows Pythons
Cygwin supplies a set of tools and utilities
that let users work on a
Windows system using a more POSIX-like environment.
@@ -6444,8 +6444,8 @@ when using Microsoft Visual C/C++
(or some other Windows compiler)
use the python.org or ActiveState version of Python
to run SCons.
-.SS WIN32: scons.bat file
-On WIN32 systems,
+.SS Windows: scons.bat file
+On Windows systems,
SCons is executed via a wrapper
.B scons.bat
file.
diff --git a/doc/user/ENV.in b/doc/user/ENV.in
index 56d5901..3c8cfd5 100644
--- a/doc/user/ENV.in
+++ b/doc/user/ENV.in
@@ -57,7 +57,7 @@
on a POSIX system
is <literal>/usr/local/bin:/bin:/usr/bin</literal>.
The default value of the &PATH; environment variable
- on a Win32 system comes from the Windows registry
+ on a Windows system comes from the Windows registry
value for the command interpreter.
If you want to execute any commands--compilers, linkers, etc.--that
are not in these default locations,
diff --git a/doc/user/environments.in b/doc/user/environments.in
index 586242c..9b5c348 100644
--- a/doc/user/environments.in
+++ b/doc/user/environments.in
@@ -125,7 +125,7 @@ UNIX system are:
ENV => { 'PATH' => '/bin:/usr/bin' },
-And on a Win32 system (Windows NT), the default construction variables
+And on a Windows system (Windows NT), the default construction variables
are (unless the default rule style is set using the B<DefaultRules>
method):
@@ -735,7 +735,7 @@ environment undisturbed.
<para>
- And on Win32:
+ And on Windows:
</para>
diff --git a/doc/user/preface.in b/doc/user/preface.in
index 9d0323e..2914d40 100644
--- a/doc/user/preface.in
+++ b/doc/user/preface.in
@@ -345,12 +345,12 @@
&SCons; has received contributions
from many other people, of course:
- Matt Balvin (extending long command-line support on Win32),
+ Matt Balvin (extending long command-line support on Windows),
Allen Bierbaum (extensions and fixes to Options),
Steve Christensen (help text sorting and function action signature fixes),
Michael Cook (avoiding losing signal bits from executed commands),
Derrick 'dman' Hudson (),
- Alex Jacques (work on the Win32 scons.bat file),
+ Alex Jacques (work on the Windows scons.bat file),
Stephen Kennedy (performance enhancements),
Lachlan O'Dea (SharedObject() support for masm
and normalized paths for the WhereIs() function),
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 481f6f3..d221061 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -421,6 +421,12 @@ RELEASE 0.97 - XXX
- Add a --taskmastertrace=FILE option to give some insight on how
the taskmaster decides what Node to build next.
+ - Changed the names of the old $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
+ $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX construction variables to
+ new $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX, $WINDOWSDLLPREFIX and
+ $WINDOWSIMPLIBPREFIX construction variables. The old names are now
+ deprecated, but preserved for backwards compatibility.
+
From Chen Lee:
- Handle Visual Studio project and solution files in Unicode.
@@ -442,10 +448,10 @@ RELEASE 0.97 - XXX
- Add support for Visual Studio Express Editions.
- Add support for Visual Studio 8 *.manifest files, includng
- new $WIN32_INSERT_MANIFEST, $WIN32PROGMANIFESTSUFFIX,
- $WIN32PROGMANIFESTPREFIX, $WIN32PROGMANIFESTSUFFIX,
- $WIN32SHLIBMANIFESTPREFIX and $WIN32SHLIBMANIFESTSUFFIX construction
- variables.
+ new $WINDOWS_INSERT_MANIFEST, $WINDOWSPROGMANIFESTSUFFIX,
+ $WINDOWSPROGMANIFESTPREFIX, $WINDOWSPROGMANIFESTSUFFIX,
+ $WINDOWSSHLIBMANIFESTPREFIX and $WINDOWSSHLIBMANIFESTSUFFIX
+ construction variables.
From Sanjoy Mahajan:
diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index 3cc563b..63e86de 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -1053,10 +1053,10 @@ class CommandActionTestCase(unittest.TestCase):
# test redirection operators
def test_redirect(self, redir, stdout_msg, stderr_msg):
cmd = r'%s %s %s xyzzy %s' % (python, act_py, outfile, redir)
- # Write the output and error messages to files because Win32
- # can't handle strings that are too big in its external
- # environment (os.spawnve() returns EINVAL, "Invalid
- # argument").
+ # Write the output and error messages to files because
+ # Windows can't handle strings that are too big in its
+ # external environment (os.spawnve() returns EINVAL,
+ # "Invalid argument").
stdout_file = test.workpath('stdout_msg')
stderr_file = test.workpath('stderr_msg')
open(stdout_file, 'w').write(stdout_msg)
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 69936d2..d9282ea 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -405,7 +405,7 @@ class EntryProxy(SCons.Util.Proxy):
r = string.replace(entry.get_path(), os.sep, '/')
return SCons.Subst.SpecialAttrWrapper(r, entry.name + "_posix")
- def __get_win32_path(self):
+ def __get_windows_path(self):
"""Return the path with \ as the path separator,
regardless of platform."""
if os.sep == '\\':
@@ -413,7 +413,7 @@ class EntryProxy(SCons.Util.Proxy):
else:
entry = self.get()
r = string.replace(entry.get_path(), os.sep, '\\')
- return SCons.Subst.SpecialAttrWrapper(r, entry.name + "_win32")
+ return SCons.Subst.SpecialAttrWrapper(r, entry.name + "_windows")
def __get_srcnode(self):
return EntryProxy(self.get().srcnode())
@@ -436,7 +436,8 @@ class EntryProxy(SCons.Util.Proxy):
dictSpecialAttrs = { "base" : __get_base_path,
"posix" : __get_posix_path,
- "win32" : __get_win32_path,
+ "windows" : __get_windows_path,
+ "win32" : __get_windows_path,
"srcpath" : __get_srcnode,
"srcdir" : __get_srcdir,
"dir" : __get_dir,
@@ -452,7 +453,7 @@ class EntryProxy(SCons.Util.Proxy):
# This is how we implement the "special" attributes
# such as base, posix, srcdir, etc.
try:
- return self.dictSpecialAttrs[name](self)
+ attr_function = self.dictSpecialAttrs[name]
except KeyError:
try:
attr = SCons.Util.Proxy.__getattr__(self, name)
@@ -467,6 +468,8 @@ class EntryProxy(SCons.Util.Proxy):
classname = classname[:-2]
raise AttributeError, "%s instance '%s' has no attribute '%s'" % (classname, entry.name, name)
return attr
+ else:
+ return attr_function(self)
class Base(SCons.Node.Node):
"""A generic class for file system entries. This class is for
@@ -907,12 +910,12 @@ class FS(LocalFS):
__cacheable__"""
if not name:
- # This is a stupid hack to compensate for the fact that
- # the POSIX and Win32 versions of os.path.normpath() behave
+ # This is a stupid hack to compensate for the fact that the
+ # POSIX and Windows versions of os.path.normpath() behave
# differently in older versions of Python. In particular,
# in POSIX:
# os.path.normpath('./') == '.'
- # in Win32
+ # in Windows:
# os.path.normpath('./') == ''
# os.path.normpath('.\\') == ''
#
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index 8c95f87..96fa490 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -960,14 +960,14 @@ class FSTestCase(_tempdirTestCase):
p = os.path.abspath(test.workpath('root_file'))
drive, path = os.path.splitdrive(p)
if drive:
- # The assert below probably isn't correct for the
- # general case, but it works for Win32, which covers a
- # lot of ground...
+ # The assert below probably isn't correct for the general
+ # case, but it works for Windows, which covers a lot
+ # of ground...
dir = fs.Dir(drive)
assert str(dir) == drive + os.sep, str(dir)
# Test for a bug in 0.04 that did not like looking up
- # dirs with a trailing slash on Win32.
+ # dirs with a trailing slash on Windows.
d=fs.Dir('./')
assert d.path == '.', d.abspath
d=fs.Dir('foo/')
@@ -1132,7 +1132,7 @@ class FSTestCase(_tempdirTestCase):
f1.built()
assert not f1.exists()
- # For some reason, in Win32, the \x1a character terminates
+ # For some reason, in Windows, the \x1a character terminates
# the reading of files in text mode. This tests that
# get_contents() returns the binary contents.
test.write("binary_file", "Foo\x1aBar")
@@ -2800,12 +2800,20 @@ class SpecialAttrTestCase(unittest.TestCase):
for_sig = f.posix.for_signature()
assert for_sig == 'baz.blat_posix', for_sig
+ s = str(f.windows)
+ assert s == 'foo\\bar\\baz.blat', repr(s)
+ assert f.windows.is_literal(), f.windows
+ if f.windows != f:
+ for_sig = f.windows.for_signature()
+ assert for_sig == 'baz.blat_windows', for_sig
+
+ # Deprecated synonym for the .windows suffix.
s = str(f.win32)
assert s == 'foo\\bar\\baz.blat', repr(s)
assert f.win32.is_literal(), f.win32
if f.win32 != f:
for_sig = f.win32.for_signature()
- assert for_sig == 'baz.blat_win32', for_sig
+ assert for_sig == 'baz.blat_windows', for_sig
# And now, combinations!!!
s = str(f.srcpath.base)
@@ -2814,6 +2822,8 @@ class SpecialAttrTestCase(unittest.TestCase):
assert s == str(f.srcdir), s
s = str(f.srcpath.posix)
assert s == 'foo/bar/baz.blat', s
+ s = str(f.srcpath.windows)
+ assert s == 'foo\\bar\\baz.blat', s
s = str(f.srcpath.win32)
assert s == 'foo\\bar\\baz.blat', s
diff --git a/src/engine/SCons/Platform/__init__.py b/src/engine/SCons/Platform/__init__.py
index 7a2f1c3..b1a0a67 100644
--- a/src/engine/SCons/Platform/__init__.py
+++ b/src/engine/SCons/Platform/__init__.py
@@ -151,8 +151,8 @@ class TempFileMunge:
return self.cmd
# We do a normpath because mktemp() has what appears to be
- # a bug in Win32 that will use a forward slash as a path
- # delimiter. Win32's link mistakes that for a command line
+ # a bug in Windows that will use a forward slash as a path
+ # delimiter. Windows's link mistakes that for a command line
# switch and barfs.
#
# We use the .lnk suffix for the benefit of the Phar Lap
@@ -170,8 +170,8 @@ class TempFileMunge:
rm = env.Detect('rm') or 'del'
else:
# Don't use 'rm' if the shell is not sh, because rm won't
- # work with the win32 shells (cmd.exe or command.com) or
- # win32 path names.
+ # work with the Windows shells (cmd.exe or command.com) or
+ # Windows path names.
rm = 'del'
prefix = env.subst('$TEMPFILEPREFIX')
diff --git a/src/engine/SCons/SConfTests.py b/src/engine/SCons/SConfTests.py
index 2685c2b..961dc21 100644
--- a/src/engine/SCons/SConfTests.py
+++ b/src/engine/SCons/SConfTests.py
@@ -78,9 +78,9 @@ class SConfTestCase(unittest.TestCase):
# we want to do some autodetection here
# this stuff works with
- # - cygwin on win32 (using cmd.exe, not bash)
+ # - cygwin on Windows (using cmd.exe, not bash)
# - posix
- # - msvc on win32 (hopefully)
+ # - msvc on Windows (hopefully)
if (not self.scons_env.Detect( self.scons_env.subst('$CXX') ) or
not self.scons_env.Detect( self.scons_env.subst('$CC') ) or
not self.scons_env.Detect( self.scons_env.subst('$LINK') )):
diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py
index 16e790e..8b3058a 100644
--- a/src/engine/SCons/Script/Main.py
+++ b/src/engine/SCons/Script/Main.py
@@ -45,7 +45,7 @@ import time
import traceback
# Strip the script directory from sys.path() so on case-insensitive
-# (WIN32) systems Python doesn't think that the "scons" script is the
+# (Windows) systems Python doesn't think that the "scons" script is the
# "SCons" package. Replace it with our own version directory so, if
# if they're there, we pick up the right version of the build engine
# modules.
@@ -590,8 +590,8 @@ class OptParser(OptionParser):
except KeyboardInterrupt:
raise
except:
- # On win32 there is no scons.py, so there is no __main__.__version__,
- # hence there is no script version.
+ # On Windows there is no scons.py, so there is no
+ # __main__.__version__, hence there is no script version.
pass
parts.append("\tengine: v%s.%s, %s, by %s on %s\n" % (SCons.__version__,
SCons.__build__,
diff --git a/src/engine/SCons/Sig/MD5.py b/src/engine/SCons/Sig/MD5.py
index 501fec4..f8f349f 100644
--- a/src/engine/SCons/Sig/MD5.py
+++ b/src/engine/SCons/Sig/MD5.py
@@ -34,7 +34,7 @@ import imp
import string
# Force Python to load the builtin "md5" module. If we do this with a
-# normal import statement, then case-insensitive systems (Win32) get
+# normal import statement, then case-insensitive systems (Windows) get
# confused and thinks there's a case mismatch with *this* MD5.py module.
file, name, desc = imp.find_module('md5')
try:
diff --git a/src/engine/SCons/Tool/Perforce.py b/src/engine/SCons/Tool/Perforce.py
index 37115e9..de87dc2 100644
--- a/src/engine/SCons/Tool/Perforce.py
+++ b/src/engine/SCons/Tool/Perforce.py
@@ -74,7 +74,7 @@ def generate(env):
# Perforce seems to use the PWD environment variable rather than
# calling getcwd() for itself, which is odd. If no PWD variable
# is present, p4 WILL call getcwd, but this seems to cause problems
- # with good ol' Win32's tilde-mangling for long file names.
+ # with good ol' Windows's tilde-mangling for long file names.
environ['PWD'] = env.Dir('#').get_abspath()
for var in _import_env:
diff --git a/src/engine/SCons/Tool/__init__.xml b/src/engine/SCons/Tool/__init__.xml
index 0cce79b..cc7e145 100644
--- a/src/engine/SCons/Tool/__init__.xml
+++ b/src/engine/SCons/Tool/__init__.xml
@@ -100,7 +100,7 @@ env.Program(target = 'foo', source = ['foo.o', 'bar.c', 'baz.f'])
<summary>
Builds a shared library
(<filename>.so</filename> on a POSIX system,
-<filename>.dll</filename> on WIN32)
+<filename>.dll</filename> on Windows)
given one or more object files
or C, C++, D or Fortran source files.
If any source files are given,
@@ -123,7 +123,7 @@ Example:
env.SharedLibrary(target = 'bar', source = ['bar.c', 'foo.o'])
</example>
-On WIN32 systems, the
+On Windows systems, the
&b-SharedLibrary;
builder method will always build an import
(<filename>.lib</filename>) library
@@ -141,7 +141,7 @@ builder method).
&scons;
will raise an error if there is any mismatch.
-On WIN32 systems, specifying
+On Windows systems, specifying
<literal>register=1</literal>
will cause the <filename>.dll</filename> to be
registered after it is built using REGSVR32.
@@ -253,7 +253,7 @@ Source files must have one of the following extensions:
.asm assembly language file
.ASM assembly language file
.c C file
- .C WIN32: C file
+ .C Windows: C file
POSIX: C++ file
.cc C++ file
.cpp C++ file
@@ -263,7 +263,7 @@ Source files must have one of the following extensions:
.C++ C++ file
.d D file
.f Fortran file
- .F WIN32: Fortran file
+ .F Windows: Fortran file
POSIX: Fortran file + C pre-processor
.for Fortran file
.FOR Fortran file
@@ -272,7 +272,7 @@ Source files must have one of the following extensions:
.m Object C file
.mm Object C++ file
.s assembly language file
- .S WIN32: assembly language file
+ .S Windows: assembly language file
POSIX: assembly language file + C pre-processor
.spp assembly language file + C pre-processor
.SPP assembly language file + C pre-processor
@@ -318,7 +318,7 @@ when generating C files from Lex (.l) or YACC (.y) input files.
The default suffix, of course, is
<filename>.c</filename>
(lower case).
-On case-insensitive systems (like Win32),
+On case-insensitive systems (like Windows),
SCons also treats
<filename>.C</filename>
(upper case) files
diff --git a/src/engine/SCons/Tool/cvf.py b/src/engine/SCons/Tool/cvf.py
index 2f70078..28a1915 100644
--- a/src/engine/SCons/Tool/cvf.py
+++ b/src/engine/SCons/Tool/cvf.py
@@ -40,10 +40,10 @@ def generate(env):
fortran.generate(env)
env['FORTRAN'] = 'f90'
- env['FORTRANCOM'] = '$FORTRAN $FORTRANFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.win32} /object:${TARGET.win32}'
- env['FORTRANPPCOM'] = '$FORTRAN $FORTRANFLAGS $CPPFLAGS $_CPPDEFFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.win32} /object:${TARGET.win32}'
- env['SHFORTRANCOM'] = '$SHFORTRAN $SHFORTRANFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.win32} /object:${TARGET.win32}'
- env['SHFORTRANPPCOM'] = '$SHFORTRAN $SHFORTRANFLAGS $CPPFLAGS $_CPPDEFFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.win32} /object:${TARGET.win32}'
+ env['FORTRANCOM'] = '$FORTRAN $FORTRANFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.windows} /object:${TARGET.windows}'
+ env['FORTRANPPCOM'] = '$FORTRAN $FORTRANFLAGS $CPPFLAGS $_CPPDEFFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.windows} /object:${TARGET.windows}'
+ env['SHFORTRANCOM'] = '$SHFORTRAN $SHFORTRANFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.windows} /object:${TARGET.windows}'
+ env['SHFORTRANPPCOM'] = '$SHFORTRAN $SHFORTRANFLAGS $CPPFLAGS $_CPPDEFFLAGS $_FORTRANMODFLAG $_FORTRANINCFLAGS /compile_only ${SOURCES.windows} /object:${TARGET.windows}'
env['OBJSUFFIX'] = '.obj'
env['FORTRANMODDIR'] = '${TARGET.dir}'
env['FORTRANMODDIRPREFIX'] = '/module:'
diff --git a/src/engine/SCons/Tool/dmd.py b/src/engine/SCons/Tool/dmd.py
index d850ab1..cae264b 100644
--- a/src/engine/SCons/Tool/dmd.py
+++ b/src/engine/SCons/Tool/dmd.py
@@ -7,7 +7,7 @@ Coded by Andy Friesen (andy@ikagames.com)
15 November 2003
There are a number of problems with this script at this point in time.
-The one that irritates me the most is the win32 linker setup. The D
+The one that irritates me the most is the Windows linker setup. The D
linker doesn't have a way to add lib paths on the commandline, as far
as I can see. You have to specify paths relative to the SConscript or
use absolute paths. To hack around it, add '#/blah'. This will link
diff --git a/src/engine/SCons/Tool/intelc.py b/src/engine/SCons/Tool/intelc.py
index 9499205..b247a38 100644
--- a/src/engine/SCons/Tool/intelc.py
+++ b/src/engine/SCons/Tool/intelc.py
@@ -36,10 +36,10 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import math, sys, os.path, glob, string, re
-is_win32 = sys.platform == 'win32'
+is_windows = sys.platform == 'win32'
is_linux = sys.platform == 'linux2'
-if is_win32:
+if is_windows:
import SCons.Tool.msvc
elif is_linux:
import SCons.Tool.gcc
@@ -72,7 +72,7 @@ def linux_ver_normalize(vstr):
Always returns an old-style float like 80 or 90 for compatibility with Windows.
Shades of Y2K!"""
f = float(vstr)
- if is_win32:
+ if is_windows:
return f
else:
if f < 60: return f * 10.0
@@ -85,7 +85,7 @@ def check_abi(abi):
return None
abi = abi.lower()
# valid_abis maps input name to canonical name
- if is_win32:
+ if is_windows:
valid_abis = {'ia32' : 'ia32',
'x86' : 'ia32',
'ia64' : 'ia64',
@@ -113,7 +113,7 @@ def vercmp(a, b):
def get_version_from_list(v, vlist):
"""See if we can match v (string) in vlist (list of strings)
Linux has to match in a fuzzy way."""
- if is_win32:
+ if is_windows:
# Simple case, just find it in the list
if v in vlist: return v
else: return None
@@ -129,7 +129,7 @@ def get_version_from_list(v, vlist):
def get_intel_registry_value(valuename, version=None, abi=None):
"""
- Return a value from the Intel compiler registry tree. (Win32 only)
+ Return a value from the Intel compiler registry tree. (Windows only)
"""
# Open the key:
K = 'Software\\Intel\\Compilers\\C++\\' + version + '\\'+abi.upper()
@@ -153,7 +153,7 @@ def get_all_compiler_versions():
with most recent compiler version first.
"""
versions=[]
- if is_win32:
+ if is_windows:
keyname = 'Software\\Intel\\Compilers\\C++'
try:
k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
@@ -206,7 +206,7 @@ def get_intel_compiler_top(version, abi):
The compiler will be in <top>/bin/icl.exe (icc on linux),
the include dir is <top>/include, etc.
"""
- if is_win32:
+ if is_windows:
if not SCons.Util.can_read_reg:
raise NoRegistryModuleError, "No Windows registry module was found"
top = get_intel_registry_value('ProductDir', version, abi)
@@ -240,11 +240,11 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
If topdir is used, version and abi are ignored.
verbose: (int) if >0, prints compiler version used.
"""
- if not (is_linux or is_win32):
+ if not (is_linux or is_windows):
# can't handle this platform
return
- if is_win32:
+ if is_windows:
SCons.Tool.msvc.generate(env)
elif is_linux:
SCons.Tool.gcc.generate(env)
@@ -291,7 +291,7 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
class ICLTopDirWarning(SCons.Warnings.Warning):
pass
if is_linux and not env.Detect('icc') or \
- is_win32 and not env.Detect('icl'):
+ is_windows and not env.Detect('icl'):
SCons.Warnings.enableWarningClass(ICLTopDirWarning)
SCons.Warnings.warn(ICLTopDirWarning,
@@ -321,7 +321,7 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
'LD_LIBRARY_PATH' : 'lib'}
for p in paths:
env.PrependENVPath(p, os.path.join(topdir, paths[p]))
- if is_win32:
+ if is_windows:
# env key reg valname default subdir of top
paths=(('INCLUDE', 'IncludeDir', 'Include'),
('LIB' , 'LibDir', 'Lib'),
@@ -340,7 +340,7 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
env.PrependENVPath(p[0], string.split(path, os.pathsep))
# print "ICL %s: %s, final=%s"%(p[0], path, str(env['ENV'][p[0]]))
- if is_win32:
+ if is_windows:
env['CC'] = 'icl'
env['CXX'] = 'icl'
env['LINK'] = 'xilink'
@@ -358,7 +358,7 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
if version:
env['INTEL_C_COMPILER_VERSION']=linux_ver_normalize(version)
- if is_win32:
+ if is_windows:
# Look for license file dir
# in system environment, registry, and default location.
envlicdir = os.environ.get("INTEL_LICENSE_FILE", '')
@@ -389,7 +389,7 @@ def generate(env, version=None, abi=None, topdir=None, verbose=0):
env['ENV']['INTEL_LICENSE_FILE'] = licdir
def exists(env):
- if not (is_linux or is_win32):
+ if not (is_linux or is_windows):
# can't handle this platform
return 0
@@ -400,7 +400,7 @@ def exists(env):
detected = versions is not None and len(versions) > 0
if not detected:
# try env.Detect, maybe that will work
- if is_win32:
+ if is_windows:
return env.Detect('icl')
elif is_linux:
return env.Detect('icc')
diff --git a/src/engine/SCons/Tool/mingw.py b/src/engine/SCons/Tool/mingw.py
index 300198e..5765e25 100644
--- a/src/engine/SCons/Tool/mingw.py
+++ b/src/engine/SCons/Tool/mingw.py
@@ -60,7 +60,7 @@ def shlib_generator(target, source, env, for_signature):
implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
if implib: cmd.append('-Wl,--out-implib,'+implib.get_string(for_signature))
- def_target = env.FindIxes(target, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
+ def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
if def_target: cmd.append('-Wl,--output-def,'+def_target.get_string(for_signature))
return [cmd]
@@ -84,12 +84,12 @@ def shlib_emitter(target, source, env):
# or a def file source. There is no option to disable def file
# target emitting, because I can't figure out why someone would ever
# want to turn it off.
- def_source = env.FindIxes(source, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
- def_target = env.FindIxes(target, 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX')
+ def_source = env.FindIxes(source, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
+ def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
if not def_source and not def_target:
target.append(env.ReplaceIxes(dll,
'SHLIBPREFIX', 'SHLIBSUFFIX',
- 'WIN32DEFPREFIX', 'WIN32DEFSUFFIX'))
+ 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX'))
return (target, source)
@@ -132,8 +132,12 @@ def generate(env):
env.Append(SHLIBEMITTER = [shlib_emitter])
env['LINK'] = 'g++'
env['AS'] = 'as'
+
env['WIN32DEFPREFIX'] = ''
env['WIN32DEFSUFFIX'] = '.def'
+ env['WINDOWSDEFPREFIX'] = '${WIN32DEFPREFIX}'
+ env['WINDOWSDEFSUFFIX'] = '${WIN32DEFSUFFIX}'
+
env['SHOBJSUFFIX'] = '.o'
env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1
diff --git a/src/engine/SCons/Tool/mslink.py b/src/engine/SCons/Tool/mslink.py
index fe4e394..4458183 100644
--- a/src/engine/SCons/Tool/mslink.py
+++ b/src/engine/SCons/Tool/mslink.py
@@ -50,7 +50,7 @@ def pdbGenerator(env, target, source, for_signature):
'/DEBUG']
return None
-def win32ShlinkTargets(target, source, env, for_signature):
+def windowsShlinkTargets(target, source, env, for_signature):
listCmd = []
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
if dll: listCmd.append("/out:%s"%dll.get_string(for_signature))
@@ -60,10 +60,10 @@ def win32ShlinkTargets(target, source, env, for_signature):
return listCmd
-def win32ShlinkSources(target, source, env, for_signature):
+def windowsShlinkSources(target, source, env, for_signature):
listCmd = []
- deffile = env.FindIxes(source, "WIN32DEFPREFIX", "WIN32DEFSUFFIX")
+ deffile = env.FindIxes(source, "WINDOWSDEFPREFIX", "WINDOWSDEFSUFFIX")
for src in source:
if src == deffile:
# Treat this source as a .def file.
@@ -73,7 +73,7 @@ def win32ShlinkSources(target, source, env, for_signature):
listCmd.append(src)
return listCmd
-def win32LibEmitter(target, source, env):
+def windowsLibEmitter(target, source, env):
SCons.Tool.msvc.validate_vars(env)
dll = env.FindIxes(target, "SHLIBPREFIX", "SHLIBSUFFIX")
@@ -82,20 +82,21 @@ def win32LibEmitter(target, source, env):
if not dll:
raise SCons.Errors.UserError, "A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX")
- if env.get("WIN32_INSERT_DEF", 0) and \
- not env.FindIxes(source, "WIN32DEFPREFIX", "WIN32DEFSUFFIX"):
+ insert_def = env.subst("$WINDOWS_INSERT_DEF")
+ if not insert_def in ['', '0', 0] and \
+ not env.FindIxes(source, "WINDOWSDEFPREFIX", "WINDOWSDEFSUFFIX"):
# append a def file to the list of sources
source.append(env.ReplaceIxes(dll,
"SHLIBPREFIX", "SHLIBSUFFIX",
- "WIN32DEFPREFIX", "WIN32DEFSUFFIX"))
+ "WINDOWSDEFPREFIX", "WINDOWSDEFSUFFIX"))
version_num, suite = SCons.Tool.msvs.msvs_parse_version(env.get('MSVS_VERSION', '6.0'))
- if version_num >= 8.0 and env.get('WIN32_INSERT_MANIFEST', 0):
+ if version_num >= 8.0 and env.get('WINDOWS_INSERT_MANIFEST', 0):
# MSVC 8 automatically generates .manifest files that must be installed
target.append(env.ReplaceIxes(dll,
"SHLIBPREFIX", "SHLIBSUFFIX",
- "WIN32SHLIBMANIFESTPREFIX", "WIN32SHLIBMANIFESTSUFFIX"))
+ "WINDOWSSHLIBMANIFESTPREFIX", "WINDOWSSHLIBMANIFESTSUFFIX"))
if env.has_key('PDB') and env['PDB']:
target.append(env['PDB'])
@@ -109,7 +110,7 @@ def win32LibEmitter(target, source, env):
# and .exp file is created if there are exports from a DLL
target.append(env.ReplaceIxes(dll,
"SHLIBPREFIX", "SHLIBSUFFIX",
- "WIN32EXPPREFIX", "WIN32EXPSUFFIX"))
+ "WINDOWSEXPPREFIX", "WINDOWSEXPSUFFIX"))
return (target, source)
@@ -121,11 +122,11 @@ def prog_emitter(target, source, env):
raise SCons.Errors.UserError, "An executable should have exactly one target with the suffix: %s" % env.subst("$PROGSUFFIX")
version_num, suite = SCons.Tool.msvs.msvs_parse_version(env.get('MSVS_VERSION', '6.0'))
- if version_num >= 8.0 and env.get('WIN32_INSERT_MANIFEST', 0):
+ if version_num >= 8.0 and env.get('WINDOWS_INSERT_MANIFEST', 0):
# MSVC 8 automatically generates .manifest files that have to be installed
target.append(env.ReplaceIxes(exe,
"PROGPREFIX", "PROGSUFFIX",
- "WIN32PROGMANIFESTPREFIX", "WIN32PROGMANIFESTSUFFIX"))
+ "WINDOWSPROGMANIFESTPREFIX", "WINDOWSPROGMANIFESTSUFFIX"))
if env.has_key('PDB') and env['PDB']:
target.append(env['PDB'])
@@ -154,14 +155,14 @@ def generate(env):
env['SHLINK'] = '$LINK'
env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS /dll')
- env['_SHLINK_TARGETS'] = win32ShlinkTargets
- env['_SHLINK_SOURCES'] = win32ShlinkSources
+ env['_SHLINK_TARGETS'] = windowsShlinkTargets
+ env['_SHLINK_SOURCES'] = windowsShlinkSources
env['SHLINKCOM'] = compositeLinkAction
- env.Append(SHLIBEMITTER = [win32LibEmitter])
+ env.Append(SHLIBEMITTER = [windowsLibEmitter])
env['LINK'] = 'link'
env['LINKFLAGS'] = SCons.Util.CLVar('/nologo')
env['_PDB'] = pdbGenerator
- env['LINKCOM'] = '${TEMPFILE("$LINK $LINKFLAGS /OUT:$TARGET.win32 $( $_LIBDIRFLAGS $) $_LIBFLAGS $_PDB $SOURCES.win32")}'
+ env['LINKCOM'] = '${TEMPFILE("$LINK $LINKFLAGS /OUT:$TARGET.windows $( $_LIBDIRFLAGS $) $_LIBFLAGS $_PDB $SOURCES.windows")}'
env.Append(PROGEMITTER = [prog_emitter])
env['LIBDIRPREFIX']='/LIBPATH:'
env['LIBDIRSUFFIX']=''
@@ -171,19 +172,24 @@ def generate(env):
env['WIN32DEFPREFIX'] = ''
env['WIN32DEFSUFFIX'] = '.def'
env['WIN32_INSERT_DEF'] = 0
+ env['WINDOWSDEFPREFIX'] = '${WIN32DEFPREFIX}'
+ env['WINDOWSDEFSUFFIX'] = '${WIN32DEFSUFFIX}'
+ env['WINDOWS_INSERT_DEF'] = '${WIN32_INSERT_DEF}'
env['WIN32EXPPREFIX'] = ''
env['WIN32EXPSUFFIX'] = '.exp'
+ env['WINDOWSEXPPREFIX'] = '${WIN32EXPPREFIX}'
+ env['WINDOWSEXPSUFFIX'] = '${WIN32EXPSUFFIX}'
- env['WIN32SHLIBMANIFESTPREFIX'] = ''
- env['WIN32SHLIBMANIFESTSUFFIX'] = env['SHLIBSUFFIX'] + '.manifest'
- env['WIN32PROGMANIFESTPREFIX'] = ''
- env['WIN32PROGMANIFESTSUFFIX'] = env['PROGSUFFIX'] + '.manifest'
+ env['WINDOWSSHLIBMANIFESTPREFIX'] = ''
+ env['WINDOWSSHLIBMANIFESTSUFFIX'] = env['SHLIBSUFFIX'] + '.manifest'
+ env['WINDOWSPROGMANIFESTPREFIX'] = ''
+ env['WINDOWSPROGMANIFESTSUFFIX'] = env['PROGSUFFIX'] + '.manifest'
env['REGSVRACTION'] = regServerCheck
env['REGSVR'] = os.path.join(SCons.Platform.win32.get_system_root(),'System32','regsvr32')
env['REGSVRFLAGS'] = '/s '
- env['REGSVRCOM'] = '$REGSVR $REGSVRFLAGS ${TARGET.win32}'
+ env['REGSVRCOM'] = '$REGSVR $REGSVRFLAGS ${TARGET.windows}'
try:
version = SCons.Tool.msvs.get_default_visualstudio_version(env)
diff --git a/src/engine/SCons/Tool/mslink.xml b/src/engine/SCons/Tool/mslink.xml
index 6fac54e..58cfb1d 100644
--- a/src/engine/SCons/Tool/mslink.xml
+++ b/src/engine/SCons/Tool/mslink.xml
@@ -13,7 +13,7 @@ XXX
<cvar name="no_import_lib">
<summary>
When set to non-zero,
-suppresses creation of a corresponding Win32 static import lib by the
+suppresses creation of a corresponding Windows static import lib by the
<literal>SharedLibrary</literal>
builder when used with
MinGW, Microsoft Visual Studio or Metrowerks.
@@ -42,7 +42,7 @@ env['PDB'] = 'hello.pdb'
<cvar name="REGSVR">
<summary>
-The program used on WIN32 systems
+The program used on Windows systems
to register a newly-built DLL library
whenever the &b-SharedLibrary; builder
is passed a keyword argument of <literal>register=1</literal>.
@@ -51,7 +51,7 @@ is passed a keyword argument of <literal>register=1</literal>.
<cvar name="REGSVRCOM">
<summary>
-The command line used on WIN32 systems
+The command line used on Windows systems
to register a newly-built DLL library
whenever the &b-SharedLibrary; builder
is passed a keyword argument of <literal>register=1</literal>.
@@ -68,7 +68,7 @@ If this is not set, then &cv-REGSVRCOM; (the command line) is displayed.
<cvar name="REGSVRFLAGS">
<summary>
Flags passed to the DLL registration program
-on WIN32 systems when a newly-built DLL library is registered.
+on Windows systems when a newly-built DLL library is registered.
By default,
this includes the <option>/s</option>
that prevents dialog boxes from popping up
@@ -78,15 +78,48 @@ and requiring user attention.
<cvar name="WIN32_INSERT_DEF">
<summary>
+A deprecated synonym for &cv-WINDOWS_INSERT_DEF;.
+</summary>
+</cvar>
+
+<cvar name="WIN32DEFPREFIX">
+<summary>
+A deprecated synonym for &cv-WINDOWSDEFPREFIX;.
+</summary>
+</cvar>
+
+<cvar name="WIN32DEFSUFFIX">
+<summary>
+A deprecated synonym for &cv-WINDOWSDEFSUFFIX;.
+</summary>
+</cvar>
+
+<cvar name="WIN32EXPPREFIX">
+<summary>
+A deprecated synonym for &cv-WINDOWSEXPSUFFIX;.
+</summary>
+</cvar>
+
+<cvar name="WIN32EXPSUFFIX">
+<summary>
+A deprecated synonym for &cv-WINDOWSEXPSUFFIX;.
+</summary>
+</cvar>
+
+<cvar name="WINDOWS_INSERT_DEF">
+<summary>
When this is set to true,
-a library build of a WIN32 shared library (.dll file)
-will also build a corresponding .def file at the same time,
-if a .def file is not already listed as a build target.
-The default is 0 (do not build a .def file).
+a library build of a Windows shared library
+(<filename>.dll</filename>file)
+will also build a corresponding <filename>.def</filename> file
+at the same time,
+if a <filename>.def</filename> file
+is not already listed as a build target.
+The default is 0 (do not build a <filename>.def</filename> file).
</summary>
</cvar>
-<cvar name="WIN32_INSERT_MANIFEST">
+<cvar name="WINDOWS_INSERT_MANIFEST">
<summary>
When this is set to true,
&scons;
@@ -96,54 +129,54 @@ files generated by Microsoft Visua C/C++ 8.
</summary>
</cvar>
-<cvar name="WIN32DEFPREFIX">
+<cvar name="WINDOWSDEFPREFIX">
<summary>
-The prefix used for WIN32 .def file names.
+The prefix used for Windows <filename>.def</filename>file names.
</summary>
</cvar>
-<cvar name="WIN32DEFSUFFIX">
+<cvar name="WINDOWSDEFSUFFIX">
<summary>
-The suffix used for WIN32 .def file names.
+The suffix used for Windows <filename>.def</filename> file names.
</summary>
</cvar>
-<cvar name="WIN32EXPPREFIX">
+<cvar name="WINDOWSEXPPREFIX">
<summary>
-XXX The prefix used for WIN32 .def file names.
+The prefix used for Windows <filename>.exp</filename> file names.
</summary>
</cvar>
-<cvar name="WIN32EXPSUFFIX">
+<cvar name="WINDOWSEXPSUFFIX">
<summary>
-XXX The suffix used for WIN32 .def file names.
+The suffix used for Windows <filename>.exp</filename> file names.
</summary>
</cvar>
-<cvar name="WIN32PROGMANIFESTPREFIX">
+<cvar name="WINDOWSPROGMANIFESTPREFIX">
<summary>
The prefix used for executable program <filename>.manifest</filename> files
-generated by Microsoft Visual C/C++ .NET 2005.
+generated by Microsoft Visual C/C++.
</summary>
</cvar>
-<cvar name="WIN32PROGMANIFESTSUFFIX">
+<cvar name="WINDOWSPROGMANIFESTSUFFIX">
<summary>
The suffix used for executable program <filename>.manifest</filename> files
-generated by Microsoft Visual C/C++ .NET 2005.
+generated by Microsoft Visual C/C++.
</summary>
</cvar>
-<cvar name="WIN32SHLIBMANIFESTPREFIX">
+<cvar name="WINDOWSSHLIBMANIFESTPREFIX">
<summary>
The prefix used for shared library <filename>.manifest</filename> files
-generated by Microsoft Visual C/C++ .NET 2005.
+generated by Microsoft Visual C/C++.
</summary>
</cvar>
-<cvar name="WIN32SHLIBMANIFESTSUFFIX">
+<cvar name="WINDOWSSHLIBMANIFESTSUFFIX">
<summary>
The suffix used for shared library <filename>.manifest</filename> files
-generated by Microsoft Visual C/C++ .NET 2005.
+generated by Microsoft Visual C/C++.
</summary>
</cvar>
diff --git a/src/engine/SCons/Util.py b/src/engine/SCons/Util.py
index b7fcec4..37f3c06 100644
--- a/src/engine/SCons/Util.py
+++ b/src/engine/SCons/Util.py
@@ -740,7 +740,7 @@ def AppendPath(oldpath, newpath, sep = os.pathsep):
if sys.platform == 'cygwin':
def get_native_path(path):
"""Transforms an absolute path into a native path for the system. In
- Cygwin, this converts from a Cygwin path to a Win32 one."""
+ Cygwin, this converts from a Cygwin path to a Windows one."""
return string.replace(os.popen('cygpath -w ' + path).read(), '\n', '')
else:
def get_native_path(path):
@@ -865,7 +865,7 @@ class Selector(OrderedDict):
if sys.platform == 'cygwin':
# On Cygwin, os.path.normcase() lies, so just report back the
- # fact that the underlying Win32 OS is case-insensitive.
+ # fact that the underlying Windows OS is case-insensitive.
def case_sensitive_suffixes(s1, s2):
return 0
else:
diff --git a/src/engine/SCons/dblite.py b/src/engine/SCons/dblite.py
index 7a8846e..36840c3 100644
--- a/src/engine/SCons/dblite.py
+++ b/src/engine/SCons/dblite.py
@@ -78,12 +78,12 @@ class dblite:
f = _open(self._tmp_name, "wb", self._mode)
cPickle.dump(self._dict, f, 1)
f.close()
- # Win32 doesn't allow renaming if the file exists, so unlink it first,
- # chmod'ing it to make sure we can do so. On UNIX, we may not be able
- # to chmod the file if it's owned by someone else (e.g. from a previous
- # run as root). We should still be able to unlink() the file if the
- # directory's writable, though, so ignore any OSError exception thrown
- # by the chmod() call.
+ # Windows doesn't allow renaming if the file exists, so unlink
+ # it first, chmod'ing it to make sure we can do so. On UNIX, we
+ # may not be able to chmod the file if it's owned by someone else
+ # (e.g. from a previous run as root). We should still be able to
+ # unlink() the file if the directory's writable, though, so ignore
+ # any OSError exception thrown by the chmod() call.
try: os.chmod(self._file_name, 0777)
except OSError: pass
os.unlink(self._file_name)