upgrade scons to 2.3.4
This commit is contained in:
parent
2572568f29
commit
f8b8eb1c52
204 changed files with 1343 additions and 875 deletions
|
@ -3,7 +3,7 @@
|
|||
This copyright and license do not apply to any other software
|
||||
with which this software may have been included.
|
||||
|
||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
|
||||
SCons - a software construction tool
|
||||
|
||||
|
|
|
@ -1,240 +0,0 @@
|
|||
"""SCons.Tool.dmd
|
||||
|
||||
Tool-specific initialization for the Digital Mars D compiler.
|
||||
(http://digitalmars.com/d)
|
||||
|
||||
Coded by Andy Friesen (andy@ikagames.com)
|
||||
15 November 2003
|
||||
|
||||
Amended by Russel Winder (russel@russel.org.uk)
|
||||
2010-02-07
|
||||
|
||||
There are a number of problems with this script at this point in time.
|
||||
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
|
||||
blah.lib from the directory where SConstruct resides.
|
||||
|
||||
Compiler variables:
|
||||
DC - The name of the D compiler to use. Defaults to dmd or gdmd,
|
||||
whichever is found.
|
||||
DPATH - List of paths to search for import modules.
|
||||
DVERSIONS - List of version tags to enable when compiling.
|
||||
DDEBUG - List of debug tags to enable when compiling.
|
||||
|
||||
Linker related variables:
|
||||
LIBS - List of library files to link in.
|
||||
DLINK - Name of the linker to use. Defaults to dmd or gdmd.
|
||||
DLINKFLAGS - List of linker flags.
|
||||
|
||||
Lib tool variables:
|
||||
DLIB - Name of the lib tool to use. Defaults to lib.
|
||||
DLIBFLAGS - List of flags to pass to the lib tool.
|
||||
LIBS - Same as for the linker. (libraries to pull into the .lib)
|
||||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
#
|
||||
# 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__ = "src/engine/SCons/Tool/dmd.py 2014/03/02 14:18:15 garyo"
|
||||
|
||||
import os
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
||||
import SCons.Defaults
|
||||
import SCons.Scanner.D
|
||||
import SCons.Tool
|
||||
|
||||
# Adapted from c++.py
|
||||
def isD(source):
|
||||
if not source:
|
||||
return 0
|
||||
|
||||
for s in source:
|
||||
if s.sources:
|
||||
ext = os.path.splitext(str(s.sources[0]))[1]
|
||||
if ext == '.d':
|
||||
return 1
|
||||
return 0
|
||||
|
||||
smart_link = {}
|
||||
|
||||
smart_lib = {}
|
||||
|
||||
def generate(env):
|
||||
global smart_link
|
||||
global smart_lib
|
||||
|
||||
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
|
||||
|
||||
DAction = SCons.Action.Action('$DCOM', '$DCOMSTR')
|
||||
|
||||
static_obj.add_action('.d', DAction)
|
||||
shared_obj.add_action('.d', DAction)
|
||||
static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
|
||||
shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
|
||||
|
||||
dc = env.Detect(['dmd', 'gdmd'])
|
||||
env['DC'] = dc
|
||||
env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -of$TARGET $SOURCES'
|
||||
env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
|
||||
env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)} $)'
|
||||
env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
|
||||
env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
|
||||
|
||||
env['DPATH'] = ['#/']
|
||||
env['DFLAGS'] = []
|
||||
env['DVERSIONS'] = []
|
||||
env['DDEBUG'] = []
|
||||
|
||||
if dc:
|
||||
# Add the path to the standard library.
|
||||
# This is merely for the convenience of the dependency scanner.
|
||||
dmd_path = env.WhereIs(dc)
|
||||
if dmd_path:
|
||||
x = dmd_path.rindex(dc)
|
||||
phobosDir = dmd_path[:x] + '/../src/phobos'
|
||||
if os.path.isdir(phobosDir):
|
||||
env.Append(DPATH = [phobosDir])
|
||||
|
||||
env['DINCPREFIX'] = '-I'
|
||||
env['DINCSUFFIX'] = ''
|
||||
env['DVERPREFIX'] = '-version='
|
||||
env['DVERSUFFIX'] = ''
|
||||
env['DDEBUGPREFIX'] = '-debug='
|
||||
env['DDEBUGSUFFIX'] = ''
|
||||
env['DFLAGPREFIX'] = '-'
|
||||
env['DFLAGSUFFIX'] = ''
|
||||
env['DFILESUFFIX'] = '.d'
|
||||
|
||||
# Need to use the Digital Mars linker/lib on windows.
|
||||
# *nix can just use GNU link.
|
||||
if env['PLATFORM'] == 'win32':
|
||||
env['DLINK'] = '$DC'
|
||||
env['DLINKCOM'] = '$DLINK -of$TARGET $SOURCES $DFLAGS $DLINKFLAGS $_DLINKLIBFLAGS'
|
||||
env['DLIB'] = 'lib'
|
||||
env['DLIBCOM'] = '$DLIB $_DLIBFLAGS -c $TARGET $SOURCES $_DLINKLIBFLAGS'
|
||||
|
||||
env['_DLINKLIBFLAGS'] = '$( ${_concat(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
|
||||
env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
|
||||
env['DLINKFLAGS'] = []
|
||||
env['DLIBLINKPREFIX'] = ''
|
||||
env['DLIBLINKSUFFIX'] = '.lib'
|
||||
env['DLIBFLAGPREFIX'] = '-'
|
||||
env['DLIBFLAGSUFFIX'] = ''
|
||||
env['DLINKFLAGPREFIX'] = '-'
|
||||
env['DLINKFLAGSUFFIX'] = ''
|
||||
|
||||
SCons.Tool.createStaticLibBuilder(env)
|
||||
|
||||
# Basically, we hijack the link and ar builders with our own.
|
||||
# these builders check for the presence of D source, and swap out
|
||||
# the system's defaults for the Digital Mars tools. If there's no D
|
||||
# source, then we silently return the previous settings.
|
||||
linkcom = env.get('LINKCOM')
|
||||
try:
|
||||
env['SMART_LINKCOM'] = smart_link[linkcom]
|
||||
except KeyError:
|
||||
def _smartLink(source, target, env, for_signature,
|
||||
defaultLinker=linkcom):
|
||||
if isD(source):
|
||||
# XXX I'm not sure how to add a $DLINKCOMSTR variable
|
||||
# so that it works with this _smartLink() logic,
|
||||
# and I don't have a D compiler/linker to try it out,
|
||||
# so we'll leave it alone for now.
|
||||
return '$DLINKCOM'
|
||||
else:
|
||||
return defaultLinker
|
||||
env['SMART_LINKCOM'] = smart_link[linkcom] = _smartLink
|
||||
|
||||
arcom = env.get('ARCOM')
|
||||
try:
|
||||
env['SMART_ARCOM'] = smart_lib[arcom]
|
||||
except KeyError:
|
||||
def _smartLib(source, target, env, for_signature,
|
||||
defaultLib=arcom):
|
||||
if isD(source):
|
||||
# XXX I'm not sure how to add a $DLIBCOMSTR variable
|
||||
# so that it works with this _smartLib() logic, and
|
||||
# I don't have a D compiler/archiver to try it out,
|
||||
# so we'll leave it alone for now.
|
||||
return '$DLIBCOM'
|
||||
else:
|
||||
return defaultLib
|
||||
env['SMART_ARCOM'] = smart_lib[arcom] = _smartLib
|
||||
|
||||
# It is worth noting that the final space in these strings is
|
||||
# absolutely pivotal. SCons sees these as actions and not generators
|
||||
# if it is not there. (very bad)
|
||||
env['ARCOM'] = '$SMART_ARCOM '
|
||||
env['LINKCOM'] = '$SMART_LINKCOM '
|
||||
else: # assuming linux
|
||||
linkcom = env.get('LINKCOM')
|
||||
try:
|
||||
env['SMART_LINKCOM'] = smart_link[linkcom]
|
||||
except KeyError:
|
||||
def _smartLink(source, target, env, for_signature,
|
||||
defaultLinker=linkcom, dc=dc):
|
||||
if isD(source):
|
||||
try:
|
||||
libs = env['LIBS']
|
||||
except KeyError:
|
||||
libs = []
|
||||
if dc == 'dmd':
|
||||
# TODO: This assumes that the dmd executable is in the
|
||||
# bin directory and that the libraries are in a peer
|
||||
# directory lib. This true of the Digital Mars
|
||||
# distribution but . . .
|
||||
import glob
|
||||
dHome = env.WhereIs(dc).replace('/dmd' , '/..')
|
||||
if glob.glob(dHome + '/lib/*phobos2*'):
|
||||
if 'phobos2' not in libs:
|
||||
env.Append(LIBPATH = [dHome + '/lib'])
|
||||
env.Append(LIBS = ['phobos2'])
|
||||
# TODO: Find out when there will be a
|
||||
# 64-bit version of D.
|
||||
env.Append(LINKFLAGS = ['-m32'])
|
||||
else:
|
||||
if 'phobos' not in libs:
|
||||
env.Append(LIBS = ['phobos'])
|
||||
elif dc is 'gdmd':
|
||||
env.Append(LIBS = ['gphobos'])
|
||||
if 'pthread' not in libs:
|
||||
env.Append(LIBS = ['pthread'])
|
||||
if 'm' not in libs:
|
||||
env.Append(LIBS = ['m'])
|
||||
return defaultLinker
|
||||
env['SMART_LINKCOM'] = smart_link[linkcom] = _smartLink
|
||||
|
||||
env['LINKCOM'] = '$SMART_LINKCOM '
|
||||
|
||||
def exists(env):
|
||||
return env.Detect(['dmd', 'gdmd'])
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
||||
# indent-tabs-mode:nil
|
||||
# End:
|
||||
# vim: set expandtab tabstop=4 shiftwidth=4:
|
|
@ -76,7 +76,7 @@ way for wrapping up the functions.
|
|||
|
||||
"""
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -97,7 +97,7 @@ way for wrapping up the functions.
|
|||
# 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__ = "src/engine/SCons/Action.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Action.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.compat
|
||||
|
||||
|
@ -337,7 +337,7 @@ def _do_create_keywords(args, kw):
|
|||
'You must either pass a string or a callback which '
|
||||
'accepts (target, source, env) as parameters.')
|
||||
if len(args) > 1:
|
||||
kw['varlist'] = args[1:] + kw['varlist']
|
||||
kw['varlist'] = tuple(SCons.Util.flatten(args[1:])) + kw['varlist']
|
||||
if kw.get('strfunction', _null) is not _null \
|
||||
and kw.get('cmdstr', _null) is not _null:
|
||||
raise SCons.Errors.UserError(
|
||||
|
@ -679,12 +679,13 @@ def _subproc(scons_env, cmd, error = 'ignore', **kw):
|
|||
# return a dummy Popen instance that only returns error
|
||||
class dummyPopen(object):
|
||||
def __init__(self, e): self.exception = e
|
||||
def communicate(self): return ('','')
|
||||
def communicate(self,input=None): return ('','')
|
||||
def wait(self): return -self.exception.errno
|
||||
stdin = None
|
||||
class f(object):
|
||||
def read(self): return ''
|
||||
def readline(self): return ''
|
||||
def __iter__(self): return iter(())
|
||||
stdout = stderr = f()
|
||||
return dummyPopen(e)
|
||||
|
|
@ -76,7 +76,7 @@ There are the following methods for internal use within this module:
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -97,7 +97,7 @@ There are the following methods for internal use within this module:
|
|||
# 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__ = "src/engine/SCons/Builder.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Builder.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import collections
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/CacheDir.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/CacheDir.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """
|
||||
CacheDir support
|
|
@ -6,7 +6,7 @@ needed by most users.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -28,7 +28,7 @@ needed by most users.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Debug.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Debug.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import sys
|
|
@ -10,7 +10,7 @@ from distutils.msvccompiler.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -33,7 +33,7 @@ from distutils.msvccompiler.
|
|||
#
|
||||
from __future__ import division
|
||||
|
||||
__revision__ = "src/engine/SCons/Defaults.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Defaults.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
|
||||
import os
|
||||
|
@ -144,6 +144,9 @@ ShCAction = SCons.Action.Action("$SHCCCOM", "$SHCCCOMSTR")
|
|||
CXXAction = SCons.Action.Action("$CXXCOM", "$CXXCOMSTR")
|
||||
ShCXXAction = SCons.Action.Action("$SHCXXCOM", "$SHCXXCOMSTR")
|
||||
|
||||
DAction = SCons.Action.Action("$DCOM", "$DCOMSTR")
|
||||
ShDAction = SCons.Action.Action("$SHDCOM", "$SHDCOMSTR")
|
||||
|
||||
ASAction = SCons.Action.Action("$ASCOM", "$ASCOMSTR")
|
||||
ASPPAction = SCons.Action.Action("$ASPPCOM", "$ASPPCOMSTR")
|
||||
|
||||
|
@ -178,20 +181,37 @@ def chmod_strfunc(dest, mode):
|
|||
|
||||
Chmod = ActionFactory(chmod_func, chmod_strfunc)
|
||||
|
||||
def copy_func(dest, src):
|
||||
def copy_func(dest, src, symlinks=True):
|
||||
"""
|
||||
If symlinks (is true), then a symbolic link will be
|
||||
shallow copied and recreated as a symbolic link; otherwise, copying
|
||||
a symbolic link will be equivalent to copying the symbolic link's
|
||||
final target regardless of symbolic link depth.
|
||||
"""
|
||||
|
||||
dest = str(dest)
|
||||
src = str(src)
|
||||
|
||||
SCons.Node.FS.invalidate_node_memos(dest)
|
||||
if SCons.Util.is_List(src) and os.path.isdir(dest):
|
||||
for file in src:
|
||||
shutil.copy2(file, dest)
|
||||
return 0
|
||||
elif os.path.islink(src):
|
||||
linkto = os.readlink(src)
|
||||
if symlinks:
|
||||
return os.symlink(linkto, dest)
|
||||
else:
|
||||
return copy_func(dest, linkto, symlinks)
|
||||
elif os.path.isfile(src):
|
||||
return shutil.copy2(src, dest)
|
||||
else:
|
||||
return shutil.copytree(src, dest, 1)
|
||||
return shutil.copytree(src, dest, symlinks)
|
||||
|
||||
Copy = ActionFactory(copy_func,
|
||||
lambda dest, src: 'Copy("%s", "%s")' % (dest, src),
|
||||
convert=str)
|
||||
Copy = ActionFactory(
|
||||
copy_func,
|
||||
lambda dest, src, symlinks=True: 'Copy("%s", "%s")' % (dest, src)
|
||||
)
|
||||
|
||||
def delete_func(dest, must_exist=0):
|
||||
SCons.Node.FS.invalidate_node_memos(dest)
|
|
@ -10,7 +10,7 @@ Environment
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ Environment
|
|||
# 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__ = "src/engine/SCons/Environment.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Environment.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
|
||||
import copy
|
||||
|
@ -1206,7 +1206,13 @@ class Base(SubstitutionEnvironment):
|
|||
# based on what we think the value looks like.
|
||||
if SCons.Util.is_List(val):
|
||||
if key == 'CPPDEFINES':
|
||||
orig = orig.items()
|
||||
tmp = []
|
||||
for (k, v) in orig.iteritems():
|
||||
if v is not None:
|
||||
tmp.append((k, v))
|
||||
else:
|
||||
tmp.append((k,))
|
||||
orig = tmp
|
||||
orig += val
|
||||
self._dict[key] = orig
|
||||
else:
|
||||
|
@ -1286,8 +1292,15 @@ class Base(SubstitutionEnvironment):
|
|||
else:
|
||||
tmp.append((i,))
|
||||
val = tmp
|
||||
# Construct a list of (key, value) tuples.
|
||||
if SCons.Util.is_Dict(dk):
|
||||
dk = dk.items()
|
||||
tmp = []
|
||||
for (k, v) in dk.iteritems():
|
||||
if v is not None:
|
||||
tmp.append((k, v))
|
||||
else:
|
||||
tmp.append((k,))
|
||||
dk = tmp
|
||||
elif SCons.Util.is_String(dk):
|
||||
dk = [(dk,)]
|
||||
else:
|
||||
|
@ -1327,8 +1340,15 @@ class Base(SubstitutionEnvironment):
|
|||
else:
|
||||
tmp.append((i,))
|
||||
dk = tmp
|
||||
# Construct a list of (key, value) tuples.
|
||||
if SCons.Util.is_Dict(val):
|
||||
val = val.items()
|
||||
tmp = []
|
||||
for (k, v) in val.iteritems():
|
||||
if v is not None:
|
||||
tmp.append((k, v))
|
||||
else:
|
||||
tmp.append((k,))
|
||||
val = tmp
|
||||
elif SCons.Util.is_String(val):
|
||||
val = [(val,)]
|
||||
if delete_existing:
|
||||
|
@ -1351,7 +1371,13 @@ class Base(SubstitutionEnvironment):
|
|||
if SCons.Util.is_String(dk):
|
||||
dk = [dk]
|
||||
elif SCons.Util.is_Dict(dk):
|
||||
dk = dk.items()
|
||||
tmp = []
|
||||
for (k, v) in dk.iteritems():
|
||||
if v is not None:
|
||||
tmp.append((k, v))
|
||||
else:
|
||||
tmp.append((k,))
|
||||
dk = tmp
|
||||
if SCons.Util.is_String(val):
|
||||
if val in dk:
|
||||
val = []
|
||||
|
@ -1378,10 +1404,8 @@ class Base(SubstitutionEnvironment):
|
|||
(like a function). There are no references to any mutable
|
||||
objects in the original Environment.
|
||||
"""
|
||||
try:
|
||||
builders = self._dict['BUILDERS']
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
builders = self._dict.get('BUILDERS', {})
|
||||
|
||||
clone = copy.copy(self)
|
||||
# BUILDERS is not safe to do a simple copy
|
||||
|
@ -1803,8 +1827,8 @@ class Base(SubstitutionEnvironment):
|
|||
pass
|
||||
elif SCons.Util.is_String(pathext):
|
||||
pathext = self.subst(pathext)
|
||||
prog = self.subst(prog)
|
||||
path = SCons.Util.WhereIs(prog, path, pathext, reject)
|
||||
prog = SCons.Util.CLVar(self.subst(prog)) # support "program --with-args"
|
||||
path = SCons.Util.WhereIs(prog[0], path, pathext, reject)
|
||||
if path: return path
|
||||
return None
|
||||
|
||||
|
@ -2149,7 +2173,7 @@ class Base(SubstitutionEnvironment):
|
|||
def SourceCode(self, entry, builder):
|
||||
"""Arrange for a source code builder for (part of) a tree."""
|
||||
msg = """SourceCode() has been deprecated and there is no replacement.
|
||||
\tIf you need this function, please contact dev@scons.tigris.org."""
|
||||
\tIf you need this function, please contact scons-dev@scons.org"""
|
||||
SCons.Warnings.warn(SCons.Warnings.DeprecatedSourceCodeWarning, msg)
|
||||
entries = self.arg2nodes(entry, self.fs.Entry)
|
||||
for entry in entries:
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -28,7 +28,7 @@ and user errors in SCons.
|
|||
|
||||
"""
|
||||
|
||||
__revision__ = "src/engine/SCons/Errors.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Errors.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Util
|
||||
|
|
@ -6,7 +6,7 @@ Nodes.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ Nodes.
|
|||
# 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__ = "src/engine/SCons/Executor.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Executor.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import collections
|
||||
|
|
@ -7,7 +7,7 @@ stop, and wait on jobs.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -29,7 +29,7 @@ stop, and wait on jobs.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Job.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Job.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.compat
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Memoize.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Memoize.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Memoizer
|
||||
|
|
@ -8,7 +8,7 @@ This creates a hash of global Aliases (dummy targets).
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ This creates a hash of global Aliases (dummy targets).
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Node/Alias.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Node/Alias.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import collections
|
||||
|
|
@ -11,7 +11,7 @@ that can be used by scripts or modules looking for the canonical default.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -32,7 +32,7 @@ that can be used by scripts or modules looking for the canonical default.
|
|||
# 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__ = "src/engine/SCons/Node/FS.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Node/FS.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import fnmatch
|
||||
import os
|
|
@ -5,7 +5,7 @@ Python nodes.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ Python nodes.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Node/Python.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Node/Python.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Node
|
||||
|
|
@ -20,7 +20,7 @@ be able to depend on any other type of "thing."
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -41,7 +41,7 @@ be able to depend on any other type of "thing."
|
|||
# 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__ = "src/engine/SCons/Node/__init__.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Node/__init__.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import collections
|
||||
import copy
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Options/BoolOption.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Options/BoolOption.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Options/EnumOption.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Options/EnumOption.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Options/ListOption.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Options/ListOption.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Options/PackageOption.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Options/PackageOption.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Options/PathOption.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Options/PathOption.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Options/__init__.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Options/__init__.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/PathList.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/PathList.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """SCons.PathList
|
||||
|
|
@ -20,7 +20,7 @@ their own platform definition.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -42,7 +42,7 @@ their own platform definition.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/__init__.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/__init__.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.compat
|
||||
|
||||
|
@ -173,6 +173,7 @@ class TempFileMunge(object):
|
|||
length = 0
|
||||
for c in cmd:
|
||||
length += len(c)
|
||||
length += len(cmd) - 1
|
||||
if length <= maxline:
|
||||
return self.cmd
|
||||
|
||||
|
@ -187,7 +188,7 @@ class TempFileMunge(object):
|
|||
(fd, tmp) = tempfile.mkstemp('.lnk', text=True)
|
||||
native_tmp = SCons.Util.get_native_path(os.path.normpath(tmp))
|
||||
|
||||
if env['SHELL'] and env['SHELL'] == 'sh':
|
||||
if env.get('SHELL',None) == 'sh':
|
||||
# The sh shell will try to escape the backslashes in the
|
||||
# path, so unescape them.
|
||||
native_tmp = native_tmp.replace('\\', r'\\\\')
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,13 +30,17 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/aix.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/aix.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
import posix
|
||||
|
||||
def get_xlc(env, xlc=None, xlc_r=None, packages=[]):
|
||||
import SCons.Util
|
||||
import SCons.Action
|
||||
|
||||
def get_xlc(env, xlc=None, packages=[]):
|
||||
# Use the AIX package installer tool lslpp to figure out where a
|
||||
# given xl* compiler is installed and what version it is.
|
||||
xlcPath = None
|
||||
|
@ -44,18 +48,30 @@ def get_xlc(env, xlc=None, xlc_r=None, packages=[]):
|
|||
|
||||
if xlc is None:
|
||||
xlc = env.get('CC', 'xlc')
|
||||
if xlc_r is None:
|
||||
xlc_r = xlc + '_r'
|
||||
if SCons.Util.is_List(xlc):
|
||||
xlc = xlc[0]
|
||||
for package in packages:
|
||||
cmd = "lslpp -fc " + package + " 2>/dev/null | egrep '" + xlc + "([^-_a-zA-Z0-9].*)?$'"
|
||||
line = os.popen(cmd).readline()
|
||||
if line:
|
||||
v, p = line.split(':')[1:3]
|
||||
xlcVersion = v.split()[1]
|
||||
xlcPath = p.split()[0]
|
||||
xlcPath = xlcPath[:xlcPath.rindex('/')]
|
||||
break
|
||||
return (xlcPath, xlc, xlc_r, xlcVersion)
|
||||
# find the installed filename, which may be a symlink as well
|
||||
pipe = SCons.Action._subproc(env, ['lslpp', '-fc', package],
|
||||
stdin = 'devnull',
|
||||
stderr = 'devnull',
|
||||
stdout = subprocess.PIPE)
|
||||
# output of lslpp is something like this:
|
||||
# #Path:Fileset:File
|
||||
# /usr/lib/objrepos:vac.C 6.0.0.0:/usr/vac/exe/xlCcpp
|
||||
# /usr/lib/objrepos:vac.C 6.0.0.0:/usr/vac/bin/xlc_r -> /usr/vac/bin/xlc
|
||||
for line in pipe.stdout:
|
||||
if xlcPath:
|
||||
continue # read everything to let lslpp terminate
|
||||
fileset, filename = line.split(':')[1:3]
|
||||
filename = filename.split()[0]
|
||||
if ('/' in xlc and filename == xlc) \
|
||||
or ('/' not in xlc and filename.endswith('/' + xlc)):
|
||||
xlcVersion = fileset.split()[1]
|
||||
xlcPath, sep, xlc = filename.rpartition('/')
|
||||
pass
|
||||
pass
|
||||
return (xlcPath, xlc, xlcVersion)
|
||||
|
||||
def generate(env):
|
||||
posix.generate(env)
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/cygwin.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/cygwin.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import posix
|
||||
from SCons.Platform import TempFileMunge
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/darwin.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/darwin.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import posix
|
||||
import os
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/hpux.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/hpux.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import posix
|
||||
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/irix.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/irix.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import posix
|
||||
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/os2.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/os2.py 2014/09/27 12:51:43 garyo"
|
||||
import win32
|
||||
|
||||
def generate(env):
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/posix.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/posix.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import errno
|
||||
import os
|
||||
|
@ -113,6 +113,10 @@ def generate(env):
|
|||
# This platform supports RPATH specifications.
|
||||
env['__RPATH'] = '$_RPATH'
|
||||
|
||||
# GDC is GCC family, but DMD and LDC have different options.
|
||||
# Must be able to have GCC and DMD work in the same build, so:
|
||||
env['__DRPATH'] = '$_DRPATH'
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
||||
# indent-tabs-mode:nil
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/sunos.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/sunos.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import posix
|
||||
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Platform/win32.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Platform/win32.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import os.path
|
|
@ -1,10 +1,18 @@
|
|||
"""SCons.SConf
|
||||
|
||||
Autoconf-like configuration support.
|
||||
|
||||
In other words, SConf allows to run tests on the build machine to detect
|
||||
capabilities of system and do some things based on result: generate config
|
||||
files, header files for C/C++, update variables in environment.
|
||||
|
||||
Tests on the build system can detect if compiler sees header files, if
|
||||
libraries are installed, if some command line options are supported etc.
|
||||
|
||||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -26,7 +34,7 @@ Autoconf-like configuration support.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/SConf.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/SConf.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.compat
|
||||
|
||||
|
@ -110,10 +118,15 @@ def _createConfigH(target, source, env):
|
|||
def _stringConfigH(target, source, env):
|
||||
return "scons: Configure: creating " + str(target[0])
|
||||
|
||||
def CreateConfigHBuilder(env):
|
||||
"""Called just before the building targets phase begins."""
|
||||
|
||||
def NeedConfigHBuilder():
|
||||
if len(_ac_config_hs) == 0:
|
||||
return
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def CreateConfigHBuilder(env):
|
||||
"""Called if necessary just before the building targets phase begins."""
|
||||
action = SCons.Action.Action(_createConfigH,
|
||||
_stringConfigH)
|
||||
sconfigHBld = SCons.Builder.Builder(action=action)
|
||||
|
@ -121,6 +134,7 @@ def CreateConfigHBuilder(env):
|
|||
for k in _ac_config_hs.keys():
|
||||
env.SConfigHBuilder(k, env.Value(_ac_config_hs[k]))
|
||||
|
||||
|
||||
class SConfWarning(SCons.Warnings.Warning):
|
||||
pass
|
||||
SCons.Warnings.enableWarningClass(SConfWarning)
|
||||
|
@ -180,7 +194,13 @@ class Streamer(object):
|
|||
def write(self, str):
|
||||
if self.orig:
|
||||
self.orig.write(str)
|
||||
try:
|
||||
self.s.write(str)
|
||||
except TypeError as e:
|
||||
if e.message.startswith('unicode argument expected'):
|
||||
self.s.write(str.decode())
|
||||
else:
|
||||
raise
|
||||
|
||||
def writelines(self, lines):
|
||||
for l in lines:
|
|
@ -5,7 +5,7 @@ Writing and reading information to the .sconsign file or files.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ Writing and reading information to the .sconsign file or files.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/SConsign.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/SConsign.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.compat
|
||||
|
|
@ -5,7 +5,7 @@ This module implements the depenency scanner for C/C++ code.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ This module implements the depenency scanner for C/C++ code.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Scanner/C.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/C.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Node.FS
|
||||
import SCons.Scanner
|
|
@ -8,7 +8,7 @@ Coded by Andy Friesen
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ Coded by Andy Friesen
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Scanner/D.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/D.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import re
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -20,7 +20,7 @@
|
|||
# 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__ = "src/engine/SCons/Scanner/Dir.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/Dir.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Node.FS
|
||||
import SCons.Scanner
|
|
@ -5,7 +5,7 @@ This module implements the dependency scanner for Fortran code.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -26,7 +26,7 @@ This module implements the dependency scanner for Fortran code.
|
|||
# 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__ = "src/engine/SCons/Scanner/Fortran.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/Fortran.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import re
|
||||
|
|
@ -6,7 +6,7 @@ Definition Language) files.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -28,7 +28,7 @@ Definition Language) files.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Scanner/IDL.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/IDL.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Node.FS
|
||||
import SCons.Scanner
|
|
@ -5,7 +5,7 @@ This module implements the dependency scanner for LaTeX code.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ This module implements the dependency scanner for LaTeX code.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Scanner/LaTeX.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/LaTeX.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
import re
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Scanner/Prog.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/Prog.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Node
|
||||
import SCons.Node.FS
|
|
@ -6,7 +6,7 @@ Definition Language) files.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -28,7 +28,7 @@ Definition Language) files.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Scanner/RC.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/RC.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Node.FS
|
||||
import SCons.Scanner
|
|
@ -5,7 +5,7 @@ The Scanner package for the SCons software construction utility.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ The Scanner package for the SCons software construction utility.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Scanner/__init__.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Scanner/__init__.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import re
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -20,7 +20,7 @@
|
|||
# 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__ = "src/engine/SCons/Script/Interactive.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Script/Interactive.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """
|
||||
SCons interactive mode
|
|
@ -13,7 +13,7 @@ it goes here.
|
|||
unsupported_python_version = (2, 3, 0)
|
||||
deprecated_python_version = (2, 7, 0)
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -34,7 +34,7 @@ deprecated_python_version = (2, 7, 0)
|
|||
# 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__ = "src/engine/SCons/Script/Main.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Script/Main.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.compat
|
||||
|
||||
|
@ -312,7 +312,7 @@ class BuildTask(SCons.Taskmaster.OutOfDateTask):
|
|||
|
||||
class CleanTask(SCons.Taskmaster.AlwaysTask):
|
||||
"""An SCons clean task."""
|
||||
def fs_delete(self, path, pathstr, remove=1):
|
||||
def fs_delete(self, path, pathstr, remove=True):
|
||||
try:
|
||||
if os.path.lexists(path):
|
||||
if os.path.isfile(path) or os.path.islink(path):
|
||||
|
@ -339,21 +339,28 @@ class CleanTask(SCons.Taskmaster.AlwaysTask):
|
|||
except (IOError, OSError), e:
|
||||
print "scons: Could not remove '%s':" % pathstr, e.strerror
|
||||
|
||||
def show(self):
|
||||
def _get_files_to_clean(self):
|
||||
result = []
|
||||
target = self.targets[0]
|
||||
if target.has_builder() or target.side_effect:
|
||||
result = [t for t in self.targets if not t.noclean]
|
||||
return result
|
||||
|
||||
def _clean_targets(self, remove=True):
|
||||
target = self.targets[0]
|
||||
if (target.has_builder() or target.side_effect) and not target.noclean:
|
||||
for t in self.targets:
|
||||
if not t.isdir():
|
||||
display("Removed " + str(t))
|
||||
if target in SCons.Environment.CleanTargets:
|
||||
files = SCons.Environment.CleanTargets[target]
|
||||
for f in files:
|
||||
self.fs_delete(f.abspath, str(f), 0)
|
||||
self.fs_delete(f.abspath, str(f), remove)
|
||||
|
||||
def show(self):
|
||||
for t in self._get_files_to_clean():
|
||||
if not t.isdir():
|
||||
display("Removed " + str(t))
|
||||
self._clean_targets(remove=False)
|
||||
|
||||
def remove(self):
|
||||
target = self.targets[0]
|
||||
if (target.has_builder() or target.side_effect) and not target.noclean:
|
||||
for t in self.targets:
|
||||
for t in self._get_files_to_clean():
|
||||
try:
|
||||
removed = t.remove()
|
||||
except OSError, e:
|
||||
|
@ -366,10 +373,7 @@ class CleanTask(SCons.Taskmaster.AlwaysTask):
|
|||
else:
|
||||
if removed:
|
||||
display("Removed " + str(t))
|
||||
if target in SCons.Environment.CleanTargets:
|
||||
files = SCons.Environment.CleanTargets[target]
|
||||
for f in files:
|
||||
self.fs_delete(f.abspath, str(f))
|
||||
self._clean_targets(remove=True)
|
||||
|
||||
execute = remove
|
||||
|
||||
|
@ -949,6 +953,14 @@ def _main(parser):
|
|||
if options.include_dir:
|
||||
sys.path = options.include_dir + sys.path
|
||||
|
||||
# If we're about to start SCons in the interactive mode,
|
||||
# inform the FS about this right here. Else, the release_target_info
|
||||
# method could get called on some nodes, like the used "gcc" compiler,
|
||||
# when using the Configure methods within the SConscripts.
|
||||
# This would then cause subtle bugs, as already happened in #2971.
|
||||
if options.interactive:
|
||||
SCons.Node.interactive = True
|
||||
|
||||
# That should cover (most of) the options. Next, set up the variables
|
||||
# that hold command-line arguments, so the SConscript files that we
|
||||
# read and execute have access to them.
|
||||
|
@ -1021,12 +1033,16 @@ def _main(parser):
|
|||
# in case they disabled the warning in the SConscript files.
|
||||
if python_version_deprecated():
|
||||
msg = "Support for pre-%s Python version (%s) is deprecated.\n" + \
|
||||
" If this will cause hardship, contact dev@scons.tigris.org."
|
||||
" If this will cause hardship, contact scons-dev@scons.org"
|
||||
deprecated_version_string = ".".join(map(str, deprecated_python_version))
|
||||
SCons.Warnings.warn(SCons.Warnings.PythonVersionWarning,
|
||||
msg % (deprecated_version_string, python_version_string()))
|
||||
|
||||
if not options.help:
|
||||
# [ ] Clarify why we need to create Builder here at all, and
|
||||
# why it is created in DefaultEnvironment
|
||||
# https://bitbucket.org/scons/scons/commits/d27a548aeee8ad5e67ea75c2d19a7d305f784e30
|
||||
if SCons.SConf.NeedConfigHBuilder():
|
||||
SCons.SConf.CreateConfigHBuilder(SCons.Defaults.DefaultEnvironment())
|
||||
|
||||
# Now re-parse the command-line options (any to the left of a '--'
|
||||
|
@ -1074,7 +1090,6 @@ def _main(parser):
|
|||
platform = SCons.Platform.platform_module()
|
||||
|
||||
if options.interactive:
|
||||
SCons.Node.interactive = True
|
||||
SCons.Script.Interactive.interact(fs, OptionsParser, options,
|
||||
targets, target_top)
|
||||
|
||||
|
@ -1343,7 +1358,7 @@ def main():
|
|||
pass
|
||||
parts.append(version_string("engine", SCons))
|
||||
parts.append(path_string("engine", SCons))
|
||||
parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation")
|
||||
parts.append("Copyright (c) 2001 - 2014 The SCons Foundation")
|
||||
version = ''.join(parts)
|
||||
|
||||
import SConsOptions
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Script/SConsOptions.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Script/SConsOptions.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import optparse
|
||||
import re
|
|
@ -6,7 +6,7 @@ files.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -28,7 +28,7 @@ files.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
from __future__ import division
|
||||
|
||||
__revision__ = "src/engine/SCons/Script/SConscript.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Script/SConscript.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons
|
||||
import SCons.Action
|
||||
|
@ -461,6 +461,11 @@ class SConsEnvironment(SCons.Environment.Base):
|
|||
|
||||
def EnsureSConsVersion(self, major, minor, revision=0):
|
||||
"""Exit abnormally if the SCons version is not late enough."""
|
||||
# split string to avoid replacement during build process
|
||||
if SCons.__version__ == '__' + 'VERSION__':
|
||||
SCons.Warnings.warn(SCons.Warnings.DevelopmentVersionWarning,
|
||||
"EnsureSConsVersion is ignored for development version")
|
||||
return
|
||||
scons_ver = self._get_major_minor_revision(SCons.__version__)
|
||||
if scons_ver < (major, minor, revision):
|
||||
if revision:
|
|
@ -12,7 +12,7 @@ it goes here.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -34,7 +34,7 @@ it goes here.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Script/__init__.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Script/__init__.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import time
|
||||
start_time = time.time()
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Sig.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Sig.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Place-holder for the old SCons.Sig module hierarchy
|
||||
|
|
@ -5,7 +5,7 @@ SCons string substitution.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -26,7 +26,7 @@ SCons string substitution.
|
|||
# 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__ = "src/engine/SCons/Subst.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Subst.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import collections
|
||||
import re
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -47,7 +47,7 @@ interface and the SCons build engine. There are two key classes here:
|
|||
target(s) that it decides need to be evaluated and/or built.
|
||||
"""
|
||||
|
||||
__revision__ = "src/engine/SCons/Taskmaster.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Taskmaster.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
from itertools import chain
|
||||
import operator
|
|
@ -10,7 +10,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -32,7 +32,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/386asm.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/386asm.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
from SCons.Tool.PharLapCommon import addPharLapPaths
|
||||
import SCons.Util
|
|
@ -10,7 +10,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -32,7 +32,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/BitKeeper.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/BitKeeper.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
|
||||
"""
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -29,7 +29,7 @@ selection method.
|
|||
# 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__ = "src/engine/SCons/Tool/CVS.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/CVS.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
56
scons/scons-local-2.3.4/SCons/Tool/DCommon.py
Normal file
56
scons/scons-local-2.3.4/SCons/Tool/DCommon.py
Normal file
|
@ -0,0 +1,56 @@
|
|||
"""SCons.Tool.DCommon
|
||||
|
||||
Common code for the various D tools.
|
||||
|
||||
Coded by Russel Winder (russel@winder.org.uk)
|
||||
2012-09-06
|
||||
"""
|
||||
#
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# 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__ = "src/engine/SCons/Tool/DCommon.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
|
||||
def isD(env, source):
|
||||
if not source:
|
||||
return 0
|
||||
for s in source:
|
||||
if s.sources:
|
||||
ext = os.path.splitext(str(s.sources[0]))[1]
|
||||
if ext == '.d':
|
||||
return 1
|
||||
return 0
|
||||
|
||||
def addDPATHToEnv(env, executable):
|
||||
dPath = env.WhereIs(executable)
|
||||
if dPath:
|
||||
phobosDir = dPath[:dPath.rindex(executable)] + '/../src/phobos'
|
||||
if os.path.isdir(phobosDir):
|
||||
env.Append(DPATH=[phobosDir])
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
||||
# indent-tabs-mode:nil
|
||||
# End:
|
||||
# vim: set expandtab tabstop=4 shiftwidth=4:
|
|
@ -5,7 +5,7 @@ Stuff for processing Fortran, common to all fortran dialects.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ Stuff for processing Fortran, common to all fortran dialects.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/FortranCommon.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/FortranCommon.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import re
|
||||
import os.path
|
|
@ -3,7 +3,7 @@
|
|||
Used by several tools of `gettext` toolset.
|
||||
"""
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -24,7 +24,7 @@ Used by several tools of `gettext` toolset.
|
|||
# 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__ = "src/engine/SCons/Tool/GettextCommon.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/GettextCommon.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Warnings
|
||||
import re
|
|
@ -5,7 +5,7 @@ Stuff for processing Java.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ Stuff for processing Java.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/JavaCommon.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/JavaCommon.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import os.path
|
||||
|
@ -65,7 +65,7 @@ if java_parsing:
|
|||
def __init__(self, version=default_java_version):
|
||||
|
||||
if not version in ('1.1', '1.2', '1.3','1.4', '1.5', '1.6', '1.7',
|
||||
'5', '6'):
|
||||
'1.8', '5', '6'):
|
||||
msg = "Java version %s not supported" % version
|
||||
raise NotImplementedError(msg)
|
||||
|
||||
|
@ -171,7 +171,7 @@ if java_parsing:
|
|||
if self.version in ('1.1', '1.2', '1.3', '1.4'):
|
||||
clazz = self.listClasses[0]
|
||||
self.listOutputs.append('%s$%d' % (clazz, self.nextAnon))
|
||||
elif self.version in ('1.5', '1.6', '1.7', '5', '6'):
|
||||
elif self.version in ('1.5', '1.6', '1.7', '1.8', '5', '6'):
|
||||
self.stackAnonClassBrackets.append(self.brackets)
|
||||
className = []
|
||||
className.extend(self.listClasses)
|
||||
|
@ -244,7 +244,8 @@ if java_parsing:
|
|||
return self
|
||||
# If that's an inner class which is declared in a method, it
|
||||
# requires an index prepended to the class-name, e.g.
|
||||
# 'Foo$1Inner' (Tigris Issue 2087)
|
||||
# 'Foo$1Inner'
|
||||
# http://scons.tigris.org/issues/show_bug.cgi?id=2087
|
||||
if self.outer_state.localClasses and \
|
||||
self.outer_state.stackBrackets[-1] > \
|
||||
self.outer_state.stackBrackets[-2]+1:
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """
|
||||
Common functions for Microsoft Visual Studio and Visual C/C++.
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Module to define supported Windows chip architectures.
|
||||
"""
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/common.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/common.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """
|
||||
Common helper functions for working with the Microsoft tool chain.
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -20,7 +20,7 @@
|
|||
# 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__ = "src/engine/SCons/Tool/MSCommon/netframework.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/netframework.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """
|
||||
"""
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Module to detect the Platform/Windows SDK
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@
|
|||
# * test on 64 bits XP + VS 2005 (and VS 6 if possible)
|
||||
# * SDK
|
||||
# * Assembly
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Module for Visual C/C++ detection and configuration.
|
||||
"""
|
||||
|
@ -89,6 +89,7 @@ _ARCH_TO_CANONICAL = {
|
|||
_HOST_TARGET_ARCH_TO_BAT_ARCH = {
|
||||
("x86", "x86"): "x86",
|
||||
("x86", "amd64"): "x86_amd64",
|
||||
("x86", "x86_amd64"): "x86_amd64",
|
||||
("amd64", "x86_amd64"): "x86_amd64", # This is present in (at least) VS2012 express
|
||||
("amd64", "amd64"): "amd64",
|
||||
("amd64", "x86"): "x86",
|
||||
|
@ -131,9 +132,15 @@ def get_host_target(env):
|
|||
|
||||
return (host, target,req_target_platform)
|
||||
|
||||
_VCVER = ["11.0", "11.0Exp", "10.0", "10.0Exp", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
|
||||
# If you update this, update SupportedVSList in Tool/MSCommon/vs.py, and the
|
||||
# MSVC_VERSION documentation in Tool/msvc.xml.
|
||||
_VCVER = ["12.0", "12.0Exp", "11.0", "11.0Exp", "10.0", "10.0Exp", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
|
||||
|
||||
_VCVER_TO_PRODUCT_DIR = {
|
||||
'12.0' : [
|
||||
r'Microsoft\VisualStudio\12.0\Setup\VC\ProductDir'],
|
||||
'12.0Exp' : [
|
||||
r'Microsoft\VCExpress\12.0\Setup\VC\ProductDir'],
|
||||
'11.0': [
|
||||
r'Microsoft\VisualStudio\11.0\Setup\VC\ProductDir'],
|
||||
'11.0Exp' : [
|
||||
|
@ -298,8 +305,21 @@ def reset_installed_vcs():
|
|||
"""Make it try again to find VC. This is just for the tests."""
|
||||
__INSTALLED_VCS_RUN = None
|
||||
|
||||
# Running these batch files isn't cheap: most of the time spent in
|
||||
# msvs.generate() is due to vcvars*.bat. In a build that uses "tools='msvs'"
|
||||
# in multiple environments, for example:
|
||||
# env1 = Environment(tools='msvs')
|
||||
# env2 = Environment(tools='msvs')
|
||||
# we can greatly improve the speed of the second and subsequent Environment
|
||||
# (or Clone) calls by memoizing the environment variables set by vcvars*.bat.
|
||||
script_env_stdout_cache = {}
|
||||
def script_env(script, args=None):
|
||||
cache_key = (script, args)
|
||||
stdout = script_env_stdout_cache.get(cache_key, None)
|
||||
if stdout is None:
|
||||
stdout = common.get_output(script, args)
|
||||
script_env_stdout_cache[cache_key] = stdout
|
||||
|
||||
# Stupid batch files do not set return code: we take a look at the
|
||||
# beginning of the output for an error message instead
|
||||
olines = stdout.splitlines()
|
||||
|
@ -416,7 +436,7 @@ def msvc_find_valid_batch_script(env,version):
|
|||
if not vc_script and sdk_script:
|
||||
debug('vc.py:msvc_find_valid_batch_script() use_script 4: trying sdk script: %s'%(sdk_script))
|
||||
try:
|
||||
d = script_env(sdk_script,args=[])
|
||||
d = script_env(sdk_script)
|
||||
except BatchFileExecutionError,e:
|
||||
debug('vc.py:msvc_find_valid_batch_script() use_script 5: failed running SDK script %s: Error:%s'%(repr(sdk_script),e))
|
||||
continue
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -21,7 +21,7 @@
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
__doc__ = """Module to detect Visual Studio and/or Visual C/C++
|
||||
"""
|
||||
|
@ -199,102 +199,96 @@ class VisualStudio(object):
|
|||
# good money for in preference to whatever Microsoft makes available
|
||||
# for free.
|
||||
#
|
||||
# If you update this list, update the documentation in Tool/msvs.xml.
|
||||
# If you update this list, update _VCVER and _VCVER_TO_PRODUCT_DIR in
|
||||
# Tool/MSCommon/vc.py, and the MSVC_VERSION documentation in Tool/msvc.xml.
|
||||
|
||||
SupportedVSList = [
|
||||
# Visual Studio 2010
|
||||
# TODO: find the settings, perhaps from someone with a CTP copy?
|
||||
#VisualStudio('TBD',
|
||||
# hkey_root=r'TBD',
|
||||
# common_tools_var='TBD',
|
||||
# executable_path=r'TBD',
|
||||
# default_dirname='TBD',
|
||||
#),
|
||||
# Visual Studio 2013
|
||||
VisualStudio('12.0',
|
||||
vc_version='12.0',
|
||||
sdk_version='8.1A',
|
||||
hkeys=[r'Microsoft\VisualStudio\12.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS120COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\devenv.com',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
supported_arch=['x86', 'amd64'],
|
||||
),
|
||||
|
||||
# Visual Studio 11
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the devenv.com executable is up in ..\..\Common7\IDE.
|
||||
# Visual C++ 2013 Express Edition (for Desktop)
|
||||
VisualStudio('12.0Exp',
|
||||
vc_version='12.0',
|
||||
sdk_version='8.1A',
|
||||
hkeys=[r'Microsoft\VisualStudio\12.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS120COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\WDExpress.exe',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
supported_arch=['x86', 'amd64'],
|
||||
),
|
||||
|
||||
# Visual Studio 2012
|
||||
VisualStudio('11.0',
|
||||
sdk_version='6.1',
|
||||
sdk_version='8.0A',
|
||||
hkeys=[r'Microsoft\VisualStudio\11.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS110COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\devenv.com',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
default_dirname='Microsoft Visual Studio 11',
|
||||
supported_arch=['x86', 'amd64'],
|
||||
),
|
||||
|
||||
# Visual C++ 11 Express Edition
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the VCExpress.exe executable is up in ..\..\Common7\IDE.
|
||||
# Visual C++ 2012 Express Edition (for Desktop)
|
||||
VisualStudio('11.0Exp',
|
||||
vc_version='11.0',
|
||||
sdk_version='6.1',
|
||||
hkeys=[r'Microsoft\VCExpress\11.0\Setup\VS\ProductDir'],
|
||||
sdk_version='8.0A',
|
||||
hkeys=[r'Microsoft\VisualStudio\11.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS110COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\VCExpress.exe',
|
||||
executable_path=r'Common7\IDE\WDExpress.exe',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
default_dirname='Microsoft Visual Studio 11',
|
||||
supported_arch=['x86'],
|
||||
supported_arch=['x86', 'amd64'],
|
||||
),
|
||||
|
||||
# Visual Studio 2010
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the devenv.com executable is up in ..\..\Common7\IDE.
|
||||
VisualStudio('10.0',
|
||||
sdk_version='6.1',
|
||||
sdk_version='7.0A',
|
||||
hkeys=[r'Microsoft\VisualStudio\10.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS100COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\devenv.com',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
default_dirname='Microsoft Visual Studio 10',
|
||||
supported_arch=['x86', 'amd64'],
|
||||
),
|
||||
|
||||
# Visual C++ 2010 Express Edition
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the VCExpress.exe executable is up in ..\..\Common7\IDE.
|
||||
VisualStudio('10.0Exp',
|
||||
vc_version='10.0',
|
||||
sdk_version='6.1',
|
||||
sdk_version='7.0A',
|
||||
hkeys=[r'Microsoft\VCExpress\10.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS100COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\VCExpress.exe',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
default_dirname='Microsoft Visual Studio 10',
|
||||
supported_arch=['x86'],
|
||||
),
|
||||
|
||||
# Visual Studio 2008
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the devenv.com executable is up in ..\..\Common7\IDE.
|
||||
VisualStudio('9.0',
|
||||
sdk_version='6.1',
|
||||
sdk_version='6.0A',
|
||||
hkeys=[r'Microsoft\VisualStudio\9.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS90COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\devenv.com',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
default_dirname='Microsoft Visual Studio 9',
|
||||
supported_arch=['x86', 'amd64'],
|
||||
),
|
||||
|
||||
# Visual C++ 2008 Express Edition
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the VCExpress.exe executable is up in ..\..\Common7\IDE.
|
||||
VisualStudio('9.0Exp',
|
||||
vc_version='9.0',
|
||||
sdk_version='6.1',
|
||||
sdk_version='6.0A',
|
||||
hkeys=[r'Microsoft\VCExpress\9.0\Setup\VS\ProductDir'],
|
||||
common_tools_var='VS90COMNTOOLS',
|
||||
executable_path=r'Common7\IDE\VCExpress.exe',
|
||||
batch_file_path=r'Common7\Tools\vsvars32.bat',
|
||||
default_dirname='Microsoft Visual Studio 9',
|
||||
supported_arch=['x86'],
|
||||
),
|
||||
|
||||
# Visual Studio 2005
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the devenv.com executable is up in ..\..\Common7\IDE.
|
||||
VisualStudio('8.0',
|
||||
sdk_version='6.0A',
|
||||
hkeys=[r'Microsoft\VisualStudio\8.0\Setup\VS\ProductDir'],
|
||||
|
@ -306,8 +300,6 @@ SupportedVSList = [
|
|||
),
|
||||
|
||||
# Visual C++ 2005 Express Edition
|
||||
# The batch file we look for is in the VC directory,
|
||||
# so the VCExpress.exe executable is up in ..\..\Common7\IDE.
|
||||
VisualStudio('8.0Exp',
|
||||
vc_version='8.0Exp',
|
||||
sdk_version='6.0A',
|
||||
|
@ -320,8 +312,6 @@ SupportedVSList = [
|
|||
),
|
||||
|
||||
# Visual Studio .NET 2003
|
||||
# The batch file we look for is in the Common7\Tools directory,
|
||||
# so the devenv.com executable is next door in ..\IDE.
|
||||
VisualStudio('7.1',
|
||||
sdk_version='6.0',
|
||||
hkeys=[r'Microsoft\VisualStudio\7.1\Setup\VS\ProductDir'],
|
||||
|
@ -333,8 +323,6 @@ SupportedVSList = [
|
|||
),
|
||||
|
||||
# Visual Studio .NET
|
||||
# The batch file we look for is in the Common7\Tools directory,
|
||||
# so the devenv.com executable is next door in ..\IDE.
|
||||
VisualStudio('7.0',
|
||||
sdk_version='2003R2',
|
||||
hkeys=[r'Microsoft\VisualStudio\7.0\Setup\VS\ProductDir'],
|
||||
|
@ -462,7 +450,7 @@ def get_default_version(env):
|
|||
|
||||
If no version was requested by the user through the MSVS environment
|
||||
variable, query all the available the visual studios through
|
||||
query_versions, and take the highest one.
|
||||
get_installed_visual_studios, and take the highest one.
|
||||
|
||||
Return
|
||||
------
|
||||
|
@ -470,6 +458,7 @@ def get_default_version(env):
|
|||
the default version.
|
||||
"""
|
||||
if 'MSVS' not in env or not SCons.Util.is_Dict(env['MSVS']):
|
||||
# get all versions, and remember them for speed later
|
||||
versions = [vs.version for vs in get_installed_visual_studios()]
|
||||
env['MSVS'] = {'VERSIONS' : versions}
|
||||
else:
|
||||
|
@ -479,6 +468,8 @@ def get_default_version(env):
|
|||
if versions:
|
||||
env['MSVS_VERSION'] = versions[0] #use highest version by default
|
||||
else:
|
||||
debug('get_default_version: WARNING: no installed versions found, '
|
||||
'using first in SupportedVSList (%s)'%SupportedVSList[0].version)
|
||||
env['MSVS_VERSION'] = SupportedVSList[0].version
|
||||
|
||||
env['MSVS']['VERSION'] = env['MSVS_VERSION']
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
|
||||
"""
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -29,7 +29,7 @@ selection method.
|
|||
# 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__ = "src/engine/SCons/Tool/Perforce.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/Perforce.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
|
|
@ -7,7 +7,7 @@ Phar Lap ETS tool chain. Right now, this is linkloc and
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -29,7 +29,7 @@ Phar Lap ETS tool chain. Right now, this is linkloc and
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/PharLapCommon.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/PharLapCommon.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import os.path
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
|
||||
"""
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -29,7 +29,7 @@ selection method.
|
|||
# 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__ = "src/engine/SCons/Tool/RCS.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/RCS.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
|
||||
"""
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -29,7 +29,7 @@ selection method.
|
|||
# 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__ = "src/engine/SCons/Tool/SCCS.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/SCCS.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
|
||||
"""
|
||||
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -29,7 +29,7 @@ selection method.
|
|||
# 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__ = "src/engine/SCons/Tool/Subversion.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/Subversion.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
|
|
@ -14,7 +14,7 @@ tool definition.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -35,7 +35,7 @@ tool definition.
|
|||
# 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__ = "src/engine/SCons/Tool/__init__.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/__init__.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import imp
|
||||
import sys
|
||||
|
@ -772,6 +772,9 @@ def tool_list(platform, env):
|
|||
fortran_compilers = ['gfortran', 'g77', 'ifort', 'ifl', 'f95', 'f90', 'f77']
|
||||
ars = ['ar', 'mslib']
|
||||
|
||||
if not str(platform) == 'win32':
|
||||
other_plat_tools += ['m4', 'rpm']
|
||||
|
||||
c_compiler = FindTool(c_compilers, env) or c_compilers[0]
|
||||
|
||||
# XXX this logic about what tool provides what should somehow be
|
||||
|
@ -795,12 +798,13 @@ def tool_list(platform, env):
|
|||
fortran_compiler = FindTool(fortran_compilers, env) or fortran_compilers[0]
|
||||
ar = FindTool(ars, env) or ars[0]
|
||||
|
||||
d_compilers = ['dmd', 'gdc', 'ldc']
|
||||
d_compiler = FindTool(d_compilers, env) or d_compilers[0]
|
||||
|
||||
other_tools = FindAllTools(other_plat_tools + [
|
||||
'dmd',
|
||||
#TODO: merge 'install' into 'filesystem' and
|
||||
# make 'filesystem' the default
|
||||
'filesystem',
|
||||
'm4',
|
||||
'wix', #'midl', 'msvs',
|
||||
# Parser generators
|
||||
'lex', 'yacc',
|
||||
|
@ -812,14 +816,14 @@ def tool_list(platform, env):
|
|||
'dvipdf', 'dvips', 'gs',
|
||||
'tex', 'latex', 'pdflatex', 'pdftex',
|
||||
# Archivers
|
||||
'tar', 'zip', 'rpm',
|
||||
'tar', 'zip',
|
||||
# SourceCode factories
|
||||
'BitKeeper', 'CVS', 'Perforce',
|
||||
'RCS', 'SCCS', # 'Subversion',
|
||||
], env)
|
||||
|
||||
tools = ([linker, c_compiler, cxx_compiler,
|
||||
fortran_compiler, assembler, ar]
|
||||
fortran_compiler, assembler, ar, d_compiler]
|
||||
+ other_tools)
|
||||
|
||||
return [x for x in tools if x]
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/aixc++.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/aixc++.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
|
||||
|
@ -43,32 +43,25 @@ packages = ['vacpp.cmp.core', 'vacpp.cmp.batch', 'vacpp.cmp.C', 'ibmcxx.cmp']
|
|||
|
||||
def get_xlc(env):
|
||||
xlc = env.get('CXX', 'xlC')
|
||||
xlc_r = env.get('SHCXX', 'xlC_r')
|
||||
return SCons.Platform.aix.get_xlc(env, xlc, xlc_r, packages)
|
||||
|
||||
def smart_cxxflags(source, target, env, for_signature):
|
||||
build_dir = env.GetBuildPath()
|
||||
if build_dir:
|
||||
return '-qtempinc=' + os.path.join(build_dir, 'tempinc')
|
||||
return ''
|
||||
return SCons.Platform.aix.get_xlc(env, xlc, packages)
|
||||
|
||||
def generate(env):
|
||||
"""Add Builders and construction variables for xlC / Visual Age
|
||||
suite to an Environment."""
|
||||
path, _cxx, _shcxx, version = get_xlc(env)
|
||||
if path:
|
||||
path, _cxx, version = get_xlc(env)
|
||||
if path and _cxx:
|
||||
_cxx = os.path.join(path, _cxx)
|
||||
_shcxx = os.path.join(path, _shcxx)
|
||||
|
||||
if 'CXX' not in env:
|
||||
env['CXX'] = _cxx
|
||||
|
||||
cplusplus.generate(env)
|
||||
|
||||
env['CXX'] = _cxx
|
||||
env['SHCXX'] = _shcxx
|
||||
if version:
|
||||
env['CXXVERSION'] = version
|
||||
env['SHOBJSUFFIX'] = '.pic.o'
|
||||
|
||||
def exists(env):
|
||||
path, _cxx, _shcxx, version = get_xlc(env)
|
||||
path, _cxx, version = get_xlc(env)
|
||||
if path and _cxx:
|
||||
xlc = os.path.join(path, _cxx)
|
||||
if os.path.exists(xlc):
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/aixcc.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/aixcc.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
|
||||
|
@ -42,25 +42,25 @@ packages = ['vac.C', 'ibmcxx.cmp']
|
|||
|
||||
def get_xlc(env):
|
||||
xlc = env.get('CC', 'xlc')
|
||||
xlc_r = env.get('SHCC', 'xlc_r')
|
||||
return SCons.Platform.aix.get_xlc(env, xlc, xlc_r, packages)
|
||||
return SCons.Platform.aix.get_xlc(env, xlc, packages)
|
||||
|
||||
def generate(env):
|
||||
"""Add Builders and construction variables for xlc / Visual Age
|
||||
suite to an Environment."""
|
||||
path, _cc, _shcc, version = get_xlc(env)
|
||||
if path:
|
||||
path, _cc, version = get_xlc(env)
|
||||
if path and _cc:
|
||||
_cc = os.path.join(path, _cc)
|
||||
_shcc = os.path.join(path, _shcc)
|
||||
|
||||
if 'CC' not in env:
|
||||
env['CC'] = _cc
|
||||
|
||||
cc.generate(env)
|
||||
|
||||
env['CC'] = _cc
|
||||
env['SHCC'] = _shcc
|
||||
if version:
|
||||
env['CCVERSION'] = version
|
||||
|
||||
def exists(env):
|
||||
path, _cc, _shcc, version = get_xlc(env)
|
||||
path, _cc, version = get_xlc(env)
|
||||
if path and _cc:
|
||||
xlc = os.path.join(path, _cc)
|
||||
if os.path.exists(xlc):
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/aixf77.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/aixf77.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,14 +30,13 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/aixlink.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/aixlink.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import os.path
|
||||
|
||||
import SCons.Util
|
||||
|
||||
import aixcc
|
||||
import link
|
||||
|
||||
cplusplus = __import__('c++', globals(), locals(), [])
|
||||
|
@ -62,12 +61,14 @@ def generate(env):
|
|||
env['SHLIBSUFFIX'] = '.a'
|
||||
|
||||
def exists(env):
|
||||
path, _cc, _shcc, version = aixcc.get_xlc(env)
|
||||
if path and _cc:
|
||||
xlc = os.path.join(path, _cc)
|
||||
if os.path.exists(xlc):
|
||||
return xlc
|
||||
return None
|
||||
# TODO: sync with link.smart_link() to choose a linker
|
||||
linkers = { 'CXX': ['aixc++'], 'CC': ['aixcc'] }
|
||||
alltools = []
|
||||
for langvar, linktools in linkers.items():
|
||||
if langvar in env: # use CC over CXX when user specified CC but not CXX
|
||||
return SCons.Tool.FindTool(linktools, env)
|
||||
alltools.extend(linktools)
|
||||
return SCons.Tool.FindTool(alltools, env)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/applelink.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/applelink.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Util
|
||||
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/ar.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/ar.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Tool
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/as.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/as.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Tool
|
|
@ -5,7 +5,7 @@ XXX
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ XXX
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/bcc32.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/bcc32.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import os.path
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/c++.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/c++.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
|
||||
|
@ -72,7 +72,8 @@ def generate(env):
|
|||
|
||||
SCons.Tool.cc.add_common_cc_variables(env)
|
||||
|
||||
env['CXX'] = 'c++'
|
||||
if 'CXX' not in env:
|
||||
env['CXX'] = env.Detect(compilers) or compilers[0]
|
||||
env['CXXFLAGS'] = SCons.Util.CLVar('')
|
||||
env['CXXCOM'] = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
|
||||
env['SHCXX'] = '$CXX'
|
||||
|
@ -90,7 +91,7 @@ def generate(env):
|
|||
env['CXXFILESUFFIX'] = '.cc'
|
||||
|
||||
def exists(env):
|
||||
return env.Detect(compilers)
|
||||
return env.Detect(env.get('CXX', compilers))
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/cc.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/cc.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Tool
|
||||
import SCons.Defaults
|
||||
|
@ -62,6 +62,8 @@ def add_common_cc_variables(env):
|
|||
if 'SHCCFLAGS' not in env:
|
||||
env['SHCCFLAGS'] = SCons.Util.CLVar('$CCFLAGS')
|
||||
|
||||
compilers = ['cc']
|
||||
|
||||
def generate(env):
|
||||
"""
|
||||
Add Builders and construction variables for C compilers to an Environment.
|
||||
|
@ -76,7 +78,8 @@ def generate(env):
|
|||
|
||||
add_common_cc_variables(env)
|
||||
|
||||
env['CC'] = 'cc'
|
||||
if 'CC' not in env:
|
||||
env['CC'] = env.Detect(compilers) or compilers[0]
|
||||
env['CFLAGS'] = SCons.Util.CLVar('')
|
||||
env['CCCOM'] = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
|
||||
env['SHCC'] = '$CC'
|
||||
|
@ -93,7 +96,7 @@ def generate(env):
|
|||
env['CFILESUFFIX'] = '.c'
|
||||
|
||||
def exists(env):
|
||||
return env.Detect('cc')
|
||||
return env.Detect(env.get('CC', compilers))
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
|
@ -5,7 +5,7 @@ Tool-specific initialization for the Compaq Visual Fortran compiler.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ Tool-specific initialization for the Compaq Visual Fortran compiler.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/cvf.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/cvf.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import fortran
|
||||
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/default.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/default.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Tool
|
||||
|
152
scons/scons-local-2.3.4/SCons/Tool/dmd.py
Normal file
152
scons/scons-local-2.3.4/SCons/Tool/dmd.py
Normal file
|
@ -0,0 +1,152 @@
|
|||
"""SCons.Tool.dmd
|
||||
|
||||
Tool-specific initialization for the Digital Mars D compiler.
|
||||
(http://digitalmars.com/d)
|
||||
|
||||
Originally coded by Andy Friesen (andy@ikagames.com)
|
||||
15 November 2003
|
||||
|
||||
Evolved by Russel Winder (russel@winder.org.uk)
|
||||
2010-02-07 onwards
|
||||
|
||||
There are a number of problems with this script at this point in time.
|
||||
The one that irritates 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
|
||||
blah.lib from the directory where SConstruct resides.
|
||||
|
||||
Compiler variables:
|
||||
DC - The name of the D compiler to use. Defaults to dmd or gdmd,
|
||||
whichever is found.
|
||||
DPATH - List of paths to search for import modules.
|
||||
DVERSIONS - List of version tags to enable when compiling.
|
||||
DDEBUG - List of debug tags to enable when compiling.
|
||||
|
||||
Linker related variables:
|
||||
LIBS - List of library files to link in.
|
||||
DLINK - Name of the linker to use. Defaults to dmd or gdmd,
|
||||
whichever is found.
|
||||
DLINKFLAGS - List of linker flags.
|
||||
|
||||
Lib tool variables:
|
||||
DLIB - Name of the lib tool to use. Defaults to lib.
|
||||
DLIBFLAGS - List of flags to pass to the lib tool.
|
||||
LIBS - Same as for the linker. (libraries to pull into the .lib)
|
||||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# 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__ = "src/engine/SCons/Tool/dmd.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
||||
import SCons.Defaults
|
||||
import SCons.Scanner.D
|
||||
import SCons.Tool
|
||||
|
||||
import SCons.Tool.DCommon
|
||||
|
||||
|
||||
def generate(env):
|
||||
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
|
||||
|
||||
static_obj.add_action('.d', SCons.Defaults.DAction)
|
||||
shared_obj.add_action('.d', SCons.Defaults.ShDAction)
|
||||
static_obj.add_emitter('.d', SCons.Defaults.StaticObjectEmitter)
|
||||
shared_obj.add_emitter('.d', SCons.Defaults.SharedObjectEmitter)
|
||||
|
||||
env['DC'] = env.Detect(['dmd', 'gdmd'])
|
||||
env['DCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -of$TARGET $SOURCES'
|
||||
env['_DINCFLAGS'] = '$( ${_concat(DINCPREFIX, DPATH, DINCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
|
||||
env['_DVERFLAGS'] = '$( ${_concat(DVERPREFIX, DVERSIONS, DVERSUFFIX, __env__)} $)'
|
||||
env['_DDEBUGFLAGS'] = '$( ${_concat(DDEBUGPREFIX, DDEBUG, DDEBUGSUFFIX, __env__)} $)'
|
||||
env['_DFLAGS'] = '$( ${_concat(DFLAGPREFIX, DFLAGS, DFLAGSUFFIX, __env__)} $)'
|
||||
|
||||
env['SHDC'] = '$DC'
|
||||
env['SHDCOM'] = '$DC $_DINCFLAGS $_DVERFLAGS $_DDEBUGFLAGS $_DFLAGS -c -fPIC -of$TARGET $SOURCES'
|
||||
|
||||
env['DPATH'] = ['#/']
|
||||
env['DFLAGS'] = []
|
||||
env['DVERSIONS'] = []
|
||||
env['DDEBUG'] = []
|
||||
|
||||
if env['DC']:
|
||||
SCons.Tool.DCommon.addDPATHToEnv(env, env['DC'])
|
||||
|
||||
env['DINCPREFIX'] = '-I'
|
||||
env['DINCSUFFIX'] = ''
|
||||
env['DVERPREFIX'] = '-version='
|
||||
env['DVERSUFFIX'] = ''
|
||||
env['DDEBUGPREFIX'] = '-debug='
|
||||
env['DDEBUGSUFFIX'] = ''
|
||||
env['DFLAGPREFIX'] = '-'
|
||||
env['DFLAGSUFFIX'] = ''
|
||||
env['DFILESUFFIX'] = '.d'
|
||||
|
||||
env['DLINK'] = '$DC'
|
||||
env['DLINKFLAGS'] = SCons.Util.CLVar('')
|
||||
env['DLINKCOM'] = '$DLINK -of$TARGET $DLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS'
|
||||
|
||||
env['DSHLINK'] = '$DC'
|
||||
env['DSHLINKFLAGS'] = SCons.Util.CLVar('$DLINKFLAGS -shared -defaultlib=libphobos2.so')
|
||||
env['SHDLINKCOM'] = '$DLINK -of$TARGET $DSHLINKFLAGS $__DRPATH $SOURCES $_DLIBDIRFLAGS $_DLIBFLAGS'
|
||||
|
||||
env['DLIBLINKPREFIX'] = '' if env['PLATFORM'] == 'win32' else '-L-l'
|
||||
env['DLIBLINKSUFFIX'] = '.lib' if env['PLATFORM'] == 'win32' else ''
|
||||
env['_DLIBFLAGS'] = '${_stripixes(DLIBLINKPREFIX, LIBS, DLIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)}'
|
||||
|
||||
env['DLIBDIRPREFIX'] = '-L-L'
|
||||
env['DLIBDIRSUFFIX'] = ''
|
||||
env['_DLIBDIRFLAGS'] = '$( ${_concat(DLIBDIRPREFIX, LIBPATH, DLIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
|
||||
|
||||
|
||||
env['DLIB'] = 'lib' if env['PLATFORM'] == 'win32' else 'ar cr'
|
||||
env['DLIBCOM'] = '$DLIB $_DLIBFLAGS {0}$TARGET $SOURCES $_DLIBFLAGS'.format('-c ' if env['PLATFORM'] == 'win32' else '')
|
||||
|
||||
#env['_DLIBFLAGS'] = '$( ${_concat(DLIBFLAGPREFIX, DLIBFLAGS, DLIBFLAGSUFFIX, __env__)} $)'
|
||||
|
||||
env['DLIBFLAGPREFIX'] = '-'
|
||||
env['DLIBFLAGSUFFIX'] = ''
|
||||
|
||||
# __RPATH is set to $_RPATH in the platform specification if that
|
||||
# platform supports it.
|
||||
env['DRPATHPREFIX'] = '-L-rpath='
|
||||
env['DRPATHSUFFIX'] = ''
|
||||
env['_DRPATH'] = '${_concat(DRPATHPREFIX, RPATH, DRPATHSUFFIX, __env__)}'
|
||||
|
||||
SCons.Tool.createStaticLibBuilder(env)
|
||||
|
||||
|
||||
def exists(env):
|
||||
return env.Detect(['dmd', 'gdmd'])
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
||||
# indent-tabs-mode:nil
|
||||
# End:
|
||||
# vim: set expandtab tabstop=4 shiftwidth=4:
|
|
@ -242,7 +242,7 @@ def __xml_scan(node, env, path, arg):
|
|||
|
||||
styledoc = libxml2.parseFile(xsl_file)
|
||||
style = libxslt.parseStylesheetDoc(styledoc)
|
||||
doc = libxml2.parseFile(str(node))
|
||||
doc = libxml2.readFile(str(node), None, libxml2.XML_PARSE_NOENT)
|
||||
result = style.applyStylesheet(doc, None)
|
||||
|
||||
depfiles = []
|
||||
|
@ -348,7 +348,7 @@ def __xinclude_libxml2(target, source, env):
|
|||
Resolving XIncludes, using the libxml2 module.
|
||||
"""
|
||||
doc = libxml2.readFile(str(source[0]), None, libxml2.XML_PARSE_NOENT)
|
||||
doc.xincludeProcess()
|
||||
doc.xincludeProcessFlags(libxml2.XML_PARSE_NOENT)
|
||||
doc.saveFile(str(target[0]))
|
||||
doc.freeDoc()
|
||||
|
||||
|
@ -429,6 +429,11 @@ def DocbookEpub(env, target, source=None, *args, **kw):
|
|||
mime_file.close()
|
||||
zf.write(mime_file.name, compress_type = zipfile.ZIP_STORED)
|
||||
for s in source:
|
||||
if os.path.isfile(str(s)):
|
||||
head, tail = os.path.split(str(s))
|
||||
if not head:
|
||||
continue
|
||||
s = head
|
||||
for dirpath, dirnames, filenames in os.walk(str(s)):
|
||||
for fname in filenames:
|
||||
path = os.path.join(dirpath, fname)
|
|
@ -5,7 +5,7 @@ Common DVI Builder definition for various other Tool modules that use it.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -27,7 +27,7 @@ Common DVI Builder definition for various other Tool modules that use it.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/dvi.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/dvi.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Builder
|
||||
import SCons.Tool
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# 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__ = "src/engine/SCons/Tool/dvipdf.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/dvipdf.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Defaults
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/dvips.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/dvips.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Action
|
||||
import SCons.Builder
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/f03.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/f03.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Tool
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/f77.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/f77.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Scanner.Fortran
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/f90.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/f90.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Scanner.Fortran
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/f95.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/f95.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Defaults
|
||||
import SCons.Tool
|
|
@ -8,7 +8,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -30,7 +30,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/filesystem.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/filesystem.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons
|
||||
from SCons.Tool.install import copyFunc
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/fortran.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/fortran.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import re
|
||||
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/g++.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/g++.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import os.path
|
||||
import re
|
||||
|
@ -40,6 +40,8 @@ import subprocess
|
|||
import SCons.Tool
|
||||
import SCons.Util
|
||||
|
||||
import gcc
|
||||
|
||||
cplusplus = __import__('c++', globals(), locals(), [])
|
||||
|
||||
compilers = ['g++']
|
||||
|
@ -48,9 +50,10 @@ def generate(env):
|
|||
"""Add Builders and construction variables for g++ to an Environment."""
|
||||
static_obj, shared_obj = SCons.Tool.createObjBuilders(env)
|
||||
|
||||
cplusplus.generate(env)
|
||||
if 'CXX' not in env:
|
||||
env['CXX'] = env.Detect(compilers) or compilers[0]
|
||||
|
||||
env['CXX'] = env.Detect(compilers)
|
||||
cplusplus.generate(env)
|
||||
|
||||
# platform specific settings
|
||||
if env['PLATFORM'] == 'aix':
|
||||
|
@ -62,26 +65,13 @@ def generate(env):
|
|||
elif env['PLATFORM'] == 'sunos':
|
||||
env['SHOBJSUFFIX'] = '.pic.o'
|
||||
# determine compiler version
|
||||
if env['CXX']:
|
||||
#pipe = SCons.Action._subproc(env, [env['CXX'], '-dumpversion'],
|
||||
pipe = SCons.Action._subproc(env, [env['CXX'], '--version'],
|
||||
stdin = 'devnull',
|
||||
stderr = 'devnull',
|
||||
stdout = subprocess.PIPE)
|
||||
if pipe.wait() != 0: return
|
||||
# -dumpversion was added in GCC 3.0. As long as we're supporting
|
||||
# GCC versions older than that, we should use --version and a
|
||||
# regular expression.
|
||||
#line = pipe.stdout.read().strip()
|
||||
#if line:
|
||||
# env['CXXVERSION'] = line
|
||||
line = pipe.stdout.readline()
|
||||
match = re.search(r'[0-9]+(\.[0-9]+)+', line)
|
||||
if match:
|
||||
env['CXXVERSION'] = match.group(0)
|
||||
version = gcc.detect_version(env, env['CXX'])
|
||||
if version:
|
||||
env['CXXVERSION'] = version
|
||||
|
||||
def exists(env):
|
||||
return env.Detect(compilers)
|
||||
# is executable, and is a GNU compiler (or accepts '--version' at least)
|
||||
return gcc.detect_version(env, env.Detect(env.get('CXX', compilers)))
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:4
|
|
@ -9,7 +9,7 @@ selection method.
|
|||
"""
|
||||
|
||||
#
|
||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The SCons Foundation
|
||||
# Copyright (c) 2001 - 2014 The SCons Foundation
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
# a copy of this software and associated documentation files (the
|
||||
|
@ -31,7 +31,7 @@ selection method.
|
|||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
__revision__ = "src/engine/SCons/Tool/g77.py 2014/03/02 14:18:15 garyo"
|
||||
__revision__ = "src/engine/SCons/Tool/g77.py 2014/09/27 12:51:43 garyo"
|
||||
|
||||
import SCons.Util
|
||||
from SCons.Tool.FortranCommon import add_all_to_env, add_f77_to_env
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue