mirror of
https://github.com/rubyjs/libv8
synced 2023-03-27 23:21:48 -04:00
SCons version bump to 2.1.0
This commit is contained in:
parent
0893149492
commit
921a4e1e1e
197 changed files with 3466 additions and 2043 deletions
|
@ -5,6 +5,204 @@
|
||||||
Change Log
|
Change Log
|
||||||
|
|
||||||
|
|
||||||
|
RELEASE 2.1.0 - Mon, 09 Sep 2011 20:54:57 -0700
|
||||||
|
|
||||||
|
From Anton Lazarev:
|
||||||
|
- Fix Windows resource compiler scanner to accept DOS line endings.
|
||||||
|
|
||||||
|
From Matthias:
|
||||||
|
- Update MSVS documents to remove note indicating that only one
|
||||||
|
project is currently supported per solution file.
|
||||||
|
|
||||||
|
From Grzegorz Bizoń:
|
||||||
|
- Fix long compile lines in batch mode by using TEMPFILE
|
||||||
|
- Fix MSVC_BATCH=False (was treating it as true)
|
||||||
|
|
||||||
|
From Justin Gullingsrud:
|
||||||
|
- support -std=c++0x and related CXXFLAGS in pkgconfig (ParseFlags)
|
||||||
|
|
||||||
|
From Vincent Beffara:
|
||||||
|
- Support -dylib_file in pkgconfig (ParseFlags)
|
||||||
|
|
||||||
|
From Gary Oberbrunner and Sohail Somani:
|
||||||
|
- new construction variable WINDOWS_EMBED_MANIFEST to automatically
|
||||||
|
embed manifests in Windows EXEs and DLLs.
|
||||||
|
|
||||||
|
From Gary Oberbrunner:
|
||||||
|
- Fix Visual Studio project generation when CPPPATH contains Dir nodes
|
||||||
|
- Ensure Visual Studio project is regenerated when CPPPATH or CPPDEFINES change
|
||||||
|
- Fix unicode error when using non-ASCII filenames with Copy or Install
|
||||||
|
- Put RPATH in LINKCOM rather than LINKFLAGS so resetting
|
||||||
|
LINKFLAGS doesn't kill RPATH
|
||||||
|
- Fix precompiled headers on Windows when variant dir name has spaces.
|
||||||
|
- Adding None to an Action no longer fails (just returns original action)
|
||||||
|
- New --debug=prepare option to show each target as it's being
|
||||||
|
prepared, whether or not anything needs to be done for it.
|
||||||
|
- New debug option --debug=duplicate to print a line for each
|
||||||
|
unlink/relink (or copy) of a variant file from its source file.
|
||||||
|
- Improve error message for EnumVariables to show legal values.
|
||||||
|
- Fix Intel compiler to sort versions >9 correctly (esp. on Linux)
|
||||||
|
- Fix Install() when the source and target are directories and the
|
||||||
|
target directory exists.
|
||||||
|
|
||||||
|
From David Garcia Garzon:
|
||||||
|
- Fix Delete to be able to delete broken symlinks and dir
|
||||||
|
symlinks.
|
||||||
|
|
||||||
|
From Robert Lehr:
|
||||||
|
- Handle .output file generated by bison/yacc properly. Cleaning it
|
||||||
|
when necessary.
|
||||||
|
|
||||||
|
From Antoine Dechaume:
|
||||||
|
- Handle SWIG file where there is whitespace after the module name
|
||||||
|
properly. Previously the generated files would include
|
||||||
|
the whitespace.
|
||||||
|
|
||||||
|
From Dmitry R.:
|
||||||
|
- Handle Environment in case __semi_deepcopy is None
|
||||||
|
|
||||||
|
From Benoit Belley:
|
||||||
|
|
||||||
|
- Much improved support for Windows UNC paths (\\SERVERNAME).
|
||||||
|
|
||||||
|
From Jean-Baptiste Lab:
|
||||||
|
|
||||||
|
- Fix problems with appending CPPDEFINES that contain
|
||||||
|
dictionaries, and related issues with Parse/MergeFlags and
|
||||||
|
CPPDEFINES.
|
||||||
|
|
||||||
|
From Allen Weeks:
|
||||||
|
|
||||||
|
- Fix for an issue with implicit-cache with multiple targets
|
||||||
|
when dependencies are removed on disk.
|
||||||
|
|
||||||
|
From Evgeny Podjachev and Alexey Petruchick:
|
||||||
|
|
||||||
|
- Support generation of Microsoft Visual Studio 2008 (9.0)
|
||||||
|
and 2010 (10.0) project and solution files.
|
||||||
|
|
||||||
|
From Ken Deeter:
|
||||||
|
|
||||||
|
- Fix a problem when FS Entries which are actually Dirs have builders.
|
||||||
|
|
||||||
|
From Luca Falavigna:
|
||||||
|
|
||||||
|
- Support Fortran 03
|
||||||
|
|
||||||
|
From Gary Oberbrunner:
|
||||||
|
|
||||||
|
- Print the path to the SCons package in scons --version
|
||||||
|
|
||||||
|
From Jean-Fran�ois Colson:
|
||||||
|
|
||||||
|
- Improve Microsoft Visual Studio Solution generation, and fix
|
||||||
|
various errors in the generated solutions especially when using
|
||||||
|
MSVS_SCC_PROVIDER, and when generating multiple projects. The
|
||||||
|
construction variable MSVS_SCC_PROJECT_BASE_PATH, which never
|
||||||
|
worked properly, is removed. Users can use the new variable
|
||||||
|
MSVS_SCC_CONNECTION_ROOT instead if desired.
|
||||||
|
|
||||||
|
From Anatoly Techtonik:
|
||||||
|
|
||||||
|
- Use subprocess in bootstrap.py instead of os.execve to avoid
|
||||||
|
losing output control on Windows (http://bugs.python.org/issue9148)
|
||||||
|
|
||||||
|
- Revert patch for adding SCons to App Paths, because standard cmd
|
||||||
|
shell doesn't search there. This is confusing, because `scons` can
|
||||||
|
be executed from explorer, but fail to start from console.
|
||||||
|
|
||||||
|
- Fix broken installation with easy_install on Windows (issue #2051)
|
||||||
|
SCons traditionally installed in a way that allowed to run multiple
|
||||||
|
versions side by side. This custom logic was incompatible with
|
||||||
|
easy_install way of doing things.
|
||||||
|
|
||||||
|
- Use epydoc module for generating API docs in HTML if command line
|
||||||
|
utility is not found in PATH. Actual for Windows.
|
||||||
|
|
||||||
|
From Alexander Goomenyuk:
|
||||||
|
|
||||||
|
- Add .sx to assembly source scanner list so .sx files
|
||||||
|
get their header file dependencies detected.
|
||||||
|
|
||||||
|
From Arve Knudsen:
|
||||||
|
|
||||||
|
- Set module metadata when loading site_scons/site_init.py
|
||||||
|
so it is treated as a proper module; __doc__, __file__ and
|
||||||
|
__name__ now refer to the site_init.py file.
|
||||||
|
|
||||||
|
From Russel Winder:
|
||||||
|
|
||||||
|
- Users Guide updates explaining that Tools can be packages as
|
||||||
|
well as python modules.
|
||||||
|
|
||||||
|
From Gary Oberbrunner:
|
||||||
|
|
||||||
|
- New systemwide and per-user site_scons dirs.
|
||||||
|
|
||||||
|
From Dirk Baechle:
|
||||||
|
|
||||||
|
- XML fixes in User's Guide.
|
||||||
|
- Fixed the detection of 'jar' and 'rmic' during
|
||||||
|
the initialization of the respective Tools (#2730).
|
||||||
|
- Improved docs for custom Decider functions and
|
||||||
|
custom Scanner objects (#2711, #2713).
|
||||||
|
- Corrected SWIG module names for generated *.i files (#2707).
|
||||||
|
|
||||||
|
From Joe Zuntz:
|
||||||
|
|
||||||
|
- Fixed a case-sensitivity problem with Fortran modules.
|
||||||
|
|
||||||
|
From Bauke Conijn:
|
||||||
|
|
||||||
|
- Added Users Guide example for auto-generated source code
|
||||||
|
|
||||||
|
From Steven Knight:
|
||||||
|
|
||||||
|
- Fix explicit dependencies (Depends()) on Nodes that don't have
|
||||||
|
attached Builders.
|
||||||
|
|
||||||
|
- Fix use of the global Alias() function with command actions.
|
||||||
|
|
||||||
|
From Matt Hughes:
|
||||||
|
|
||||||
|
- Fix the ability to append to default $*FLAGS values (which are
|
||||||
|
implemented as CLVar instances) in a copied construction environment
|
||||||
|
without affecting the original construction environment's value.
|
||||||
|
|
||||||
|
From Rob Managan:
|
||||||
|
|
||||||
|
- Updated the TeX command strings to include a /D on Windows in
|
||||||
|
case the new directory is on a different drive letter.
|
||||||
|
|
||||||
|
- Fixed the LaTeX scanner so dependencies are found in commands that
|
||||||
|
are broken across lines with a comment or have embedded spaces.
|
||||||
|
|
||||||
|
- The TeX builders should now work with tex files that are generated
|
||||||
|
by another program. Thanks to Hans-Martin von Gaudecker for
|
||||||
|
isolating the cause of this bug.
|
||||||
|
|
||||||
|
- Added support for INDEXSTYLE environment variable so makeindex can
|
||||||
|
find style files.
|
||||||
|
|
||||||
|
- Added support for the bibunits package so we call bibtex on all
|
||||||
|
the bu*.aux files.
|
||||||
|
|
||||||
|
- Add support of finding path information on OSX for TeX applications
|
||||||
|
MacPorts and Fink paths need to be added by the user
|
||||||
|
|
||||||
|
From Russel Winder:
|
||||||
|
|
||||||
|
- Add support for DMD version 2 (the phobos2 library).
|
||||||
|
|
||||||
|
From William Deegan:
|
||||||
|
|
||||||
|
- Add initial support for VS/VC 2010 (express and non-express versions)
|
||||||
|
- Remove warning for not finding MS VC/VS install.
|
||||||
|
"scons: warning: No version of Visual Studio compiler found
|
||||||
|
- C/C++ compilers most likely not set correctly"
|
||||||
|
- Add support for Linux 3.0
|
||||||
|
|
||||||
|
|
||||||
RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
|
RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
|
||||||
|
|
||||||
From Dirk Baechle:
|
From Dirk Baechle:
|
||||||
|
@ -24,6 +222,29 @@ RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
|
||||||
- Fix explicit dependencies (Depends()) on Nodes that don't have
|
- Fix explicit dependencies (Depends()) on Nodes that don't have
|
||||||
attached Builders.
|
attached Builders.
|
||||||
|
|
||||||
|
From Matt Hughes:
|
||||||
|
|
||||||
|
- Fix the ability to append to default $*FLAGS values (which are
|
||||||
|
implemented as CLVar instances) in a copied construction environment
|
||||||
|
without affecting the original construction environment's value.
|
||||||
|
|
||||||
|
From Rob Managan:
|
||||||
|
|
||||||
|
- Updated the TeX command strings to include a /D on Windows in
|
||||||
|
case the new directory is on a different drive letter.
|
||||||
|
|
||||||
|
- Fixed the LaTeX scanner so dependencies are found in commands that
|
||||||
|
are broken across lines with a comment or have embedded spaces.
|
||||||
|
|
||||||
|
|
||||||
|
RELEASE 2.0.0.final.0 - Mon, 14 Jun 2010 22:01:37 -0700
|
||||||
|
|
||||||
|
From Dirk Baechle:
|
||||||
|
|
||||||
|
- Fix XML in documentation.
|
||||||
|
|
||||||
|
From Steven Knight:
|
||||||
|
|
||||||
- Provide forward compatibility for the 'profile' module.
|
- Provide forward compatibility for the 'profile' module.
|
||||||
|
|
||||||
- Provide forward compatibility for the 'pickle' module.
|
- Provide forward compatibility for the 'pickle' module.
|
||||||
|
@ -55,20 +276,6 @@ RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700
|
||||||
- Handle detecting Visual C++ on Python verions with upper-case
|
- Handle detecting Visual C++ on Python verions with upper-case
|
||||||
platform architectures like 'AMD64'.
|
platform architectures like 'AMD64'.
|
||||||
|
|
||||||
From Matt Hughes:
|
|
||||||
|
|
||||||
- Fix the ability to append to default $*FLAGS values (which are
|
|
||||||
implemented as CLVar instances) in a copied construction environment
|
|
||||||
without affecting the original construction environment's value.
|
|
||||||
|
|
||||||
From Rob Managan:
|
|
||||||
|
|
||||||
- Updated the TeX command strings to include a /D on Windows in
|
|
||||||
case the new directory is on a different drive letter.
|
|
||||||
|
|
||||||
- Fixed the LaTeX scanner so dependencies are found in commands that
|
|
||||||
are broken across lines with a comment or have embedded spaces.
|
|
||||||
|
|
||||||
From W. Trevor King:
|
From W. Trevor King:
|
||||||
|
|
||||||
- Revisions to README.
|
- Revisions to README.
|
||||||
|
@ -272,7 +479,7 @@ RELEASE 1.2.0.d20100117 - Sun, 17 Jan 2010 14:26:59 -0800
|
||||||
|
|
||||||
- Remove LATEXSUFFIXES from environments that don't initialize Tex.
|
- Remove LATEXSUFFIXES from environments that don't initialize Tex.
|
||||||
|
|
||||||
- Add support for the glosaaries package for glossaries and acronyms
|
- Add support for the glossaries package for glossaries and acronyms
|
||||||
|
|
||||||
- Fix problem that pdftex, latex, and pdflatex tools by themselves did
|
- Fix problem that pdftex, latex, and pdflatex tools by themselves did
|
||||||
not create the actions for bibtex, makeindex,... by creating them
|
not create the actions for bibtex, makeindex,... by creating them
|
||||||
|
@ -472,7 +679,7 @@ RELEASE 1.1.0.d20081207 - Sun, 07 Dec 2008 19:17:23 -0800
|
||||||
|
|
||||||
- Issue 2401: Fix usage of comparisons with None.
|
- Issue 2401: Fix usage of comparisons with None.
|
||||||
|
|
||||||
From Ludwig Hähne:
|
From Ludwig H�hne:
|
||||||
|
|
||||||
- Handle Java inner classes declared within a method.
|
- Handle Java inner classes declared within a method.
|
||||||
|
|
||||||
|
@ -601,7 +808,7 @@ RELEASE 1.1.0 - Thu, 09 Oct 2008 08:33:47 -0700
|
||||||
|
|
||||||
- Fix VariantDir duplication of #included files in subdirectories.
|
- Fix VariantDir duplication of #included files in subdirectories.
|
||||||
|
|
||||||
From Ludwig Hähne:
|
From Ludwig H�hne:
|
||||||
|
|
||||||
- Reduce memory usage when a directory is used as a dependency of
|
- Reduce memory usage when a directory is used as a dependency of
|
||||||
another Node (such as an Alias) by returning a concatenation
|
another Node (such as an Alias) by returning a concatenation
|
||||||
|
@ -716,7 +923,7 @@ RELEASE 1.0.0 - XXX
|
||||||
|
|
||||||
- Clear the Node state when turning a generic Entry into a Dir.
|
- Clear the Node state when turning a generic Entry into a Dir.
|
||||||
|
|
||||||
From Ludwig Hähne:
|
From Ludwig H�hne:
|
||||||
|
|
||||||
- Fix sporadic output-order failures in test/GetBuildFailures/parallel.py.
|
- Fix sporadic output-order failures in test/GetBuildFailures/parallel.py.
|
||||||
|
|
||||||
|
@ -950,7 +1157,7 @@ RELEASE 0.98.1 - Fri, 18 Apr 2008 19:11:58 -0700
|
||||||
|
|
||||||
- Fix the --debug=stree option so it prints its tree once, not twice.
|
- Fix the --debug=stree option so it prints its tree once, not twice.
|
||||||
|
|
||||||
From Johan BoulÃ:
|
From Johan Boul�:
|
||||||
|
|
||||||
- Fix the ability to use LoadableModule() under MinGW.
|
- Fix the ability to use LoadableModule() under MinGW.
|
||||||
|
|
||||||
|
@ -1063,7 +1270,7 @@ RELEASE 0.98 - Sun, 30 Mar 2008 23:33:05 -0700
|
||||||
calls by using a File's .suffix attribute directly instead of
|
calls by using a File's .suffix attribute directly instead of
|
||||||
stringifying it.
|
stringifying it.
|
||||||
|
|
||||||
From Jérôme Berger:
|
From Jérôme Berger:
|
||||||
|
|
||||||
- Have the D language scanner search for .di files as well as .d files.
|
- Have the D language scanner search for .di files as well as .d files.
|
||||||
|
|
||||||
|
@ -1677,7 +1884,7 @@ RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
|
||||||
|
|
||||||
RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600
|
RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600
|
||||||
|
|
||||||
From Anatoly:
|
From Anatoly Techtonik:
|
||||||
|
|
||||||
- Add the scons.org URL and a package description to the setup.py
|
- Add the scons.org URL and a package description to the setup.py
|
||||||
arguments.
|
arguments.
|
||||||
|
@ -2164,7 +2371,7 @@ RELEASE 0.96.92 - Mon, 10 Apr 2006 21:08:22 -0400
|
||||||
- Fix C/C++ compiler selection on AIX to not always use the external $CC
|
- Fix C/C++ compiler selection on AIX to not always use the external $CC
|
||||||
environment variable.
|
environment variable.
|
||||||
|
|
||||||
From August Hörandl:
|
From August Hörandl:
|
||||||
|
|
||||||
- Add a scanner for \include and \import files, with support for
|
- Add a scanner for \include and \import files, with support for
|
||||||
searching a directory list in $TEXINPUTS (imported from the external
|
searching a directory list in $TEXINPUTS (imported from the external
|
||||||
|
@ -5330,5 +5537,5 @@ A brief overview of important functionality available in release 0.01:
|
||||||
|
|
||||||
- Windows installer available.
|
- Windows installer available.
|
||||||
|
|
||||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
src/CHANGES.txt 5134 2010/08/16 23:02:40 bdeegan
|
src/CHANGES.txt 5357 2011/09/09 21:31:03 bdeegan
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|
|
@ -88,6 +88,7 @@ engine/SCons/Tool/dmd.py
|
||||||
engine/SCons/Tool/dvi.py
|
engine/SCons/Tool/dvi.py
|
||||||
engine/SCons/Tool/dvipdf.py
|
engine/SCons/Tool/dvipdf.py
|
||||||
engine/SCons/Tool/dvips.py
|
engine/SCons/Tool/dvips.py
|
||||||
|
engine/SCons/Tool/f03.py
|
||||||
engine/SCons/Tool/f77.py
|
engine/SCons/Tool/f77.py
|
||||||
engine/SCons/Tool/f90.py
|
engine/SCons/Tool/f90.py
|
||||||
engine/SCons/Tool/f95.py
|
engine/SCons/Tool/f95.py
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Metadata-Version: 1.0
|
Metadata-Version: 1.0
|
||||||
Name: scons
|
Name: scons
|
||||||
Version: 2.0.1
|
Version: 2.1.0
|
||||||
Summary: Open Source next-generation build tool.
|
Summary: Open Source next-generation build tool.
|
||||||
Home-page: http://www.scons.org/
|
Home-page: http://www.scons.org/
|
||||||
Author: Steven Knight
|
Author: Steven Knight
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
SCons - a software construction tool
|
SCons - a software construction tool
|
||||||
|
|
||||||
Version 2.0.1
|
Version 2.1.0
|
||||||
|
|
||||||
|
|
||||||
This is SCons, a tool for building software (and other files). SCons is
|
This is SCons, a tool for building software (and other files). SCons is
|
||||||
|
@ -56,7 +56,7 @@ provided Python-standard setup script as follows:
|
||||||
|
|
||||||
By default, the above command will do the following:
|
By default, the above command will do the following:
|
||||||
|
|
||||||
-- Install the version-numbered "scons-2.0.1" and "sconsign-2.0.1"
|
-- Install the version-numbered "scons-2.1.0" and "sconsign-2.1.0"
|
||||||
scripts in the default system script directory (/usr/bin or
|
scripts in the default system script directory (/usr/bin or
|
||||||
C:\Python*\Scripts, for example). This can be disabled by
|
C:\Python*\Scripts, for example). This can be disabled by
|
||||||
specifying the "--no-version-script" option on the command
|
specifying the "--no-version-script" option on the command
|
||||||
|
@ -70,17 +70,17 @@ By default, the above command will do the following:
|
||||||
making it the default on your system.
|
making it the default on your system.
|
||||||
|
|
||||||
On UNIX or Linux systems, you can have the "scons" and "sconsign"
|
On UNIX or Linux systems, you can have the "scons" and "sconsign"
|
||||||
scripts be hard links or symbolic links to the "scons-2.0.1" and
|
scripts be hard links or symbolic links to the "scons-2.1.0" and
|
||||||
"sconsign-2.0.1" scripts by specifying the "--hardlink-scons"
|
"sconsign-2.1.0" scripts by specifying the "--hardlink-scons"
|
||||||
or "--symlink-scons" options on the command line.
|
or "--symlink-scons" options on the command line.
|
||||||
|
|
||||||
-- Install "scons-2.0.1.bat" and "scons.bat" wrapper scripts in the
|
-- Install "scons-2.1.0.bat" and "scons.bat" wrapper scripts in the
|
||||||
Python prefix directory on Windows (C:\Python*, for example).
|
Python prefix directory on Windows (C:\Python*, for example).
|
||||||
This can be disabled by specifying the "--no-install-bat" option
|
This can be disabled by specifying the "--no-install-bat" option
|
||||||
on the command line.
|
on the command line.
|
||||||
|
|
||||||
On UNIX or Linux systems, the "--install-bat" option may be
|
On UNIX or Linux systems, the "--install-bat" option may be
|
||||||
specified to have "scons-2.0.1.bat" and "scons.bat" files
|
specified to have "scons-2.1.0.bat" and "scons.bat" files
|
||||||
installed in the default system script directory, which is useful
|
installed in the default system script directory, which is useful
|
||||||
if you want to install SCons in a shared file system directory
|
if you want to install SCons in a shared file system directory
|
||||||
that can be used to execute SCons from both UNIX/Linux and
|
that can be used to execute SCons from both UNIX/Linux and
|
||||||
|
@ -88,7 +88,7 @@ By default, the above command will do the following:
|
||||||
|
|
||||||
-- Install the SCons build engine (a Python module) in an
|
-- Install the SCons build engine (a Python module) in an
|
||||||
appropriate version-numbered SCons library directory
|
appropriate version-numbered SCons library directory
|
||||||
(/usr/lib/scons-2.0.1 or C:\Python*\scons-2.0.1, for example).
|
(/usr/lib/scons-2.1.0 or C:\Python*\scons-2.1.0, for example).
|
||||||
See below for more options related to installing the build
|
See below for more options related to installing the build
|
||||||
engine library.
|
engine library.
|
||||||
|
|
||||||
|
@ -239,5 +239,5 @@ With plenty of help from the SCons Development team:
|
||||||
Greg Spencer
|
Greg Spencer
|
||||||
Christoph Wiedemann
|
Christoph Wiedemann
|
||||||
|
|
||||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
src/README.txt 5134 2010/08/16 23:02:40 bdeegan
|
src/README.txt 5357 2011/09/09 21:31:03 bdeegan
|
||||||
|
|
|
@ -1,98 +1,100 @@
|
||||||
A new SCons release, 2.0.1, is now available
|
A new SCons checkpoint release, 2.1.0.final.0, is now available
|
||||||
on the SCons download page:
|
on the SCons download page:
|
||||||
|
|
||||||
http://www.scons.org/download.php
|
http://www.scons.org/download.php
|
||||||
|
|
||||||
The primary purpose of this release is to remove support for Python
|
Here is a summary of the changes since 2.0:
|
||||||
versions prior to 2.4 and streamline the SCons code base using more
|
|
||||||
modern python idioms.
|
|
||||||
|
|
||||||
Here is a summary of the changes since 1.3:
|
|
||||||
|
|
||||||
NEW FUNCTIONALITY
|
NEW FUNCTIONALITY
|
||||||
|
|
||||||
- There should be no new functionality or bug fixes in this checkpoint.
|
- SCons can now automatically embed manifests in Windows executables
|
||||||
|
and DLLs, by setting WINDOWS_EMBED_MANIFEST in the environment.
|
||||||
|
|
||||||
DEPRECATED FUNCTIONALITY
|
- SCons now searches for site_scons dirs in several system-wide
|
||||||
|
and per-user locations, in addition to the SConstruct top dir.
|
||||||
- All features or usages deprecated in 1.3 should have been removed.
|
This should enable much easier use of third-party (non-core)
|
||||||
Uses of formerly-deprecated features should get an error.
|
Tools.
|
||||||
|
|
||||||
- The BuildDir() method and the build_dir option now get warnings.
|
|
||||||
|
|
||||||
- The SourceCode() function and its associated factory functions have
|
|
||||||
started their deprecation cycle and can have a warning enabled.
|
|
||||||
|
|
||||||
CHANGED/ENHANCED EXISTING FUNCTIONALITY
|
CHANGED/ENHANCED EXISTING FUNCTIONALITY
|
||||||
|
|
||||||
- Any Command() or env.Command() calls that use the following Action
|
- scons --version now prints the path to the SCons package in use
|
||||||
factory functions will have their targets rebuilt when upgrading
|
|
||||||
from any pre-2.0 release:
|
|
||||||
|
|
||||||
Chmod()
|
- List modifications to existing features, where the previous behavior
|
||||||
Copy()
|
wouldn't actually be considered a bug
|
||||||
Delete()
|
|
||||||
Mkdir()
|
|
||||||
Move()
|
|
||||||
Touch()
|
|
||||||
|
|
||||||
(The rebuild occurs because the underlying Python class that
|
- Add initial support for VS/VC 2010
|
||||||
implements these functions has been changed to a new-style Python
|
|
||||||
class, and that changes the Python byte code and therefore the
|
|
||||||
build signature of the functions.)
|
|
||||||
|
|
||||||
FIXES
|
FIXES
|
||||||
|
|
||||||
- MSVC/MSVS/SDK support has been improved. A number of issues with
|
- Windows resource compiler (RC) scanner now handles DOS line endings
|
||||||
determining the correct version and architecture have been resolved.
|
- Visual Studio project generation now works when CPPPATH contains Dir nodes
|
||||||
|
- Visual Studio projects are regenerated when CPPPATH or CPPDEFINES change
|
||||||
- Fix propagation from environment of VS*COMNTOOLS to resolve issues
|
NOTE: this will cause all MSVS projects to be regenerated with this version.
|
||||||
initializing MSVC/MSVS/SDK issues.
|
- Passing MSVC_BATCH=False works now (treated same as 0)
|
||||||
|
- Long compile lines no longer break MSVC_BATCH mode
|
||||||
- Fixed a case-sensitivity problem with Fortran modules.
|
- RPATH is now in LINKCOM rather than LINKFLAGS, so resetting
|
||||||
|
LINKFLAGS doesn't kill RPATH
|
||||||
- Fix the ability to append to default $*FLAGS values (which are
|
- Precompiled headers on Windows no longer break when used with
|
||||||
implemented as CLVar instances) in a copied construction environment
|
variant dirs containing spaces.
|
||||||
without affecting the original construction environment's value.
|
- Delete can now delete symlinks to directories and broken symlinks
|
||||||
|
- CPPDEFINES containing dictionaries now work better.
|
||||||
- Updated the TeX command strings to include a /D on Windows in
|
- A problem with using implicit-cache and removing dependencies on
|
||||||
case the new directory is on a different drive letter.
|
disk is corrected.
|
||||||
|
- A problem with FS Entries which are dirs and have builders
|
||||||
- Fixed the LaTeX scanner so dependencies are found in commands that
|
is corrected.
|
||||||
are broken across lines with a comment or have embedded spaces.
|
- A problem with Install() of a dir when the dest dir exists
|
||||||
|
is corrected.
|
||||||
|
- Windows subprocess output should now be more reliable.
|
||||||
|
- The users guide and man page have various fixes.
|
||||||
|
- Appending to default $*FLAGS in a copied environment
|
||||||
|
now works properly.
|
||||||
|
- LaTeX scanner is improved for broken lines or embedded spaces.
|
||||||
|
- Windows UNC paths (\\SERVER\SHARE\dir) now work much better.
|
||||||
|
|
||||||
IMPROVEMENTS
|
IMPROVEMENTS
|
||||||
|
|
||||||
- Support for Python versions prior to 2.4 has been removed. As of
|
- ParseFlags now supports -std=c++0x and related CXXFLAGS
|
||||||
this writing, we believe that SCons will still work with Python 2.3,
|
- ParseFlags now supports -dylib_file from pkgconfig
|
||||||
but this is not guaranteed.
|
- New debugging options to print unlink/relinking of variant files
|
||||||
- Code paths that included special cases for older Python versions have
|
(--debug=duplicate) and preparation of targets (--debug=prepare).
|
||||||
been streamlined.
|
- SCons can now generate MSVS 9.0 and 10.0 Projects and Solutions.
|
||||||
- The code base has been converted to use more modern idioms. Although
|
- MSVS Solution generation is improved.
|
||||||
we don't have any direct measurements (yet), we believe that SCons
|
- Fortran 03 is supported (preliminary)
|
||||||
startup time should be decreased and the overall code should run faster.
|
- .sx files are now treated as assembly sources.
|
||||||
|
- site_scons/site_init.py is now treated as a proper module
|
||||||
PACKAGING
|
with __doc__, __file__ and __name__.
|
||||||
|
- TeX command strings now work on Windows when the new dir is
|
||||||
- No changes.
|
on a different drive letter.
|
||||||
|
- DMD version 2 is supported (using the phobos2 library)
|
||||||
|
- New --debug=prepare option shows each target as it's prepared
|
||||||
|
for building; can help when you don't know why a target isn't
|
||||||
|
being built.
|
||||||
|
|
||||||
DOCUMENTATION
|
DOCUMENTATION
|
||||||
|
|
||||||
- The entries for SourceCode() and its associated factory functions now
|
- Added new getting started section
|
||||||
state that the functions are deprecated.
|
|
||||||
|
|
||||||
- Document the AllowSubstExceptions() function in the User's Guide.
|
Thanks to
|
||||||
|
Dirk Baechle,
|
||||||
|
Vincent Beffara,
|
||||||
|
Grzegorz Bizoń,
|
||||||
|
Jean-François Colson,
|
||||||
|
Bauke Conijn,
|
||||||
|
Bill Deegan,
|
||||||
|
Ken Deeter,
|
||||||
|
Luca Falavigna,
|
||||||
|
Alexander Goomenyuk,
|
||||||
|
Justin Gullingsrud,
|
||||||
|
Steven Knight,
|
||||||
|
Arve Knudsen,
|
||||||
|
Jean-Baptiste Lab,
|
||||||
|
Rob Managan,
|
||||||
|
Gary Oberbrunner,
|
||||||
|
Evgeny Podjachev,
|
||||||
|
Sohail Somani,
|
||||||
|
Anatoly Techtonik,
|
||||||
|
Allen Weeks,
|
||||||
|
Russel Winder,
|
||||||
|
Joe Zuntz
|
||||||
|
for their contributions to this release.
|
||||||
|
|
||||||
|
|
||||||
DEVELOPMENT
|
|
||||||
|
|
||||||
- Code no longer has to be compatible with Python versions back to 1.5.2.
|
|
||||||
Although code is tested with Python 2.3 and is still believed to work,
|
|
||||||
the official new floor is Python 2.4.
|
|
||||||
|
|
||||||
Thanks to Greg Noel, Steven Knight, Dirk Baechle, William Deegan,
|
|
||||||
W. Trevor King, Joe Zuntz, Bauke Conijn, Matt Hughes, Rob Managan,
|
|
||||||
and Jim Randall for their contributions to this release.
|
|
||||||
|
|
||||||
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
|
||||||
src/RELEASE.txt 5023 2010/06/14 22:05:46 scons
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ way for wrapping up the functions.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Action.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Action.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.compat
|
import SCons.compat
|
||||||
|
|
||||||
|
@ -300,8 +300,10 @@ def _actionAppend(act1, act2):
|
||||||
# a single ListAction.
|
# a single ListAction.
|
||||||
a1 = Action(act1)
|
a1 = Action(act1)
|
||||||
a2 = Action(act2)
|
a2 = Action(act2)
|
||||||
if a1 is None or a2 is None:
|
if a1 is None:
|
||||||
raise TypeError("Cannot append %s to %s" % (type(act1), type(act2)))
|
return a2
|
||||||
|
if a2 is None:
|
||||||
|
return a1
|
||||||
if isinstance(a1, ListAction):
|
if isinstance(a1, ListAction):
|
||||||
if isinstance(a2, ListAction):
|
if isinstance(a2, ListAction):
|
||||||
return ListAction(a1.list + a2.list)
|
return ListAction(a1.list + a2.list)
|
||||||
|
@ -385,6 +387,10 @@ def _do_create_action(act, kw):
|
||||||
# The list of string commands may include a LazyAction, so we
|
# The list of string commands may include a LazyAction, so we
|
||||||
# reprocess them via _do_create_list_action.
|
# reprocess them via _do_create_list_action.
|
||||||
return _do_create_list_action(commands, kw)
|
return _do_create_list_action(commands, kw)
|
||||||
|
# Catch a common error case with a nice message:
|
||||||
|
if isinstance(act, int) or isinstance(act, float):
|
||||||
|
raise TypeError("Don't know how to create an Action from a number (%s)"%act)
|
||||||
|
# Else fail silently (???)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def _do_create_list_action(act, kw):
|
def _do_create_list_action(act, kw):
|
||||||
|
@ -497,7 +503,18 @@ class _ActionAction(ActionBase):
|
||||||
SCons.Util.AddMethod(self, batch_key, 'batch_key')
|
SCons.Util.AddMethod(self, batch_key, 'batch_key')
|
||||||
|
|
||||||
def print_cmd_line(self, s, target, source, env):
|
def print_cmd_line(self, s, target, source, env):
|
||||||
sys.stdout.write(s + u"\n")
|
# In python 3, and in some of our tests, sys.stdout is
|
||||||
|
# a String io object, and it takes unicode strings only
|
||||||
|
# In other cases it's a regular Python 2.x file object
|
||||||
|
# which takes strings (bytes), and if you pass those a
|
||||||
|
# unicode object they try to decode with 'ascii' codec
|
||||||
|
# which fails if the cmd line has any hi-bit-set chars.
|
||||||
|
# This code assumes s is a regular string, but should
|
||||||
|
# work if it's unicode too.
|
||||||
|
try:
|
||||||
|
sys.stdout.write(unicode(s + "\n"))
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
sys.stdout.write(s + "\n")
|
||||||
|
|
||||||
def __call__(self, target, source, env,
|
def __call__(self, target, source, env,
|
||||||
exitstatfunc=_null,
|
exitstatfunc=_null,
|
||||||
|
@ -654,7 +671,6 @@ def _subproc(scons_env, cmd, error = 'ignore', **kw):
|
||||||
kw['env'] = new_env
|
kw['env'] = new_env
|
||||||
|
|
||||||
try:
|
try:
|
||||||
#FUTURE return subprocess.Popen(cmd, **kw)
|
|
||||||
return subprocess.Popen(cmd, **kw)
|
return subprocess.Popen(cmd, **kw)
|
||||||
except EnvironmentError, e:
|
except EnvironmentError, e:
|
||||||
if error == 'raise': raise
|
if error == 'raise': raise
|
||||||
|
|
|
@ -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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Builder.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Builder.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/CacheDir.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/CacheDir.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """
|
__doc__ = """
|
||||||
CacheDir support
|
CacheDir support
|
||||||
|
|
|
@ -6,7 +6,7 @@ needed by most users.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Debug.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Debug.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
|
@ -10,7 +10,7 @@ from distutils.msvccompiler.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
@ -33,7 +33,7 @@ from distutils.msvccompiler.
|
||||||
#
|
#
|
||||||
from __future__ import division
|
from __future__ import division
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Defaults.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Defaults.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
@ -199,14 +199,15 @@ def delete_func(dest, must_exist=0):
|
||||||
dest = [dest]
|
dest = [dest]
|
||||||
for entry in dest:
|
for entry in dest:
|
||||||
entry = str(entry)
|
entry = str(entry)
|
||||||
if not must_exist and not os.path.exists(entry):
|
# os.path.exists returns False with broken links that exist
|
||||||
|
entry_exists = os.path.exists(entry) or os.path.islink(entry)
|
||||||
|
if not entry_exists and not must_exist:
|
||||||
continue
|
continue
|
||||||
if not os.path.exists(entry) or os.path.isfile(entry):
|
# os.path.isdir returns True when entry is a link to a dir
|
||||||
os.unlink(entry)
|
if os.path.isdir(entry) and not os.path.islink(entry):
|
||||||
continue
|
|
||||||
else:
|
|
||||||
shutil.rmtree(entry, 1)
|
shutil.rmtree(entry, 1)
|
||||||
continue
|
continue
|
||||||
|
os.unlink(entry)
|
||||||
|
|
||||||
def delete_strfunc(dest, must_exist=0):
|
def delete_strfunc(dest, must_exist=0):
|
||||||
return 'Delete(%s)' % get_paths_str(dest)
|
return 'Delete(%s)' % get_paths_str(dest)
|
||||||
|
@ -372,10 +373,23 @@ def processDefines(defs):
|
||||||
if SCons.Util.is_List(defs):
|
if SCons.Util.is_List(defs):
|
||||||
l = []
|
l = []
|
||||||
for d in defs:
|
for d in defs:
|
||||||
if SCons.Util.is_List(d) or isinstance(d, tuple):
|
if d is None:
|
||||||
l.append(str(d[0]) + '=' + str(d[1]))
|
continue
|
||||||
else:
|
elif SCons.Util.is_List(d) or isinstance(d, tuple):
|
||||||
|
if len(d) >= 2:
|
||||||
|
l.append(str(d[0]) + '=' + str(d[1]))
|
||||||
|
else:
|
||||||
|
l.append(str(d[0]))
|
||||||
|
elif SCons.Util.is_Dict(d):
|
||||||
|
for macro,value in d.iteritems():
|
||||||
|
if value is not None:
|
||||||
|
l.append(str(macro) + '=' + str(value))
|
||||||
|
else:
|
||||||
|
l.append(str(macro))
|
||||||
|
elif SCons.Util.is_String(d):
|
||||||
l.append(str(d))
|
l.append(str(d))
|
||||||
|
else:
|
||||||
|
raise SCons.Errors.UserError("DEFINE %s is not a list, dict, string or None."%repr(d))
|
||||||
elif SCons.Util.is_Dict(defs):
|
elif SCons.Util.is_Dict(defs):
|
||||||
# The items in a dictionary are stored in random order, but
|
# The items in a dictionary are stored in random order, but
|
||||||
# if the order of the command-line options changes from
|
# if the order of the command-line options changes from
|
||||||
|
|
|
@ -10,7 +10,7 @@ Environment
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Environment.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Environment.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
|
@ -649,6 +649,7 @@ class SubstitutionEnvironment(object):
|
||||||
'ASFLAGS' : SCons.Util.CLVar(''),
|
'ASFLAGS' : SCons.Util.CLVar(''),
|
||||||
'CFLAGS' : SCons.Util.CLVar(''),
|
'CFLAGS' : SCons.Util.CLVar(''),
|
||||||
'CCFLAGS' : SCons.Util.CLVar(''),
|
'CCFLAGS' : SCons.Util.CLVar(''),
|
||||||
|
'CXXFLAGS' : SCons.Util.CLVar(''),
|
||||||
'CPPDEFINES' : [],
|
'CPPDEFINES' : [],
|
||||||
'CPPFLAGS' : SCons.Util.CLVar(''),
|
'CPPFLAGS' : SCons.Util.CLVar(''),
|
||||||
'CPPPATH' : [],
|
'CPPPATH' : [],
|
||||||
|
@ -723,6 +724,9 @@ class SubstitutionEnvironment(object):
|
||||||
append_next_arg_to = None
|
append_next_arg_to = None
|
||||||
elif not arg[0] in ['-', '+']:
|
elif not arg[0] in ['-', '+']:
|
||||||
dict['LIBS'].append(self.fs.File(arg))
|
dict['LIBS'].append(self.fs.File(arg))
|
||||||
|
elif arg == '-dylib_file':
|
||||||
|
dict['LINKFLAGS'].append(arg)
|
||||||
|
append_next_arg_to = 'LINKFLAGS'
|
||||||
elif arg[:2] == '-L':
|
elif arg[:2] == '-L':
|
||||||
if arg[2:]:
|
if arg[2:]:
|
||||||
dict['LIBPATH'].append(arg[2:])
|
dict['LIBPATH'].append(arg[2:])
|
||||||
|
@ -766,16 +770,20 @@ class SubstitutionEnvironment(object):
|
||||||
dict['FRAMEWORKPATH'].append(arg[2:])
|
dict['FRAMEWORKPATH'].append(arg[2:])
|
||||||
else:
|
else:
|
||||||
append_next_arg_to = 'FRAMEWORKPATH'
|
append_next_arg_to = 'FRAMEWORKPATH'
|
||||||
elif arg == '-mno-cygwin':
|
elif arg in ['-mno-cygwin',
|
||||||
|
'-pthread',
|
||||||
|
'-openmp',
|
||||||
|
'-fopenmp']:
|
||||||
dict['CCFLAGS'].append(arg)
|
dict['CCFLAGS'].append(arg)
|
||||||
dict['LINKFLAGS'].append(arg)
|
dict['LINKFLAGS'].append(arg)
|
||||||
elif arg == '-mwindows':
|
elif arg == '-mwindows':
|
||||||
dict['LINKFLAGS'].append(arg)
|
dict['LINKFLAGS'].append(arg)
|
||||||
elif arg == '-pthread':
|
|
||||||
dict['CCFLAGS'].append(arg)
|
|
||||||
dict['LINKFLAGS'].append(arg)
|
|
||||||
elif arg[:5] == '-std=':
|
elif arg[:5] == '-std=':
|
||||||
dict['CFLAGS'].append(arg) # C only
|
if arg[5:].find('++')!=-1:
|
||||||
|
key='CXXFLAGS'
|
||||||
|
else:
|
||||||
|
key='CFLAGS'
|
||||||
|
dict[key].append(arg)
|
||||||
elif arg[0] == '+':
|
elif arg[0] == '+':
|
||||||
dict['CCFLAGS'].append(arg)
|
dict['CCFLAGS'].append(arg)
|
||||||
dict['LINKFLAGS'].append(arg)
|
dict['LINKFLAGS'].append(arg)
|
||||||
|
@ -1147,11 +1155,16 @@ class Base(SubstitutionEnvironment):
|
||||||
# but Python 1.5.2 apparently doesn't let you use "continue"
|
# but Python 1.5.2 apparently doesn't let you use "continue"
|
||||||
# within try:-except: blocks, so we have to nest our code.
|
# within try:-except: blocks, so we have to nest our code.
|
||||||
try:
|
try:
|
||||||
|
if key == 'CPPDEFINES' and SCons.Util.is_String(self._dict[key]):
|
||||||
|
self._dict[key] = [self._dict[key]]
|
||||||
orig = self._dict[key]
|
orig = self._dict[key]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# No existing variable in the environment, so just set
|
# No existing variable in the environment, so just set
|
||||||
# it to the new value.
|
# it to the new value.
|
||||||
self._dict[key] = val
|
if key == 'CPPDEFINES' and SCons.Util.is_String(val):
|
||||||
|
self._dict[key] = [val]
|
||||||
|
else:
|
||||||
|
self._dict[key] = val
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
# Check if the original looks like a dictionary.
|
# Check if the original looks like a dictionary.
|
||||||
|
@ -1188,8 +1201,13 @@ class Base(SubstitutionEnvironment):
|
||||||
# The original looks like a dictionary, so update it
|
# The original looks like a dictionary, so update it
|
||||||
# based on what we think the value looks like.
|
# based on what we think the value looks like.
|
||||||
if SCons.Util.is_List(val):
|
if SCons.Util.is_List(val):
|
||||||
for v in val:
|
if key == 'CPPDEFINES':
|
||||||
orig[v] = None
|
orig = orig.items()
|
||||||
|
orig += val
|
||||||
|
self._dict[key] = orig
|
||||||
|
else:
|
||||||
|
for v in val:
|
||||||
|
orig[v] = None
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
update_dict(val)
|
update_dict(val)
|
||||||
|
@ -1251,8 +1269,39 @@ class Base(SubstitutionEnvironment):
|
||||||
self._dict[key].update(val)
|
self._dict[key].update(val)
|
||||||
elif SCons.Util.is_List(val):
|
elif SCons.Util.is_List(val):
|
||||||
dk = self._dict[key]
|
dk = self._dict[key]
|
||||||
if not SCons.Util.is_List(dk):
|
if key == 'CPPDEFINES':
|
||||||
dk = [dk]
|
tmp = []
|
||||||
|
for i in val:
|
||||||
|
if SCons.Util.is_List(i):
|
||||||
|
if len(i) >= 2:
|
||||||
|
tmp.append((i[0], i[1]))
|
||||||
|
else:
|
||||||
|
tmp.append((i[0],))
|
||||||
|
elif SCons.Util.is_Tuple(i):
|
||||||
|
tmp.append(i)
|
||||||
|
else:
|
||||||
|
tmp.append((i,))
|
||||||
|
val = tmp
|
||||||
|
if SCons.Util.is_Dict(dk):
|
||||||
|
dk = dk.items()
|
||||||
|
elif SCons.Util.is_String(dk):
|
||||||
|
dk = [(dk,)]
|
||||||
|
else:
|
||||||
|
tmp = []
|
||||||
|
for i in dk:
|
||||||
|
if SCons.Util.is_List(i):
|
||||||
|
if len(i) >= 2:
|
||||||
|
tmp.append((i[0], i[1]))
|
||||||
|
else:
|
||||||
|
tmp.append((i[0],))
|
||||||
|
elif SCons.Util.is_Tuple(i):
|
||||||
|
tmp.append(i)
|
||||||
|
else:
|
||||||
|
tmp.append((i,))
|
||||||
|
dk = tmp
|
||||||
|
else:
|
||||||
|
if not SCons.Util.is_List(dk):
|
||||||
|
dk = [dk]
|
||||||
if delete_existing:
|
if delete_existing:
|
||||||
dk = [x for x in dk if x not in val]
|
dk = [x for x in dk if x not in val]
|
||||||
else:
|
else:
|
||||||
|
@ -1261,15 +1310,57 @@ class Base(SubstitutionEnvironment):
|
||||||
else:
|
else:
|
||||||
dk = self._dict[key]
|
dk = self._dict[key]
|
||||||
if SCons.Util.is_List(dk):
|
if SCons.Util.is_List(dk):
|
||||||
# By elimination, val is not a list. Since dk is a
|
if key == 'CPPDEFINES':
|
||||||
# list, wrap val in a list first.
|
tmp = []
|
||||||
if delete_existing:
|
for i in dk:
|
||||||
dk = [x for x in dk if x not in val]
|
if SCons.Util.is_List(i):
|
||||||
self._dict[key] = dk + [val]
|
if len(i) >= 2:
|
||||||
|
tmp.append((i[0], i[1]))
|
||||||
|
else:
|
||||||
|
tmp.append((i[0],))
|
||||||
|
elif SCons.Util.is_Tuple(i):
|
||||||
|
tmp.append(i)
|
||||||
|
else:
|
||||||
|
tmp.append((i,))
|
||||||
|
dk = tmp
|
||||||
|
if SCons.Util.is_Dict(val):
|
||||||
|
val = val.items()
|
||||||
|
elif SCons.Util.is_String(val):
|
||||||
|
val = [(val,)]
|
||||||
|
if delete_existing:
|
||||||
|
dk = filter(lambda x, val=val: x not in val, dk)
|
||||||
|
self._dict[key] = dk + val
|
||||||
|
else:
|
||||||
|
dk = [x for x in dk if x not in val]
|
||||||
|
self._dict[key] = dk + val
|
||||||
else:
|
else:
|
||||||
if not val in dk:
|
# By elimination, val is not a list. Since dk is a
|
||||||
|
# list, wrap val in a list first.
|
||||||
|
if delete_existing:
|
||||||
|
dk = filter(lambda x, val=val: x not in val, dk)
|
||||||
self._dict[key] = dk + [val]
|
self._dict[key] = dk + [val]
|
||||||
|
else:
|
||||||
|
if not val in dk:
|
||||||
|
self._dict[key] = dk + [val]
|
||||||
else:
|
else:
|
||||||
|
if key == 'CPPDEFINES':
|
||||||
|
if SCons.Util.is_String(dk):
|
||||||
|
dk = [dk]
|
||||||
|
elif SCons.Util.is_Dict(dk):
|
||||||
|
dk = dk.items()
|
||||||
|
if SCons.Util.is_String(val):
|
||||||
|
if val in dk:
|
||||||
|
val = []
|
||||||
|
else:
|
||||||
|
val = [val]
|
||||||
|
elif SCons.Util.is_Dict(val):
|
||||||
|
tmp = []
|
||||||
|
for i,j in val.iteritems():
|
||||||
|
if j is not None:
|
||||||
|
tmp.append((i,j))
|
||||||
|
else:
|
||||||
|
tmp.append(i)
|
||||||
|
val = tmp
|
||||||
if delete_existing:
|
if delete_existing:
|
||||||
dk = [x for x in dk if x not in val]
|
dk = [x for x in dk if x not in val]
|
||||||
self._dict[key] = dk + val
|
self._dict[key] = dk + val
|
||||||
|
@ -2285,6 +2376,12 @@ def NoSubstitutionProxy(subject):
|
||||||
return getattr(self.__dict__['__subject'], name)
|
return getattr(self.__dict__['__subject'], name)
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
return setattr(self.__dict__['__subject'], name, value)
|
return setattr(self.__dict__['__subject'], name, value)
|
||||||
|
def executor_to_lvars(self, kwdict):
|
||||||
|
if kwdict.has_key('executor'):
|
||||||
|
kwdict['lvars'] = kwdict['executor'].get_lvars()
|
||||||
|
del kwdict['executor']
|
||||||
|
else:
|
||||||
|
kwdict['lvars'] = {}
|
||||||
def raw_to_mode(self, dict):
|
def raw_to_mode(self, dict):
|
||||||
try:
|
try:
|
||||||
raw = dict['raw']
|
raw = dict['raw']
|
||||||
|
@ -2301,12 +2398,14 @@ def NoSubstitutionProxy(subject):
|
||||||
nargs = (string, self,) + args
|
nargs = (string, self,) + args
|
||||||
nkw = kwargs.copy()
|
nkw = kwargs.copy()
|
||||||
nkw['gvars'] = {}
|
nkw['gvars'] = {}
|
||||||
|
self.executor_to_lvars(nkw)
|
||||||
self.raw_to_mode(nkw)
|
self.raw_to_mode(nkw)
|
||||||
return SCons.Subst.scons_subst_list(*nargs, **nkw)
|
return SCons.Subst.scons_subst_list(*nargs, **nkw)
|
||||||
def subst_target_source(self, string, *args, **kwargs):
|
def subst_target_source(self, string, *args, **kwargs):
|
||||||
nargs = (string, self,) + args
|
nargs = (string, self,) + args
|
||||||
nkw = kwargs.copy()
|
nkw = kwargs.copy()
|
||||||
nkw['gvars'] = {}
|
nkw['gvars'] = {}
|
||||||
|
self.executor_to_lvars(nkw)
|
||||||
self.raw_to_mode(nkw)
|
self.raw_to_mode(nkw)
|
||||||
return SCons.Subst.scons_subst(*nargs, **nkw)
|
return SCons.Subst.scons_subst(*nargs, **nkw)
|
||||||
return _NoSubstitutionProxy(subject)
|
return _NoSubstitutionProxy(subject)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Errors.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Util
|
import SCons.Util
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ Nodes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Executor.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Executor.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ stop, and wait on jobs.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Job.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Job.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.compat
|
import SCons.compat
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Memoize.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Memoize.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Memoizer
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Node/Alias.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Node/Alias.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import collections
|
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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Node/FS.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Node/FS.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import fnmatch
|
import fnmatch
|
||||||
import os
|
import os
|
||||||
|
@ -56,6 +56,7 @@ import SCons.Warnings
|
||||||
from SCons.Debug import Trace
|
from SCons.Debug import Trace
|
||||||
|
|
||||||
do_store_info = True
|
do_store_info = True
|
||||||
|
print_duplicate = 0
|
||||||
|
|
||||||
|
|
||||||
class EntryProxyAttributeError(AttributeError):
|
class EntryProxyAttributeError(AttributeError):
|
||||||
|
@ -110,33 +111,85 @@ def save_strings(val):
|
||||||
#
|
#
|
||||||
|
|
||||||
do_splitdrive = None
|
do_splitdrive = None
|
||||||
|
_my_splitdrive =None
|
||||||
|
|
||||||
def initialize_do_splitdrive():
|
def initialize_do_splitdrive():
|
||||||
global do_splitdrive
|
global do_splitdrive
|
||||||
|
global has_unc
|
||||||
drive, path = os.path.splitdrive('X:/foo')
|
drive, path = os.path.splitdrive('X:/foo')
|
||||||
do_splitdrive = not not drive
|
has_unc = hasattr(os.path, 'splitunc')
|
||||||
|
|
||||||
|
do_splitdrive = not not drive or has_unc
|
||||||
|
|
||||||
|
global _my_splitdrive
|
||||||
|
if has_unc:
|
||||||
|
def splitdrive(p):
|
||||||
|
if p[1:2] == ':':
|
||||||
|
return p[:2], p[2:]
|
||||||
|
if p[0:2] == '//':
|
||||||
|
# Note that we leave a leading slash in the path
|
||||||
|
# because UNC paths are always absolute.
|
||||||
|
return '//', p[1:]
|
||||||
|
return '', p
|
||||||
|
else:
|
||||||
|
def splitdrive(p):
|
||||||
|
if p[1:2] == ':':
|
||||||
|
return p[:2], p[2:]
|
||||||
|
return '', p
|
||||||
|
_my_splitdrive = splitdrive
|
||||||
|
|
||||||
|
# Keep some commonly used values in global variables to skip to
|
||||||
|
# module look-up costs.
|
||||||
|
global OS_SEP
|
||||||
|
global UNC_PREFIX
|
||||||
|
global os_sep_is_slash
|
||||||
|
|
||||||
|
OS_SEP = os.sep
|
||||||
|
UNC_PREFIX = OS_SEP + OS_SEP
|
||||||
|
os_sep_is_slash = OS_SEP == '/'
|
||||||
|
|
||||||
initialize_do_splitdrive()
|
initialize_do_splitdrive()
|
||||||
|
|
||||||
#
|
# Used to avoid invoking os.path.normpath if not necessary.
|
||||||
|
needs_normpath_check = re.compile(
|
||||||
|
r'''
|
||||||
|
# We need to renormalize the path if it contains any consecutive
|
||||||
|
# '/' characters.
|
||||||
|
.*// |
|
||||||
|
|
||||||
needs_normpath_check = None
|
# We need to renormalize the path if it contains a '..' directory.
|
||||||
|
# Note that we check for all the following cases:
|
||||||
|
#
|
||||||
|
# a) The path is a single '..'
|
||||||
|
# b) The path starts with '..'. E.g. '../' or '../moredirs'
|
||||||
|
# but we not match '..abc/'.
|
||||||
|
# c) The path ends with '..'. E.g. '/..' or 'dirs/..'
|
||||||
|
# d) The path contains a '..' in the middle.
|
||||||
|
# E.g. dirs/../moredirs
|
||||||
|
|
||||||
def initialize_normpath_check():
|
(.*/)?\.\.(?:/|$) |
|
||||||
"""
|
|
||||||
Initialize the normpath_check regular expression.
|
|
||||||
|
|
||||||
This function is used by the unit tests to re-initialize the pattern
|
# We need to renormalize the path if it contains a '.'
|
||||||
when testing for behavior with different values of os.sep.
|
# directory, but NOT if it is a single '.' '/' characters. We
|
||||||
"""
|
# do not want to match a single '.' because this case is checked
|
||||||
global needs_normpath_check
|
# for explicitely since this is common enough case.
|
||||||
if os.sep == '/':
|
#
|
||||||
pattern = r'.*/|\.$|\.\.$'
|
# Note that we check for all the following cases:
|
||||||
else:
|
#
|
||||||
pattern = r'.*[/%s]|\.$|\.\.$' % re.escape(os.sep)
|
# a) We don't match a single '.'
|
||||||
needs_normpath_check = re.compile(pattern)
|
# b) We match if the path starts with '.'. E.g. './' or
|
||||||
|
# './moredirs' but we not match '.abc/'.
|
||||||
|
# c) We match if the path ends with '.'. E.g. '/.' or
|
||||||
|
# 'dirs/.'
|
||||||
|
# d) We match if the path contains a '.' in the middle.
|
||||||
|
# E.g. dirs/./moredirs
|
||||||
|
|
||||||
initialize_normpath_check()
|
\./|.*/\.(?:/|$)
|
||||||
|
|
||||||
|
''',
|
||||||
|
re.VERBOSE
|
||||||
|
)
|
||||||
|
needs_normpath_match = needs_normpath_check.match
|
||||||
|
|
||||||
#
|
#
|
||||||
# SCons.Action objects for interacting with the outside world.
|
# SCons.Action objects for interacting with the outside world.
|
||||||
|
@ -438,21 +491,21 @@ class EntryProxy(SCons.Util.Proxy):
|
||||||
def __get_posix_path(self):
|
def __get_posix_path(self):
|
||||||
"""Return the path with / as the path separator,
|
"""Return the path with / as the path separator,
|
||||||
regardless of platform."""
|
regardless of platform."""
|
||||||
if os.sep == '/':
|
if os_sep_is_slash:
|
||||||
return self
|
return self
|
||||||
else:
|
else:
|
||||||
entry = self.get()
|
entry = self.get()
|
||||||
r = entry.get_path().replace(os.sep, '/')
|
r = entry.get_path().replace(OS_SEP, '/')
|
||||||
return SCons.Subst.SpecialAttrWrapper(r, entry.name + "_posix")
|
return SCons.Subst.SpecialAttrWrapper(r, entry.name + "_posix")
|
||||||
|
|
||||||
def __get_windows_path(self):
|
def __get_windows_path(self):
|
||||||
"""Return the path with \ as the path separator,
|
"""Return the path with \ as the path separator,
|
||||||
regardless of platform."""
|
regardless of platform."""
|
||||||
if os.sep == '\\':
|
if OS_SEP == '\\':
|
||||||
return self
|
return self
|
||||||
else:
|
else:
|
||||||
entry = self.get()
|
entry = self.get()
|
||||||
r = entry.get_path().replace(os.sep, '\\')
|
r = entry.get_path().replace(OS_SEP, '\\')
|
||||||
return SCons.Subst.SpecialAttrWrapper(r, entry.name + "_windows")
|
return SCons.Subst.SpecialAttrWrapper(r, entry.name + "_windows")
|
||||||
|
|
||||||
def __get_srcnode(self):
|
def __get_srcnode(self):
|
||||||
|
@ -533,9 +586,13 @@ class Base(SCons.Node.Node):
|
||||||
|
|
||||||
# Filenames and paths are probably reused and are intern'ed to
|
# Filenames and paths are probably reused and are intern'ed to
|
||||||
# save some memory.
|
# save some memory.
|
||||||
|
|
||||||
|
#: Filename with extension as it was specified when the object was
|
||||||
|
#: created; to obtain filesystem path, use Python str() function
|
||||||
self.name = SCons.Util.silent_intern(name)
|
self.name = SCons.Util.silent_intern(name)
|
||||||
|
#: Cached filename extension
|
||||||
self.suffix = SCons.Util.silent_intern(SCons.Util.splitext(name)[1])
|
self.suffix = SCons.Util.silent_intern(SCons.Util.splitext(name)[1])
|
||||||
self.fs = fs
|
self.fs = fs #: Reference to parent Node.FS object
|
||||||
|
|
||||||
assert directory, "A directory must be provided"
|
assert directory, "A directory must be provided"
|
||||||
|
|
||||||
|
@ -606,7 +663,7 @@ class Base(SCons.Node.Node):
|
||||||
else:
|
else:
|
||||||
result = srcnode.get_path()
|
result = srcnode.get_path()
|
||||||
if not Save_Strings:
|
if not Save_Strings:
|
||||||
# We're not at the point where we're saving the string string
|
# We're not at the point where we're saving the string
|
||||||
# representations of FS Nodes (because we haven't finished
|
# representations of FS Nodes (because we haven't finished
|
||||||
# reading the SConscript files and need to have str() return
|
# reading the SConscript files and need to have str() return
|
||||||
# things relative to them). That also means we can't yet
|
# things relative to them). That also means we can't yet
|
||||||
|
@ -695,11 +752,15 @@ class Base(SCons.Node.Node):
|
||||||
if self == dir:
|
if self == dir:
|
||||||
return '.'
|
return '.'
|
||||||
path_elems = self.path_elements
|
path_elems = self.path_elements
|
||||||
|
pathname = ''
|
||||||
try: i = path_elems.index(dir)
|
try: i = path_elems.index(dir)
|
||||||
except ValueError: pass
|
except ValueError:
|
||||||
else: path_elems = path_elems[i+1:]
|
for p in path_elems[:-1]:
|
||||||
path_elems = [n.name for n in path_elems]
|
pathname += p.dirname
|
||||||
return os.sep.join(path_elems)
|
else:
|
||||||
|
for p in path_elems[i+1:-1]:
|
||||||
|
pathname += p.dirname
|
||||||
|
return pathname + path_elems[-1].name
|
||||||
|
|
||||||
def set_src_builder(self, builder):
|
def set_src_builder(self, builder):
|
||||||
"""Set the source code builder for this node."""
|
"""Set the source code builder for this node."""
|
||||||
|
@ -1063,7 +1124,7 @@ class FS(LocalFS):
|
||||||
self.pathTop = os.getcwd()
|
self.pathTop = os.getcwd()
|
||||||
else:
|
else:
|
||||||
self.pathTop = path
|
self.pathTop = path
|
||||||
self.defaultDrive = _my_normcase(os.path.splitdrive(self.pathTop)[0])
|
self.defaultDrive = _my_normcase(_my_splitdrive(self.pathTop)[0])
|
||||||
|
|
||||||
self.Top = self.Dir(self.pathTop)
|
self.Top = self.Dir(self.pathTop)
|
||||||
self.Top.path = '.'
|
self.Top.path = '.'
|
||||||
|
@ -1083,7 +1144,10 @@ class FS(LocalFS):
|
||||||
self.max_drift = max_drift
|
self.max_drift = max_drift
|
||||||
|
|
||||||
def getcwd(self):
|
def getcwd(self):
|
||||||
return self._cwd
|
if hasattr(self, "_cwd"):
|
||||||
|
return self._cwd
|
||||||
|
else:
|
||||||
|
return "<no cwd>"
|
||||||
|
|
||||||
def chdir(self, dir, change_os_dir=0):
|
def chdir(self, dir, change_os_dir=0):
|
||||||
"""Change the current working directory for lookups.
|
"""Change the current working directory for lookups.
|
||||||
|
@ -1147,54 +1211,110 @@ class FS(LocalFS):
|
||||||
# str(p) in case it's something like a proxy object
|
# str(p) in case it's something like a proxy object
|
||||||
p = str(p)
|
p = str(p)
|
||||||
|
|
||||||
initial_hash = (p[0:1] == '#')
|
if not os_sep_is_slash:
|
||||||
if initial_hash:
|
p = p.replace(OS_SEP, '/')
|
||||||
|
|
||||||
|
if p[0:1] == '#':
|
||||||
# There was an initial '#', so we strip it and override
|
# There was an initial '#', so we strip it and override
|
||||||
# whatever directory they may have specified with the
|
# whatever directory they may have specified with the
|
||||||
# top-level SConstruct directory.
|
# top-level SConstruct directory.
|
||||||
p = p[1:]
|
p = p[1:]
|
||||||
directory = self.Top
|
directory = self.Top
|
||||||
|
|
||||||
if directory and not isinstance(directory, Dir):
|
# There might be a drive letter following the
|
||||||
directory = self.Dir(directory)
|
# '#'. Although it is not described in the SCons man page,
|
||||||
|
# the regression test suite explicitly tests for that
|
||||||
if do_splitdrive:
|
# syntax. It seems to mean the following thing:
|
||||||
drive, p = os.path.splitdrive(p)
|
#
|
||||||
else:
|
# Assuming the the SCons top dir is in C:/xxx/yyy,
|
||||||
drive = ''
|
# '#X:/toto' means X:/xxx/yyy/toto.
|
||||||
if drive and not p:
|
#
|
||||||
# This causes a naked drive letter to be treated as a synonym
|
# i.e. it assumes that the X: drive has a directory
|
||||||
# for the root directory on that drive.
|
# structure similar to the one found on drive C:.
|
||||||
p = os.sep
|
if do_splitdrive:
|
||||||
absolute = os.path.isabs(p)
|
drive, p = _my_splitdrive(p)
|
||||||
|
if drive:
|
||||||
needs_normpath = needs_normpath_check.match(p)
|
root = self.get_root(drive)
|
||||||
|
else:
|
||||||
if initial_hash or not absolute:
|
root = directory.root
|
||||||
# This is a relative lookup, either to the top-level
|
|
||||||
# SConstruct directory (because of the initial '#') or to
|
|
||||||
# the current directory (the path name is not absolute).
|
|
||||||
# Add the string to the appropriate directory lookup path,
|
|
||||||
# after which the whole thing gets normalized.
|
|
||||||
if not directory:
|
|
||||||
directory = self._cwd
|
|
||||||
if p:
|
|
||||||
p = directory.labspath + '/' + p
|
|
||||||
else:
|
else:
|
||||||
|
root = directory.root
|
||||||
|
|
||||||
|
# We can only strip trailing after splitting the drive
|
||||||
|
# since the drive might the UNC '//' prefix.
|
||||||
|
p = p.strip('/')
|
||||||
|
|
||||||
|
needs_normpath = needs_normpath_match(p)
|
||||||
|
|
||||||
|
# The path is relative to the top-level SCons directory.
|
||||||
|
if p in ('', '.'):
|
||||||
p = directory.labspath
|
p = directory.labspath
|
||||||
|
else:
|
||||||
if needs_normpath:
|
p = directory.labspath + '/' + p
|
||||||
p = os.path.normpath(p)
|
|
||||||
|
|
||||||
if drive or absolute:
|
|
||||||
root = self.get_root(drive)
|
|
||||||
else:
|
else:
|
||||||
if not directory:
|
if do_splitdrive:
|
||||||
directory = self._cwd
|
drive, p = _my_splitdrive(p)
|
||||||
root = directory.root
|
if drive and not p:
|
||||||
|
# This causes a naked drive letter to be treated
|
||||||
|
# as a synonym for the root directory on that
|
||||||
|
# drive.
|
||||||
|
p = '/'
|
||||||
|
else:
|
||||||
|
drive = ''
|
||||||
|
|
||||||
|
# We can only strip trailing '/' since the drive might the
|
||||||
|
# UNC '//' prefix.
|
||||||
|
if p != '/':
|
||||||
|
p = p.rstrip('/')
|
||||||
|
|
||||||
|
needs_normpath = needs_normpath_match(p)
|
||||||
|
|
||||||
|
if p[0:1] == '/':
|
||||||
|
# Absolute path
|
||||||
|
root = self.get_root(drive)
|
||||||
|
else:
|
||||||
|
# This is a relative lookup or to the current directory
|
||||||
|
# (the path name is not absolute). Add the string to the
|
||||||
|
# appropriate directory lookup path, after which the whole
|
||||||
|
# thing gets normalized.
|
||||||
|
if directory:
|
||||||
|
if not isinstance(directory, Dir):
|
||||||
|
directory = self.Dir(directory)
|
||||||
|
else:
|
||||||
|
directory = self._cwd
|
||||||
|
|
||||||
|
if p in ('', '.'):
|
||||||
|
p = directory.labspath
|
||||||
|
else:
|
||||||
|
p = directory.labspath + '/' + p
|
||||||
|
|
||||||
|
if drive:
|
||||||
|
root = self.get_root(drive)
|
||||||
|
else:
|
||||||
|
root = directory.root
|
||||||
|
|
||||||
|
if needs_normpath is not None:
|
||||||
|
# Normalize a pathname. Will return the same result for
|
||||||
|
# equivalent paths.
|
||||||
|
#
|
||||||
|
# We take advantage of the fact that we have an absolute
|
||||||
|
# path here for sure. In addition, we know that the
|
||||||
|
# components of lookup path are separated by slashes at
|
||||||
|
# this point. Because of this, this code is about 2X
|
||||||
|
# faster than calling os.path.normpath() followed by
|
||||||
|
# replacing os.sep with '/' again.
|
||||||
|
ins = p.split('/')[1:]
|
||||||
|
outs = []
|
||||||
|
for d in ins:
|
||||||
|
if d == '..':
|
||||||
|
try:
|
||||||
|
outs.pop()
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
elif d not in ('', '.'):
|
||||||
|
outs.append(d)
|
||||||
|
p = '/' + '/'.join(outs)
|
||||||
|
|
||||||
if os.sep != '/':
|
|
||||||
p = p.replace(os.sep, '/')
|
|
||||||
return root._lookup_abs(p, fsclass, create)
|
return root._lookup_abs(p, fsclass, create)
|
||||||
|
|
||||||
def Entry(self, name, directory = None, create = 1):
|
def Entry(self, name, directory = None, create = 1):
|
||||||
|
@ -1300,7 +1420,7 @@ class DirNodeInfo(SCons.Node.NodeInfoBase):
|
||||||
top = self.fs.Top
|
top = self.fs.Top
|
||||||
root = top.root
|
root = top.root
|
||||||
if do_splitdrive:
|
if do_splitdrive:
|
||||||
drive, s = os.path.splitdrive(s)
|
drive, s = _my_splitdrive(s)
|
||||||
if drive:
|
if drive:
|
||||||
root = self.fs.get_root(drive)
|
root = self.fs.get_root(drive)
|
||||||
if not os.path.isabs(s):
|
if not os.path.isabs(s):
|
||||||
|
@ -1350,11 +1470,34 @@ class Dir(Base):
|
||||||
self.variant_dirs = []
|
self.variant_dirs = []
|
||||||
self.root = self.dir.root
|
self.root = self.dir.root
|
||||||
|
|
||||||
|
# For directories, we make a difference between the directory
|
||||||
|
# 'name' and the directory 'dirname'. The 'name' attribute is
|
||||||
|
# used when we need to print the 'name' of the directory or
|
||||||
|
# when we it is used as the last part of a path. The 'dirname'
|
||||||
|
# is used when the directory is not the last element of the
|
||||||
|
# path. The main reason for making that distinction is that
|
||||||
|
# for RoorDir's the dirname can not be easily inferred from
|
||||||
|
# the name. For example, we have to add a '/' after a drive
|
||||||
|
# letter but not after a UNC path prefix ('//').
|
||||||
|
self.dirname = self.name + OS_SEP
|
||||||
|
|
||||||
# Don't just reset the executor, replace its action list,
|
# Don't just reset the executor, replace its action list,
|
||||||
# because it might have some pre-or post-actions that need to
|
# because it might have some pre-or post-actions that need to
|
||||||
# be preserved.
|
# be preserved.
|
||||||
self.builder = get_MkdirBuilder()
|
#
|
||||||
self.get_executor().set_action_list(self.builder.action)
|
# But don't reset the executor if there is a non-null executor
|
||||||
|
# attached already. The existing executor might have other
|
||||||
|
# targets, in which case replacing the action list with a
|
||||||
|
# Mkdir action is a big mistake.
|
||||||
|
if not hasattr(self, 'executor'):
|
||||||
|
self.builder = get_MkdirBuilder()
|
||||||
|
self.get_executor().set_action_list(self.builder.action)
|
||||||
|
else:
|
||||||
|
# Prepend MkdirBuilder action to existing action list
|
||||||
|
l = self.get_executor().action_list
|
||||||
|
a = get_MkdirBuilder().action
|
||||||
|
l.insert(0, a)
|
||||||
|
self.get_executor().set_action_list(l)
|
||||||
|
|
||||||
def diskcheck_match(self):
|
def diskcheck_match(self):
|
||||||
diskcheck_match(self, self.isfile,
|
diskcheck_match(self, self.isfile,
|
||||||
|
@ -1403,23 +1546,6 @@ class Dir(Base):
|
||||||
"""
|
"""
|
||||||
return self.fs.File(name, self)
|
return self.fs.File(name, self)
|
||||||
|
|
||||||
def _lookup_rel(self, name, klass, create=1):
|
|
||||||
"""
|
|
||||||
Looks up a *normalized* relative path name, relative to this
|
|
||||||
directory.
|
|
||||||
|
|
||||||
This method is intended for use by internal lookups with
|
|
||||||
already-normalized path data. For general-purpose lookups,
|
|
||||||
use the Entry(), Dir() and File() methods above.
|
|
||||||
|
|
||||||
This method does *no* input checking and will die or give
|
|
||||||
incorrect results if it's passed a non-normalized path name (e.g.,
|
|
||||||
a path containing '..'), an absolute path name, a top-relative
|
|
||||||
('#foo') path name, or any kind of object.
|
|
||||||
"""
|
|
||||||
name = self.entry_labspath(name)
|
|
||||||
return self.root._lookup_abs(name, klass, create)
|
|
||||||
|
|
||||||
def link(self, srcdir, duplicate):
|
def link(self, srcdir, duplicate):
|
||||||
"""Set this directory as the variant directory for the
|
"""Set this directory as the variant directory for the
|
||||||
supplied source directory."""
|
supplied source directory."""
|
||||||
|
@ -1452,7 +1578,7 @@ class Dir(Base):
|
||||||
if fname == '.':
|
if fname == '.':
|
||||||
fname = dir.name
|
fname = dir.name
|
||||||
else:
|
else:
|
||||||
fname = dir.name + os.sep + fname
|
fname = dir.name + OS_SEP + fname
|
||||||
dir = dir.up()
|
dir = dir.up()
|
||||||
|
|
||||||
self._memo['get_all_rdirs'] = list(result)
|
self._memo['get_all_rdirs'] = list(result)
|
||||||
|
@ -1466,7 +1592,7 @@ class Dir(Base):
|
||||||
self.__clearRepositoryCache()
|
self.__clearRepositoryCache()
|
||||||
|
|
||||||
def up(self):
|
def up(self):
|
||||||
return self.entries['..']
|
return self.dir
|
||||||
|
|
||||||
def _rel_path_key(self, other):
|
def _rel_path_key(self, other):
|
||||||
return str(other)
|
return str(other)
|
||||||
|
@ -1514,14 +1640,14 @@ class Dir(Base):
|
||||||
if dir_rel_path == '.':
|
if dir_rel_path == '.':
|
||||||
result = other.name
|
result = other.name
|
||||||
else:
|
else:
|
||||||
result = dir_rel_path + os.sep + other.name
|
result = dir_rel_path + OS_SEP + other.name
|
||||||
else:
|
else:
|
||||||
i = self.path_elements.index(other) + 1
|
i = self.path_elements.index(other) + 1
|
||||||
|
|
||||||
path_elems = ['..'] * (len(self.path_elements) - i) \
|
path_elems = ['..'] * (len(self.path_elements) - i) \
|
||||||
+ [n.name for n in other.path_elements[i:]]
|
+ [n.name for n in other.path_elements[i:]]
|
||||||
|
|
||||||
result = os.sep.join(path_elems)
|
result = OS_SEP.join(path_elems)
|
||||||
|
|
||||||
memo_dict[other] = result
|
memo_dict[other] = result
|
||||||
|
|
||||||
|
@ -1691,16 +1817,16 @@ class Dir(Base):
|
||||||
return stamp
|
return stamp
|
||||||
|
|
||||||
def entry_abspath(self, name):
|
def entry_abspath(self, name):
|
||||||
return self.abspath + os.sep + name
|
return self.abspath + OS_SEP + name
|
||||||
|
|
||||||
def entry_labspath(self, name):
|
def entry_labspath(self, name):
|
||||||
return self.labspath + '/' + name
|
return self.labspath + '/' + name
|
||||||
|
|
||||||
def entry_path(self, name):
|
def entry_path(self, name):
|
||||||
return self.path + os.sep + name
|
return self.path + OS_SEP + name
|
||||||
|
|
||||||
def entry_tpath(self, name):
|
def entry_tpath(self, name):
|
||||||
return self.tpath + os.sep + name
|
return self.tpath + OS_SEP + name
|
||||||
|
|
||||||
def entry_exists_on_disk(self, name):
|
def entry_exists_on_disk(self, name):
|
||||||
try:
|
try:
|
||||||
|
@ -1721,7 +1847,7 @@ class Dir(Base):
|
||||||
if result is None:
|
if result is None:
|
||||||
# Belt-and-suspenders for Windows: check directly for
|
# Belt-and-suspenders for Windows: check directly for
|
||||||
# 8.3 file names that don't show up in os.listdir().
|
# 8.3 file names that don't show up in os.listdir().
|
||||||
result = os.path.exists(self.abspath + os.sep + name)
|
result = os.path.exists(self.abspath + OS_SEP + name)
|
||||||
d[name] = result
|
d[name] = result
|
||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
|
@ -1742,7 +1868,7 @@ class Dir(Base):
|
||||||
while dir:
|
while dir:
|
||||||
if dir.srcdir:
|
if dir.srcdir:
|
||||||
result.append(dir.srcdir.Dir(dirname))
|
result.append(dir.srcdir.Dir(dirname))
|
||||||
dirname = dir.name + os.sep + dirname
|
dirname = dir.name + OS_SEP + dirname
|
||||||
dir = dir.up()
|
dir = dir.up()
|
||||||
|
|
||||||
self._memo['srcdir_list'] = result
|
self._memo['srcdir_list'] = result
|
||||||
|
@ -1986,7 +2112,7 @@ class RootDir(Dir):
|
||||||
add a separator when creating the path names of entries within
|
add a separator when creating the path names of entries within
|
||||||
this directory.
|
this directory.
|
||||||
"""
|
"""
|
||||||
def __init__(self, name, fs):
|
def __init__(self, drive, fs):
|
||||||
if __debug__: logInstanceCreation(self, 'Node.FS.RootDir')
|
if __debug__: logInstanceCreation(self, 'Node.FS.RootDir')
|
||||||
# We're going to be our own parent directory (".." entry and .dir
|
# We're going to be our own parent directory (".." entry and .dir
|
||||||
# attribute) so we have to set up some values so Base.__init__()
|
# attribute) so we have to set up some values so Base.__init__()
|
||||||
|
@ -1998,29 +2124,47 @@ class RootDir(Dir):
|
||||||
self.path_elements = []
|
self.path_elements = []
|
||||||
self.duplicate = 0
|
self.duplicate = 0
|
||||||
self.root = self
|
self.root = self
|
||||||
|
|
||||||
|
# Handle all the types of drives:
|
||||||
|
if drive == '':
|
||||||
|
# No drive, regular UNIX root or Windows default drive.
|
||||||
|
name = OS_SEP
|
||||||
|
dirname = OS_SEP
|
||||||
|
elif drive == '//':
|
||||||
|
# UNC path
|
||||||
|
name = UNC_PREFIX
|
||||||
|
dirname = UNC_PREFIX
|
||||||
|
else:
|
||||||
|
# Windows drive letter
|
||||||
|
name = drive
|
||||||
|
dirname = drive + OS_SEP
|
||||||
|
|
||||||
Base.__init__(self, name, self, fs)
|
Base.__init__(self, name, self, fs)
|
||||||
|
|
||||||
# Now set our paths to what we really want them to be: the
|
# Now set our paths to what we really want them to be. The
|
||||||
# initial drive letter (the name) plus the directory separator,
|
# name should already contain any necessary separators, such
|
||||||
# except for the "lookup abspath," which does not have the
|
# as the initial drive letter (the name) plus the directory
|
||||||
# drive letter.
|
# separator, except for the "lookup abspath," which does not
|
||||||
self.abspath = name + os.sep
|
# have the drive letter.
|
||||||
|
self.abspath = dirname
|
||||||
self.labspath = ''
|
self.labspath = ''
|
||||||
self.path = name + os.sep
|
self.path = dirname
|
||||||
self.tpath = name + os.sep
|
self.tpath = dirname
|
||||||
self._morph()
|
self._morph()
|
||||||
|
|
||||||
|
# Must be reset after Dir._morph() is invoked...
|
||||||
|
self.dirname = dirname
|
||||||
|
|
||||||
self._lookupDict = {}
|
self._lookupDict = {}
|
||||||
|
|
||||||
# The // and os.sep + os.sep entries are necessary because
|
|
||||||
# os.path.normpath() seems to preserve double slashes at the
|
|
||||||
# beginning of a path (presumably for UNC path names), but
|
|
||||||
# collapses triple slashes to a single slash.
|
|
||||||
self._lookupDict[''] = self
|
self._lookupDict[''] = self
|
||||||
self._lookupDict['/'] = self
|
self._lookupDict['/'] = self
|
||||||
self._lookupDict['//'] = self
|
|
||||||
self._lookupDict[os.sep] = self
|
# The // entry is necessary because os.path.normpath()
|
||||||
self._lookupDict[os.sep + os.sep] = self
|
# preserves double slashes at the beginning of a path on Posix
|
||||||
|
# platforms.
|
||||||
|
if not has_unc:
|
||||||
|
self._lookupDict['//'] = self
|
||||||
|
|
||||||
def must_be_same(self, klass):
|
def must_be_same(self, klass):
|
||||||
if klass is Dir:
|
if klass is Dir:
|
||||||
|
@ -2039,7 +2183,7 @@ class RootDir(Dir):
|
||||||
normalized absolute path; we merely let Python's dictionary look
|
normalized absolute path; we merely let Python's dictionary look
|
||||||
up and return the One True Node.FS object for the path.
|
up and return the One True Node.FS object for the path.
|
||||||
|
|
||||||
If no Node for the specified "p" doesn't already exist, and
|
If a Node for the specified "p" doesn't already exist, and
|
||||||
"create" is specified, the Node may be created after recursive
|
"create" is specified, the Node may be created after recursive
|
||||||
invocation to find or create the parent directory or directories.
|
invocation to find or create the parent directory or directories.
|
||||||
"""
|
"""
|
||||||
|
@ -2052,7 +2196,17 @@ class RootDir(Dir):
|
||||||
raise SCons.Errors.UserError(msg)
|
raise SCons.Errors.UserError(msg)
|
||||||
# There is no Node for this path name, and we're allowed
|
# There is no Node for this path name, and we're allowed
|
||||||
# to create it.
|
# to create it.
|
||||||
dir_name, file_name = os.path.split(p)
|
# (note: would like to use p.rsplit('/',1) here but
|
||||||
|
# that's not in python 2.3)
|
||||||
|
# e.g.: dir_name, file_name = p.rsplit('/',1)
|
||||||
|
last_slash = p.rindex('/')
|
||||||
|
if (last_slash >= 0):
|
||||||
|
dir_name = p[:last_slash]
|
||||||
|
file_name = p[last_slash+1:]
|
||||||
|
else:
|
||||||
|
dir_name = p # shouldn't happen, just in case
|
||||||
|
file_name = ''
|
||||||
|
|
||||||
dir_node = self._lookup_abs(dir_name, Dir)
|
dir_node = self._lookup_abs(dir_name, Dir)
|
||||||
result = klass(file_name, dir_node, self.fs)
|
result = klass(file_name, dir_node, self.fs)
|
||||||
|
|
||||||
|
@ -2111,7 +2265,7 @@ class FileNodeInfo(SCons.Node.NodeInfoBase):
|
||||||
top = self.fs.Top
|
top = self.fs.Top
|
||||||
root = top.root
|
root = top.root
|
||||||
if do_splitdrive:
|
if do_splitdrive:
|
||||||
drive, s = os.path.splitdrive(s)
|
drive, s = _my_splitdrive(s)
|
||||||
if drive:
|
if drive:
|
||||||
root = self.fs.get_root(drive)
|
root = self.fs.get_root(drive)
|
||||||
if not os.path.isabs(s):
|
if not os.path.isabs(s):
|
||||||
|
@ -2129,7 +2283,7 @@ class FileBuildInfo(SCons.Node.BuildInfoBase):
|
||||||
usual string representation: relative to the top-level SConstruct
|
usual string representation: relative to the top-level SConstruct
|
||||||
directory, or an absolute path if it's outside.
|
directory, or an absolute path if it's outside.
|
||||||
"""
|
"""
|
||||||
if os.sep == '/':
|
if os_sep_is_slash:
|
||||||
node_to_str = str
|
node_to_str = str
|
||||||
else:
|
else:
|
||||||
def node_to_str(n):
|
def node_to_str(n):
|
||||||
|
@ -2138,7 +2292,7 @@ class FileBuildInfo(SCons.Node.BuildInfoBase):
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
s = str(n)
|
s = str(n)
|
||||||
else:
|
else:
|
||||||
s = s.replace(os.sep, '/')
|
s = s.replace(OS_SEP, '/')
|
||||||
return s
|
return s
|
||||||
for attr in ['bsources', 'bdepends', 'bimplicit']:
|
for attr in ['bsources', 'bdepends', 'bimplicit']:
|
||||||
try:
|
try:
|
||||||
|
@ -2638,6 +2792,8 @@ class File(Base):
|
||||||
|
|
||||||
def _rmv_existing(self):
|
def _rmv_existing(self):
|
||||||
self.clear_memoized_values()
|
self.clear_memoized_values()
|
||||||
|
if print_duplicate:
|
||||||
|
print "dup: removing existing target %s"%self
|
||||||
e = Unlink(self, [], None)
|
e = Unlink(self, [], None)
|
||||||
if isinstance(e, SCons.Errors.BuildError):
|
if isinstance(e, SCons.Errors.BuildError):
|
||||||
raise e
|
raise e
|
||||||
|
@ -2678,6 +2834,8 @@ class File(Base):
|
||||||
|
|
||||||
def do_duplicate(self, src):
|
def do_duplicate(self, src):
|
||||||
self._createDir()
|
self._createDir()
|
||||||
|
if print_duplicate:
|
||||||
|
print "dup: relinking variant '%s' from '%s'"%(self, src)
|
||||||
Unlink(self, None, None)
|
Unlink(self, None, None)
|
||||||
e = Link(self, src, None)
|
e = Link(self, src, None)
|
||||||
if isinstance(e, SCons.Errors.BuildError):
|
if isinstance(e, SCons.Errors.BuildError):
|
||||||
|
@ -2711,6 +2869,8 @@ class File(Base):
|
||||||
else:
|
else:
|
||||||
# The source file does not exist. Make sure no old
|
# The source file does not exist. Make sure no old
|
||||||
# copy remains in the variant directory.
|
# copy remains in the variant directory.
|
||||||
|
if print_duplicate:
|
||||||
|
print "dup: no src for %s, unlinking old variant copy"%self
|
||||||
if Base.exists(self) or self.islink():
|
if Base.exists(self) or self.islink():
|
||||||
self.fs.unlink(self.path)
|
self.fs.unlink(self.path)
|
||||||
# Return None explicitly because the Base.exists() call
|
# Return None explicitly because the Base.exists() call
|
||||||
|
@ -2982,8 +3142,8 @@ class FileFinder(object):
|
||||||
if fd is None:
|
if fd is None:
|
||||||
fd = self.default_filedir
|
fd = self.default_filedir
|
||||||
dir, name = os.path.split(fd)
|
dir, name = os.path.split(fd)
|
||||||
drive, d = os.path.splitdrive(dir)
|
drive, d = _my_splitdrive(dir)
|
||||||
if not name and d[:1] in ('/', os.sep):
|
if not name and d[:1] in ('/', OS_SEP):
|
||||||
#return p.fs.get_root(drive).dir_on_disk(name)
|
#return p.fs.get_root(drive).dir_on_disk(name)
|
||||||
return p.fs.get_root(drive)
|
return p.fs.get_root(drive)
|
||||||
if dir:
|
if dir:
|
||||||
|
|
|
@ -5,7 +5,7 @@ Python nodes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Node/Python.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Node/Python.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Node
|
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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Node/__init__.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Node/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
import copy
|
import copy
|
||||||
|
@ -628,9 +628,10 @@ class Node(object):
|
||||||
if implicit_deps_unchanged or self.is_up_to_date():
|
if implicit_deps_unchanged or self.is_up_to_date():
|
||||||
return
|
return
|
||||||
# one of this node's sources has changed,
|
# one of this node's sources has changed,
|
||||||
# so we must recalculate the implicit deps:
|
# so we must recalculate the implicit deps for all targets
|
||||||
self.implicit = []
|
for tgt in executor.get_all_targets():
|
||||||
self.implicit_set = set()
|
tgt.implicit = []
|
||||||
|
tgt.implicit_set = set()
|
||||||
|
|
||||||
# Have the executor scan the sources.
|
# Have the executor scan the sources.
|
||||||
executor.scan_sources(self.builder.source_scanner)
|
executor.scan_sources(self.builder.source_scanner)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Options/BoolOption.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Options/BoolOption.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Options/EnumOption.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Options/EnumOption.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Options/ListOption.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Options/ListOption.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Options/PackageOption.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Options/PackageOption.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Options/PathOption.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Options/PathOption.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Options/__init__.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Options/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Place-holder for the old SCons.Options module hierarchy
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/PathList.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/PathList.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """SCons.PathList
|
__doc__ = """SCons.PathList
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ their own platform definition.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/__init__.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.compat
|
import SCons.compat
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/aix.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/aix.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/cygwin.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/cygwin.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import posix
|
import posix
|
||||||
from SCons.Platform import TempFileMunge
|
from SCons.Platform import TempFileMunge
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
@ -30,14 +30,38 @@ selection method.
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/darwin.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/darwin.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import posix
|
import posix
|
||||||
|
import os
|
||||||
|
|
||||||
def generate(env):
|
def generate(env):
|
||||||
posix.generate(env)
|
posix.generate(env)
|
||||||
env['SHLIBSUFFIX'] = '.dylib'
|
env['SHLIBSUFFIX'] = '.dylib'
|
||||||
env['ENV']['PATH'] = env['ENV']['PATH'] + ':/sw/bin'
|
# put macports paths at front to override Apple's versions, fink path is after
|
||||||
|
# For now let people who want Macports or Fink tools specify it!
|
||||||
|
# env['ENV']['PATH'] = '/opt/local/bin:/opt/local/sbin:' + env['ENV']['PATH'] + ':/sw/bin'
|
||||||
|
|
||||||
|
# Store extra system paths in env['ENV']['PATHOSX']
|
||||||
|
|
||||||
|
filelist = ['/etc/paths',]
|
||||||
|
# make sure this works on Macs with Tiger or earlier
|
||||||
|
try:
|
||||||
|
dirlist = os.listdir('/etc/paths.d')
|
||||||
|
except:
|
||||||
|
dirlist = []
|
||||||
|
|
||||||
|
for file in dirlist:
|
||||||
|
filelist.append('/etc/paths.d/'+file)
|
||||||
|
|
||||||
|
for file in filelist:
|
||||||
|
if os.path.isfile(file):
|
||||||
|
f = open(file, 'r')
|
||||||
|
lines = f.readlines()
|
||||||
|
for line in lines:
|
||||||
|
if line:
|
||||||
|
env.AppendENVPath('PATHOSX', line.strip('\n'))
|
||||||
|
f.close()
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# tab-width:4
|
# tab-width:4
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/hpux.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/hpux.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import posix
|
import posix
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/irix.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/irix.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import posix
|
import posix
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/os2.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/os2.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
import win32
|
import win32
|
||||||
|
|
||||||
def generate(env):
|
def generate(env):
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/posix.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/posix.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import errno
|
import errno
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/sunos.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/sunos.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import posix
|
import posix
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Platform/win32.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Platform/win32.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
|
|
@ -4,7 +4,7 @@ Autoconf-like configuration support.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
@ -26,7 +26,7 @@ Autoconf-like configuration support.
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/SConf.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/SConf.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.compat
|
import SCons.compat
|
||||||
|
|
||||||
|
|
|
@ -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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/SConsign.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/SConsign.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.compat
|
import SCons.compat
|
||||||
|
|
||||||
|
@ -104,9 +104,15 @@ def write():
|
||||||
try:
|
try:
|
||||||
syncmethod = db.sync
|
syncmethod = db.sync
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
pass # Not all anydbm modules have sync() methods.
|
pass # Not all dbm modules have sync() methods.
|
||||||
else:
|
else:
|
||||||
syncmethod()
|
syncmethod()
|
||||||
|
try:
|
||||||
|
closemethod = db.close
|
||||||
|
except AttributeError:
|
||||||
|
pass # Not all dbm modules have close() methods.
|
||||||
|
else:
|
||||||
|
closemethod()
|
||||||
|
|
||||||
class SConsignEntry(object):
|
class SConsignEntry(object):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/C.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/C.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Node.FS
|
import SCons.Node.FS
|
||||||
import SCons.Scanner
|
import SCons.Scanner
|
||||||
|
|
|
@ -8,7 +8,7 @@ Coded by Andy Friesen
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/D.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/D.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/Dir.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/Dir.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Node.FS
|
import SCons.Node.FS
|
||||||
import SCons.Scanner
|
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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/Fortran.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/Fortran.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ Definition Language) files.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/IDL.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/IDL.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Node.FS
|
import SCons.Node.FS
|
||||||
import SCons.Scanner
|
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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/LaTeX.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/LaTeX.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
import re
|
import re
|
||||||
|
@ -148,6 +148,8 @@ class LaTeX(SCons.Scanner.Base):
|
||||||
env['TEXINPUTS'] for "lstinputlisting" keyword
|
env['TEXINPUTS'] for "lstinputlisting" keyword
|
||||||
env['BIBINPUTS'] for "bibliography" keyword
|
env['BIBINPUTS'] for "bibliography" keyword
|
||||||
env['BSTINPUTS'] for "bibliographystyle" keyword
|
env['BSTINPUTS'] for "bibliographystyle" keyword
|
||||||
|
env['INDEXSTYLE'] for "makeindex" keyword, no scanning support needed
|
||||||
|
just allows user to set it if needed.
|
||||||
|
|
||||||
FIXME: also look for the class or style in document[class|style]{}
|
FIXME: also look for the class or style in document[class|style]{}
|
||||||
FIXME: also look for the argument of bibliographystyle{}
|
FIXME: also look for the argument of bibliographystyle{}
|
||||||
|
@ -157,6 +159,7 @@ class LaTeX(SCons.Scanner.Base):
|
||||||
'includegraphics': 'TEXINPUTS',
|
'includegraphics': 'TEXINPUTS',
|
||||||
'bibliography': 'BIBINPUTS',
|
'bibliography': 'BIBINPUTS',
|
||||||
'bibliographystyle': 'BSTINPUTS',
|
'bibliographystyle': 'BSTINPUTS',
|
||||||
|
'makeindex': 'INDEXSTYLE',
|
||||||
'usepackage': 'TEXINPUTS',
|
'usepackage': 'TEXINPUTS',
|
||||||
'lstinputlisting': 'TEXINPUTS'}
|
'lstinputlisting': 'TEXINPUTS'}
|
||||||
env_variables = SCons.Util.unique(list(keyword_paths.values()))
|
env_variables = SCons.Util.unique(list(keyword_paths.values()))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/Prog.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/Prog.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Node
|
import SCons.Node
|
||||||
import SCons.Node.FS
|
import SCons.Node.FS
|
||||||
|
|
|
@ -6,7 +6,7 @@ Definition Language) files.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/RC.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/RC.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Node.FS
|
import SCons.Node.FS
|
||||||
import SCons.Scanner
|
import SCons.Scanner
|
||||||
|
@ -40,7 +40,7 @@ def RCScan():
|
||||||
res_re= r'^(?:\s*#\s*(?:include)|' \
|
res_re= r'^(?:\s*#\s*(?:include)|' \
|
||||||
'.*?\s+(?:ICON|BITMAP|CURSOR|HTML|FONT|MESSAGETABLE|TYPELIB|REGISTRY|D3DFX)' \
|
'.*?\s+(?:ICON|BITMAP|CURSOR|HTML|FONT|MESSAGETABLE|TYPELIB|REGISTRY|D3DFX)' \
|
||||||
'\s*.*?)' \
|
'\s*.*?)' \
|
||||||
'\s*(<|"| )([^>"\s]+)(?:[>" ])*$'
|
'\s*(<|"| )([^>"\s]+)(?:[>"\s])*$'
|
||||||
resScanner = SCons.Scanner.ClassicCPP( "ResourceScanner",
|
resScanner = SCons.Scanner.ClassicCPP( "ResourceScanner",
|
||||||
"$RCSUFFIXES",
|
"$RCSUFFIXES",
|
||||||
"CPPPATH",
|
"CPPPATH",
|
||||||
|
|
|
@ -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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Scanner/__init__.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Scanner/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Script/Interactive.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Script/Interactive.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """
|
__doc__ = """
|
||||||
SCons interactive mode
|
SCons interactive mode
|
||||||
|
|
|
@ -13,7 +13,7 @@ it goes here.
|
||||||
unsupported_python_version = (2, 3, 0)
|
unsupported_python_version = (2, 3, 0)
|
||||||
deprecated_python_version = (2, 4, 0)
|
deprecated_python_version = (2, 4, 0)
|
||||||
|
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
@ -34,7 +34,7 @@ deprecated_python_version = (2, 4, 0)
|
||||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Script/Main.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Script/Main.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.compat
|
import SCons.compat
|
||||||
|
|
||||||
|
@ -60,6 +60,7 @@ import SCons.Errors
|
||||||
import SCons.Job
|
import SCons.Job
|
||||||
import SCons.Node
|
import SCons.Node
|
||||||
import SCons.Node.FS
|
import SCons.Node.FS
|
||||||
|
import SCons.Platform
|
||||||
import SCons.SConf
|
import SCons.SConf
|
||||||
import SCons.Script
|
import SCons.Script
|
||||||
import SCons.Taskmaster
|
import SCons.Taskmaster
|
||||||
|
@ -653,6 +654,10 @@ def _set_debug_values(options):
|
||||||
print_time = 1
|
print_time = 1
|
||||||
if "tree" in debug_values:
|
if "tree" in debug_values:
|
||||||
options.tree_printers.append(TreePrinter())
|
options.tree_printers.append(TreePrinter())
|
||||||
|
if "prepare" in debug_values:
|
||||||
|
SCons.Taskmaster.print_prepare = 1
|
||||||
|
if "duplicate" in debug_values:
|
||||||
|
SCons.Node.FS.print_duplicate = 1
|
||||||
|
|
||||||
def _create_path(plist):
|
def _create_path(plist):
|
||||||
path = '.'
|
path = '.'
|
||||||
|
@ -665,15 +670,15 @@ def _create_path(plist):
|
||||||
|
|
||||||
def _load_site_scons_dir(topdir, site_dir_name=None):
|
def _load_site_scons_dir(topdir, site_dir_name=None):
|
||||||
"""Load the site_scons dir under topdir.
|
"""Load the site_scons dir under topdir.
|
||||||
Adds site_scons to sys.path, imports site_scons/site_init.py,
|
Prepends site_scons to sys.path, imports site_scons/site_init.py,
|
||||||
and adds site_scons/site_tools to default toolpath."""
|
and prepends site_scons/site_tools to default toolpath."""
|
||||||
if site_dir_name:
|
if site_dir_name:
|
||||||
err_if_not_found = True # user specified: err if missing
|
err_if_not_found = True # user specified: err if missing
|
||||||
else:
|
else:
|
||||||
site_dir_name = "site_scons"
|
site_dir_name = "site_scons"
|
||||||
err_if_not_found = False
|
err_if_not_found = False
|
||||||
|
|
||||||
site_dir = os.path.join(topdir.path, site_dir_name)
|
site_dir = os.path.join(topdir, site_dir_name)
|
||||||
if not os.path.exists(site_dir):
|
if not os.path.exists(site_dir):
|
||||||
if err_if_not_found:
|
if err_if_not_found:
|
||||||
raise SCons.Errors.UserError("site dir %s not found."%site_dir)
|
raise SCons.Errors.UserError("site dir %s not found."%site_dir)
|
||||||
|
@ -682,11 +687,12 @@ def _load_site_scons_dir(topdir, site_dir_name=None):
|
||||||
site_init_filename = "site_init.py"
|
site_init_filename = "site_init.py"
|
||||||
site_init_modname = "site_init"
|
site_init_modname = "site_init"
|
||||||
site_tools_dirname = "site_tools"
|
site_tools_dirname = "site_tools"
|
||||||
|
# prepend to sys.path
|
||||||
sys.path = [os.path.abspath(site_dir)] + sys.path
|
sys.path = [os.path.abspath(site_dir)] + sys.path
|
||||||
site_init_file = os.path.join(site_dir, site_init_filename)
|
site_init_file = os.path.join(site_dir, site_init_filename)
|
||||||
site_tools_dir = os.path.join(site_dir, site_tools_dirname)
|
site_tools_dir = os.path.join(site_dir, site_tools_dirname)
|
||||||
if os.path.exists(site_init_file):
|
if os.path.exists(site_init_file):
|
||||||
import imp
|
import imp, re
|
||||||
# TODO(2.4): turn this into try:-except:-finally:
|
# TODO(2.4): turn this into try:-except:-finally:
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
|
@ -705,14 +711,26 @@ def _load_site_scons_dir(topdir, site_dir_name=None):
|
||||||
fmt = 'cannot import site_init.py: missing SCons.Script module %s'
|
fmt = 'cannot import site_init.py: missing SCons.Script module %s'
|
||||||
raise SCons.Errors.InternalError(fmt % repr(e))
|
raise SCons.Errors.InternalError(fmt % repr(e))
|
||||||
try:
|
try:
|
||||||
|
sfx = description[0]
|
||||||
|
modname = os.path.basename(pathname)[:-len(sfx)]
|
||||||
|
site_m = {"__file__": pathname, "__name__": modname, "__doc__": None}
|
||||||
|
re_special = re.compile("__[^_]+__")
|
||||||
|
for k in m.__dict__.keys():
|
||||||
|
if not re_special.match(k):
|
||||||
|
site_m[k] = m.__dict__[k]
|
||||||
|
|
||||||
# This is the magic.
|
# This is the magic.
|
||||||
exec fp in m.__dict__
|
exec fp in site_m
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
raise
|
raise
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
fmt = '*** Error loading site_init file %s:\n'
|
fmt = '*** Error loading site_init file %s:\n'
|
||||||
sys.stderr.write(fmt % repr(site_init_file))
|
sys.stderr.write(fmt % repr(site_init_file))
|
||||||
raise
|
raise
|
||||||
|
else:
|
||||||
|
for k in site_m:
|
||||||
|
if not re_special.match(k):
|
||||||
|
m.__dict__[k] = site_m[k]
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
raise
|
raise
|
||||||
except ImportError, e:
|
except ImportError, e:
|
||||||
|
@ -723,7 +741,55 @@ def _load_site_scons_dir(topdir, site_dir_name=None):
|
||||||
if fp:
|
if fp:
|
||||||
fp.close()
|
fp.close()
|
||||||
if os.path.exists(site_tools_dir):
|
if os.path.exists(site_tools_dir):
|
||||||
SCons.Tool.DefaultToolpath.append(os.path.abspath(site_tools_dir))
|
# prepend to DefaultToolpath
|
||||||
|
SCons.Tool.DefaultToolpath.insert(0, os.path.abspath(site_tools_dir))
|
||||||
|
|
||||||
|
def _load_all_site_scons_dirs(topdir, verbose=None):
|
||||||
|
"""Load all of the predefined site_scons dir.
|
||||||
|
Order is significant; we load them in order from most generic
|
||||||
|
(machine-wide) to most specific (topdir).
|
||||||
|
The verbose argument is only for testing.
|
||||||
|
"""
|
||||||
|
platform = SCons.Platform.platform_default()
|
||||||
|
|
||||||
|
def homedir(d):
|
||||||
|
return os.path.expanduser('~/'+d)
|
||||||
|
|
||||||
|
if platform == 'win32' or platform == 'cygwin':
|
||||||
|
# Note we use $ here instead of %...% because older
|
||||||
|
# pythons (prior to 2.6?) didn't expand %...% on Windows.
|
||||||
|
# This set of dirs should work on XP, Vista, 7 and later.
|
||||||
|
sysdirs=[
|
||||||
|
os.path.expandvars('$ALLUSERSPROFILE\\Application Data\\scons'),
|
||||||
|
os.path.expandvars('$USERPROFILE\\Local Settings\\Application Data\\scons')]
|
||||||
|
appdatadir = os.path.expandvars('$APPDATA\\scons')
|
||||||
|
if appdatadir not in sysdirs:
|
||||||
|
sysdirs.append(appdatadir)
|
||||||
|
sysdirs.append(homedir('.scons'))
|
||||||
|
|
||||||
|
elif platform == 'darwin': # MacOS X
|
||||||
|
sysdirs=['/Library/Application Support/SCons',
|
||||||
|
'/opt/local/share/scons', # (for MacPorts)
|
||||||
|
'/sw/share/scons', # (for Fink)
|
||||||
|
homedir('Library/Application Support/SCons'),
|
||||||
|
homedir('.scons')]
|
||||||
|
elif platform == 'sunos': # Solaris
|
||||||
|
sysdirs=['/opt/sfw/scons',
|
||||||
|
'/usr/share/scons',
|
||||||
|
homedir('.scons')]
|
||||||
|
else: # Linux, HPUX, etc.
|
||||||
|
# assume posix-like, i.e. platform == 'posix'
|
||||||
|
sysdirs=['/usr/share/scons',
|
||||||
|
homedir('.scons')]
|
||||||
|
|
||||||
|
dirs=sysdirs + [topdir]
|
||||||
|
for d in dirs:
|
||||||
|
if verbose: # this is used by unit tests.
|
||||||
|
print "Loading site dir ", d
|
||||||
|
_load_site_scons_dir(d)
|
||||||
|
|
||||||
|
def test_load_all_site_scons_dirs(d):
|
||||||
|
_load_all_site_scons_dirs(d, True)
|
||||||
|
|
||||||
def version_string(label, module):
|
def version_string(label, module):
|
||||||
version = module.__version__
|
version = module.__version__
|
||||||
|
@ -739,6 +805,10 @@ def version_string(label, module):
|
||||||
module.__developer__,
|
module.__developer__,
|
||||||
module.__buildsys__)
|
module.__buildsys__)
|
||||||
|
|
||||||
|
def path_string(label, module):
|
||||||
|
path = module.__path__
|
||||||
|
return "\t%s path: %s\n"%(label,path)
|
||||||
|
|
||||||
def _main(parser):
|
def _main(parser):
|
||||||
global exit_status
|
global exit_status
|
||||||
global this_build_status
|
global this_build_status
|
||||||
|
@ -860,9 +930,9 @@ def _main(parser):
|
||||||
progress_display.set_mode(0)
|
progress_display.set_mode(0)
|
||||||
|
|
||||||
if options.site_dir:
|
if options.site_dir:
|
||||||
_load_site_scons_dir(d, options.site_dir)
|
_load_site_scons_dir(d.path, options.site_dir)
|
||||||
elif not options.no_site_dir:
|
elif not options.no_site_dir:
|
||||||
_load_site_scons_dir(d)
|
_load_all_site_scons_dirs(d.path)
|
||||||
|
|
||||||
if options.include_dir:
|
if options.include_dir:
|
||||||
sys.path = options.include_dir + sys.path
|
sys.path = options.include_dir + sys.path
|
||||||
|
@ -1258,7 +1328,8 @@ def main():
|
||||||
# __main__.__version__, hence there is no script version.
|
# __main__.__version__, hence there is no script version.
|
||||||
pass
|
pass
|
||||||
parts.append(version_string("engine", SCons))
|
parts.append(version_string("engine", SCons))
|
||||||
parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation")
|
parts.append(path_string("engine", SCons))
|
||||||
|
parts.append("Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation")
|
||||||
version = ''.join(parts)
|
version = ''.join(parts)
|
||||||
|
|
||||||
import SConsOptions
|
import SConsOptions
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Script/SConsOptions.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Script/SConsOptions.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import optparse
|
import optparse
|
||||||
import re
|
import re
|
||||||
|
@ -596,9 +596,9 @@ def Parser(version):
|
||||||
"tree" : '; please use --tree=all instead',
|
"tree" : '; please use --tree=all instead',
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_options = ["count", "explain", "findlibs",
|
debug_options = ["count", "duplicate", "explain", "findlibs",
|
||||||
"includes", "memoizer", "memory", "objects",
|
"includes", "memoizer", "memory", "objects",
|
||||||
"pdb", "presub", "stacktrace",
|
"pdb", "prepare", "presub", "stacktrace",
|
||||||
"time"] + list(deprecated_debug_options.keys())
|
"time"] + list(deprecated_debug_options.keys())
|
||||||
|
|
||||||
def opt_debug(option, opt, value, parser,
|
def opt_debug(option, opt, value, parser,
|
||||||
|
@ -867,7 +867,7 @@ def Parser(version):
|
||||||
sys.stderr.write(msg)
|
sys.stderr.write(msg)
|
||||||
|
|
||||||
op.add_option('-l', '--load-average', '--max-load',
|
op.add_option('-l', '--load-average', '--max-load',
|
||||||
nargs=1, type="int",
|
nargs=1, type="float",
|
||||||
dest="load_average", default=0,
|
dest="load_average", default=0,
|
||||||
action="callback", callback=opt_not_yet,
|
action="callback", callback=opt_not_yet,
|
||||||
# action="store",
|
# action="store",
|
||||||
|
|
|
@ -6,7 +6,7 @@ files.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
from __future__ import division
|
from __future__ import division
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Script/SConscript.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Script/SConscript.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons
|
import SCons
|
||||||
import SCons.Action
|
import SCons.Action
|
||||||
|
|
|
@ -12,7 +12,7 @@ it goes here.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Script/__init__.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Script/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import time
|
import time
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Sig.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Sig.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Place-holder for the old SCons.Sig module hierarchy
|
__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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Subst.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Subst.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
import re
|
import re
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
target(s) that it decides need to be evaluated and/or built.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Taskmaster.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Taskmaster.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
import operator
|
import operator
|
||||||
|
@ -66,6 +66,7 @@ NODE_UP_TO_DATE = SCons.Node.up_to_date
|
||||||
NODE_EXECUTED = SCons.Node.executed
|
NODE_EXECUTED = SCons.Node.executed
|
||||||
NODE_FAILED = SCons.Node.failed
|
NODE_FAILED = SCons.Node.failed
|
||||||
|
|
||||||
|
print_prepare = 0 # set by option --debug=prepare
|
||||||
|
|
||||||
# A subsystem for recording stats about how different Nodes are handled by
|
# A subsystem for recording stats about how different Nodes are handled by
|
||||||
# the main Taskmaster loop. There's no external control here (no need for
|
# the main Taskmaster loop. There's no external control here (no need for
|
||||||
|
@ -161,6 +162,7 @@ class Task(object):
|
||||||
unlink underlying files and make all necessary directories before
|
unlink underlying files and make all necessary directories before
|
||||||
the Action is actually called to build the targets.
|
the Action is actually called to build the targets.
|
||||||
"""
|
"""
|
||||||
|
global print_prepare
|
||||||
T = self.tm.trace
|
T = self.tm.trace
|
||||||
if T: T.write(self.trace_message(u'Task.prepare()', self.node))
|
if T: T.write(self.trace_message(u'Task.prepare()', self.node))
|
||||||
|
|
||||||
|
@ -186,8 +188,14 @@ class Task(object):
|
||||||
executor = self.targets[0].get_executor()
|
executor = self.targets[0].get_executor()
|
||||||
executor.prepare()
|
executor.prepare()
|
||||||
for t in executor.get_action_targets():
|
for t in executor.get_action_targets():
|
||||||
|
if print_prepare:
|
||||||
|
print "Preparing target %s..."%t
|
||||||
|
for s in t.side_effects:
|
||||||
|
print "...with side-effect %s..."%s
|
||||||
t.prepare()
|
t.prepare()
|
||||||
for s in t.side_effects:
|
for s in t.side_effects:
|
||||||
|
if print_prepare:
|
||||||
|
print "...Preparing side-effect %s..."%s
|
||||||
s.prepare()
|
s.prepare()
|
||||||
|
|
||||||
def get_target(self):
|
def get_target(self):
|
||||||
|
|
|
@ -10,7 +10,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/386asm.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/386asm.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
from SCons.Tool.PharLapCommon import addPharLapPaths
|
from SCons.Tool.PharLapCommon import addPharLapPaths
|
||||||
import SCons.Util
|
import SCons.Util
|
||||||
|
|
|
@ -10,7 +10,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/BitKeeper.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/BitKeeper.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Action
|
import SCons.Action
|
||||||
import SCons.Builder
|
import SCons.Builder
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/CVS.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/CVS.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Action
|
import SCons.Action
|
||||||
import SCons.Builder
|
import SCons.Builder
|
||||||
|
|
|
@ -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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/FortranCommon.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/FortranCommon.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import re
|
import re
|
||||||
import os.path
|
import os.path
|
||||||
|
@ -231,6 +231,22 @@ def add_f95_to_env(env):
|
||||||
DialectAddToEnv(env, "F95", F95Suffixes, F95PPSuffixes,
|
DialectAddToEnv(env, "F95", F95Suffixes, F95PPSuffixes,
|
||||||
support_module = 1)
|
support_module = 1)
|
||||||
|
|
||||||
|
def add_f03_to_env(env):
|
||||||
|
"""Add Builders and construction variables for f03 to an Environment."""
|
||||||
|
try:
|
||||||
|
F03Suffixes = env['F03FILESUFFIXES']
|
||||||
|
except KeyError:
|
||||||
|
F03Suffixes = ['.f03']
|
||||||
|
|
||||||
|
#print "Adding %s to f95 suffixes" % F95Suffixes
|
||||||
|
try:
|
||||||
|
F03PPSuffixes = env['F03PPFILESUFFIXES']
|
||||||
|
except KeyError:
|
||||||
|
F03PPSuffixes = []
|
||||||
|
|
||||||
|
DialectAddToEnv(env, "F03", F03Suffixes, F03PPSuffixes,
|
||||||
|
support_module = 1)
|
||||||
|
|
||||||
def add_all_to_env(env):
|
def add_all_to_env(env):
|
||||||
"""Add builders and construction variables for all supported fortran
|
"""Add builders and construction variables for all supported fortran
|
||||||
dialects."""
|
dialects."""
|
||||||
|
@ -238,6 +254,7 @@ def add_all_to_env(env):
|
||||||
add_f77_to_env(env)
|
add_f77_to_env(env)
|
||||||
add_f90_to_env(env)
|
add_f90_to_env(env)
|
||||||
add_f95_to_env(env)
|
add_f95_to_env(env)
|
||||||
|
add_f03_to_env(env)
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
# tab-width:4
|
# tab-width:4
|
||||||
|
|
|
@ -5,7 +5,7 @@ Stuff for processing Java.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/JavaCommon.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/JavaCommon.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """
|
__doc__ = """
|
||||||
Common functions for Microsoft Visual Studio and Visual C/C++.
|
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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/MSCommon/arch.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Module to define supported Windows chip architectures.
|
__doc__ = """Module to define supported Windows chip architectures.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/MSCommon/common.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/MSCommon/common.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """
|
__doc__ = """
|
||||||
Common helper functions for working with the Microsoft tool chain.
|
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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/MSCommon/netframework.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/MSCommon/netframework.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """
|
__doc__ = """
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/MSCommon/sdk.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Module to detect the Platform/Windows SDK
|
__doc__ = """Module to detect the Platform/Windows SDK
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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)
|
# * test on 64 bits XP + VS 2005 (and VS 6 if possible)
|
||||||
# * SDK
|
# * SDK
|
||||||
# * Assembly
|
# * Assembly
|
||||||
__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/MSCommon/vc.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Module for Visual C/C++ detection and configuration.
|
__doc__ = """Module for Visual C/C++ detection and configuration.
|
||||||
"""
|
"""
|
||||||
|
@ -128,9 +128,11 @@ def get_host_target(env):
|
||||||
|
|
||||||
return (host, target,req_target_platform)
|
return (host, target,req_target_platform)
|
||||||
|
|
||||||
_VCVER = ["10.0", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
|
_VCVER = ["10.0Exp","10.0", "9.0", "9.0Exp","8.0", "8.0Exp","7.1", "7.0", "6.0"]
|
||||||
|
|
||||||
_VCVER_TO_PRODUCT_DIR = {
|
_VCVER_TO_PRODUCT_DIR = {
|
||||||
|
'10.0Exp' : [
|
||||||
|
r'Microsoft\VCExpress\10.0\Setup\VC\ProductDir'],
|
||||||
'10.0': [
|
'10.0': [
|
||||||
r'Microsoft\VisualStudio\10.0\Setup\VC\ProductDir'],
|
r'Microsoft\VisualStudio\10.0\Setup\VC\ProductDir'],
|
||||||
'9.0': [
|
'9.0': [
|
||||||
|
@ -324,9 +326,10 @@ def get_default_version(env):
|
||||||
installed_vcs = cached_get_installed_vcs()
|
installed_vcs = cached_get_installed_vcs()
|
||||||
debug('installed_vcs:%s' % installed_vcs)
|
debug('installed_vcs:%s' % installed_vcs)
|
||||||
if not installed_vcs:
|
if not installed_vcs:
|
||||||
msg = 'No installed VCs'
|
#msg = 'No installed VCs'
|
||||||
debug('msv %s\n' % repr(msg))
|
#debug('msv %s\n' % repr(msg))
|
||||||
SCons.Warnings.warn(SCons.Warnings.VisualCMissingWarning, msg)
|
#SCons.Warnings.warn(SCons.Warnings.VisualCMissingWarning, msg)
|
||||||
|
debug('msvc_setup_env: No installed VCs')
|
||||||
return None
|
return None
|
||||||
msvc_version = installed_vcs[0]
|
msvc_version = installed_vcs[0]
|
||||||
debug('msvc_setup_env: using default installed MSVC version %s\n' % repr(msvc_version))
|
debug('msvc_setup_env: using default installed MSVC version %s\n' % repr(msvc_version))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/MSCommon/vs.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
__doc__ = """Module to detect Visual Studio and/or Visual C/C++
|
__doc__ = """Module to detect Visual Studio and/or Visual C/C++
|
||||||
"""
|
"""
|
||||||
|
@ -211,6 +211,33 @@ SupportedVSList = [
|
||||||
# default_dirname='TBD',
|
# default_dirname='TBD',
|
||||||
#),
|
#),
|
||||||
|
|
||||||
|
# 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',
|
||||||
|
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',
|
||||||
|
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
|
# Visual Studio 2008
|
||||||
# The batch file we look for is in the VC directory,
|
# The batch file we look for is in the VC directory,
|
||||||
# so the devenv.com executable is up in ..\..\Common7\IDE.
|
# so the devenv.com executable is up in ..\..\Common7\IDE.
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/Perforce.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/Perforce.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/PharLapCommon.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/PharLapCommon.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/RCS.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/RCS.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Action
|
import SCons.Action
|
||||||
import SCons.Builder
|
import SCons.Builder
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/SCCS.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/SCCS.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Action
|
import SCons.Action
|
||||||
import SCons.Builder
|
import SCons.Builder
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/Subversion.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/Subversion.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ tool definition.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/__init__.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/__init__.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import imp
|
import imp
|
||||||
import sys
|
import sys
|
||||||
|
@ -62,7 +62,7 @@ CSuffixes = [".c", ".C", ".cxx", ".cpp", ".c++", ".cc",
|
||||||
".h", ".H", ".hxx", ".hpp", ".hh",
|
".h", ".H", ".hxx", ".hpp", ".hh",
|
||||||
".F", ".fpp", ".FPP",
|
".F", ".fpp", ".FPP",
|
||||||
".m", ".mm",
|
".m", ".mm",
|
||||||
".S", ".spp", ".SPP"]
|
".S", ".spp", ".SPP", ".sx"]
|
||||||
|
|
||||||
DSuffixes = ['.d']
|
DSuffixes = ['.d']
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/aixc++.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/aixc++.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/aixcc.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/aixcc.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/aixf77.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/aixf77.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/aixlink.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/aixlink.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/applelink.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/applelink.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Util
|
import SCons.Util
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/ar.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/ar.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Defaults
|
import SCons.Defaults
|
||||||
import SCons.Tool
|
import SCons.Tool
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/as.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/as.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Defaults
|
import SCons.Defaults
|
||||||
import SCons.Tool
|
import SCons.Tool
|
||||||
|
|
|
@ -5,7 +5,7 @@ XXX
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/bcc32.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/bcc32.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/c++.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/c++.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/cc.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/cc.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Tool
|
import SCons.Tool
|
||||||
import SCons.Defaults
|
import SCons.Defaults
|
||||||
|
|
|
@ -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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/cvf.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/cvf.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import fortran
|
import fortran
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/default.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/default.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Tool
|
import SCons.Tool
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,9 @@ Tool-specific initialization for the Digital Mars D compiler.
|
||||||
Coded by Andy Friesen (andy@ikagames.com)
|
Coded by Andy Friesen (andy@ikagames.com)
|
||||||
15 November 2003
|
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.
|
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
|
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
|
linker doesn't have a way to add lib paths on the commandline, as far
|
||||||
|
@ -32,7 +35,7 @@ Lib tool variables:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# a copy of this software and associated documentation files (the
|
||||||
|
@ -54,7 +57,7 @@ Lib tool variables:
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/dmd.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/dmd.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
@ -199,11 +202,25 @@ def generate(env):
|
||||||
libs = env['LIBS']
|
libs = env['LIBS']
|
||||||
except KeyError:
|
except KeyError:
|
||||||
libs = []
|
libs = []
|
||||||
if 'phobos' not in libs and 'gphobos' not in libs:
|
if dc == 'dmd':
|
||||||
if dc is 'dmd':
|
# TODO: This assumes that the dmd executable is in the
|
||||||
env.Append(LIBS = ['phobos'])
|
# bin directory and that the libraries are in a peer
|
||||||
elif dc is 'gdmd':
|
# directory lib. This true of the Digital Mars
|
||||||
env.Append(LIBS = ['gphobos'])
|
# 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:
|
if 'pthread' not in libs:
|
||||||
env.Append(LIBS = ['pthread'])
|
env.Append(LIBS = ['pthread'])
|
||||||
if 'm' not in libs:
|
if 'm' not in libs:
|
||||||
|
|
|
@ -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 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/dvi.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/dvi.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Builder
|
import SCons.Builder
|
||||||
import SCons.Tool
|
import SCons.Tool
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/dvipdf.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/dvipdf.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Action
|
import SCons.Action
|
||||||
import SCons.Defaults
|
import SCons.Defaults
|
||||||
|
@ -115,6 +115,7 @@ def generate(env):
|
||||||
env['PDFCOM'] = ['$DVIPDFCOM']
|
env['PDFCOM'] = ['$DVIPDFCOM']
|
||||||
|
|
||||||
def exists(env):
|
def exists(env):
|
||||||
|
SCons.Tool.tex.generate_darwin(env)
|
||||||
return env.Detect('dvipdf')
|
return env.Detect('dvipdf')
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/dvips.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/dvips.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Action
|
import SCons.Action
|
||||||
import SCons.Builder
|
import SCons.Builder
|
||||||
|
@ -85,6 +85,7 @@ def generate(env):
|
||||||
env['PSSUFFIX'] = '.ps'
|
env['PSSUFFIX'] = '.ps'
|
||||||
|
|
||||||
def exists(env):
|
def exists(env):
|
||||||
|
SCons.Tool.tex.generate_darwin(env)
|
||||||
return env.Detect('dvips')
|
return env.Detect('dvips')
|
||||||
|
|
||||||
# Local Variables:
|
# Local Variables:
|
||||||
|
|
63
lib/libv8/scons/engine/SCons/Tool/f03.py
Normal file
63
lib/libv8/scons/engine/SCons/Tool/f03.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
"""engine.SCons.Tool.f03
|
||||||
|
|
||||||
|
Tool-specific initialization for the generic Posix f03 Fortran compiler.
|
||||||
|
|
||||||
|
There normally shouldn't be any need to import this module directly.
|
||||||
|
It will usually be imported through the generic SCons.Tool.Tool()
|
||||||
|
selection method.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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/f03.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
|
import SCons.Defaults
|
||||||
|
import SCons.Tool
|
||||||
|
import SCons.Util
|
||||||
|
import fortran
|
||||||
|
from SCons.Tool.FortranCommon import add_all_to_env, add_f03_to_env
|
||||||
|
|
||||||
|
compilers = ['f03']
|
||||||
|
|
||||||
|
def generate(env):
|
||||||
|
add_all_to_env(env)
|
||||||
|
add_f03_to_env(env)
|
||||||
|
|
||||||
|
fcomp = env.Detect(compilers) or 'f03'
|
||||||
|
env['F03'] = fcomp
|
||||||
|
env['SHF03'] = fcomp
|
||||||
|
|
||||||
|
env['FORTRAN'] = fcomp
|
||||||
|
env['SHFORTRAN'] = fcomp
|
||||||
|
|
||||||
|
|
||||||
|
def exists(env):
|
||||||
|
return env.Detect(compilers)
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# tab-width:4
|
||||||
|
# indent-tabs-mode:nil
|
||||||
|
# End:
|
||||||
|
# vim: set expandtab tabstop=4 shiftwidth=4:
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/f77.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/f77.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Defaults
|
import SCons.Defaults
|
||||||
import SCons.Scanner.Fortran
|
import SCons.Scanner.Fortran
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/f90.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/f90.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Defaults
|
import SCons.Defaults
|
||||||
import SCons.Scanner.Fortran
|
import SCons.Scanner.Fortran
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/f95.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/f95.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Defaults
|
import SCons.Defaults
|
||||||
import SCons.Tool
|
import SCons.Tool
|
||||||
|
|
|
@ -8,7 +8,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/filesystem.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/filesystem.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons
|
import SCons
|
||||||
from SCons.Tool.install import copyFunc
|
from SCons.Tool.install import copyFunc
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/fortran.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/fortran.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/g++.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/g++.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import os.path
|
import os.path
|
||||||
import re
|
import re
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/g77.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/g77.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import SCons.Util
|
import SCons.Util
|
||||||
from SCons.Tool.FortranCommon import add_all_to_env, add_f77_to_env
|
from SCons.Tool.FortranCommon import add_all_to_env, add_f77_to_env
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/gas.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/gas.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
as_module = __import__('as', globals(), locals(), [])
|
as_module = __import__('as', globals(), locals(), [])
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ selection method.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation
|
# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 The SCons Foundation
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining
|
# Permission is hereby granted, free of charge, to any person obtaining
|
||||||
# a copy of this software and associated documentation files (the
|
# 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.
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#
|
#
|
||||||
|
|
||||||
__revision__ = "src/engine/SCons/Tool/gcc.py 5134 2010/08/16 23:02:40 bdeegan"
|
__revision__ = "src/engine/SCons/Tool/gcc.py 5357 2011/09/09 21:31:03 bdeegan"
|
||||||
|
|
||||||
import cc
|
import cc
|
||||||
import os
|
import os
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue