Upgrade to SCons 4.5.2
This commit is contained in:
parent
50f1b05f86
commit
f391178af0
1531 changed files with 127 additions and 13 deletions
97
scons/scons-configure-cache.py
vendored
Normal file
97
scons/scons-configure-cache.py
vendored
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
#! /usr/bin/env python
|
||||||
|
#
|
||||||
|
# SCons - a Software Constructor
|
||||||
|
#
|
||||||
|
# MIT License
|
||||||
|
#
|
||||||
|
# Copyright 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.
|
||||||
|
|
||||||
|
"""Show or convert the configuration of an SCons cache directory.
|
||||||
|
|
||||||
|
A cache of derived files is stored by file signature.
|
||||||
|
The files are split into directories named by the first few
|
||||||
|
digits of the signature. The prefix length used for directory
|
||||||
|
names can be changed by this script.
|
||||||
|
"""
|
||||||
|
__revision__ = "scripts/scons-configure-cache.py 120fd4f633e9ef3cafbc0fec35306d7555ffd1db Tue, 21 Mar 2023 12:11:27 -0400 bdbaddog"
|
||||||
|
|
||||||
|
__version__ = "4.5.2"
|
||||||
|
|
||||||
|
__build__ = "120fd4f633e9ef3cafbc0fec35306d7555ffd1db"
|
||||||
|
|
||||||
|
__buildsys__ = "M1DOG2021"
|
||||||
|
|
||||||
|
__date__ = "Tue, 21 Mar 2023 12:11:27 -0400"
|
||||||
|
|
||||||
|
__developer__ = "bdbaddog"
|
||||||
|
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# python compatibility check
|
||||||
|
if sys.version_info < (3, 6, 0):
|
||||||
|
msg = "scons: *** SCons version %s does not run under Python version %s.\n\
|
||||||
|
Python >= 3.5 is required.\n"
|
||||||
|
sys.stderr.write(msg % (__version__, sys.version.split()[0]))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Strip the script directory from sys.path so on case-insensitive
|
||||||
|
# (WIN32) systems Python doesn't think that the "scons" script is the
|
||||||
|
# "SCons" package.
|
||||||
|
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
script_path = os.path.realpath(os.path.dirname(__file__))
|
||||||
|
if script_path in sys.path:
|
||||||
|
sys.path.remove(script_path)
|
||||||
|
|
||||||
|
libs = []
|
||||||
|
|
||||||
|
if "SCONS_LIB_DIR" in os.environ:
|
||||||
|
libs.append(os.environ["SCONS_LIB_DIR"])
|
||||||
|
|
||||||
|
# running from source takes 2nd priority (since 2.3.2), following SCONS_LIB_DIR
|
||||||
|
source_path = os.path.join(script_path, os.pardir)
|
||||||
|
if os.path.isdir(source_path):
|
||||||
|
libs.append(source_path)
|
||||||
|
|
||||||
|
# add local-install locations
|
||||||
|
local_version = 'scons-local-' + __version__
|
||||||
|
local = 'scons-local'
|
||||||
|
if script_dir:
|
||||||
|
local_version = os.path.join(script_dir, local_version)
|
||||||
|
local = os.path.join(script_dir, local)
|
||||||
|
if os.path.isdir(local_version):
|
||||||
|
libs.append(os.path.abspath(local_version))
|
||||||
|
if os.path.isdir(local):
|
||||||
|
libs.append(os.path.abspath(local))
|
||||||
|
|
||||||
|
scons_version = 'scons-%s' % __version__
|
||||||
|
|
||||||
|
sys.path = libs + sys.path
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# END STANDARD SCons SCRIPT HEADER
|
||||||
|
##############################################################################
|
||||||
|
from SCons.Utilities.ConfigureCache import main
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
|
@ -1043,6 +1043,12 @@ class SubstitutionEnvironment:
|
||||||
flags distributed into appropriate construction variables.
|
flags distributed into appropriate construction variables.
|
||||||
See :meth:`ParseFlags`.
|
See :meth:`ParseFlags`.
|
||||||
|
|
||||||
|
As a side effect, if *unique* is true, a new object is created
|
||||||
|
for each modified construction variable by the loop at the end.
|
||||||
|
This is silently expected by the :meth:`Override` *parse_flags*
|
||||||
|
functionality, which does not want to share the list (or whatever)
|
||||||
|
with the environment being overridden.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
args: flags to merge
|
args: flags to merge
|
||||||
unique: merge flags rather than appending (default: True).
|
unique: merge flags rather than appending (default: True).
|
||||||
|
@ -1077,6 +1083,16 @@ class SubstitutionEnvironment:
|
||||||
try:
|
try:
|
||||||
orig = orig + value
|
orig = orig + value
|
||||||
except (KeyError, TypeError):
|
except (KeyError, TypeError):
|
||||||
|
# If CPPDEFINES is a deque, adding value (a list)
|
||||||
|
# results in TypeError, so we handle that case here.
|
||||||
|
# Just in case we got called from Override, make
|
||||||
|
# sure we make a copy, because we don't go through
|
||||||
|
# the cleanup loops at the end of the outer for loop,
|
||||||
|
# which implicitly gives us a new object.
|
||||||
|
if isinstance(orig, deque):
|
||||||
|
self[key] = self[key].copy()
|
||||||
|
self.AppendUnique(CPPDEFINES=value, delete_existing=True)
|
||||||
|
continue
|
||||||
try:
|
try:
|
||||||
add_to_orig = orig.append
|
add_to_orig = orig.append
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
@ -1095,6 +1111,7 @@ class SubstitutionEnvironment:
|
||||||
for v in orig[::-1]:
|
for v in orig[::-1]:
|
||||||
if v not in t:
|
if v not in t:
|
||||||
t.insert(0, v)
|
t.insert(0, v)
|
||||||
|
|
||||||
self[key] = t
|
self[key] = t
|
||||||
|
|
||||||
|
|
||||||
|
@ -1419,7 +1436,7 @@ class Base(SubstitutionEnvironment):
|
||||||
if key == 'CPPDEFINES':
|
if key == 'CPPDEFINES':
|
||||||
_add_cppdefines(self._dict, val)
|
_add_cppdefines(self._dict, val)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
orig = self._dict[key]
|
orig = self._dict[key]
|
||||||
except KeyError:
|
except KeyError:
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue