ports/databases/mongodb/36/patches/python3-site_scons_libdeps_py

173 lines
7.5 KiB
Text
Raw Normal View History

2023-08-16 22:26:55 +00:00
Index: site_scons/libdeps.py
--- site_scons/libdeps.py.orig
+++ site_scons/libdeps.py
@@ -61,7 +61,7 @@ syslibdeps_env_var = 'SYSLIBDEPS'
missing_syslibdep = 'MISSING_LIBDEP_'
class dependency(object):
- Public, Private, Interface = range(3)
+ Public, Private, Interface = list(range(3))
def __init__(self, value, dynamic, deptype):
self.target_node = value
@@ -74,7 +74,7 @@ class dependency(object):
class DependencyCycleError(SCons.Errors.UserError):
"""Exception representing a cycle discovered in library dependencies."""
- def __init__(self, first_node ):
+ def __init__(self, first_node):
super(DependencyCycleError, self).__init__()
self.cycle_nodes = [first_node]
@@ -89,8 +89,8 @@ def __get_sorted_direct_libdeps(node):
setattr(node.attributes, "libdeps_direct_sorted", direct_sorted)
return direct_sorted
-def __get_libdeps(node):
+def __get_libdeps(node):
"""Given a SCons Node, return its library dependencies, topologically sorted.
Computes the dependencies if they're not already cached.
@@ -122,7 +122,7 @@ def __get_libdeps(node):
marked.add(n.target_node)
tsorted.append(n.target_node)
- except DependencyCycleError, e:
+ except DependencyCycleError as e:
if len(e.cycle_nodes) == 1 or e.cycle_nodes[0] != e.cycle_nodes[-1]:
e.cycle_nodes.insert(0, n.target_node)
raise
@@ -139,6 +139,7 @@ def __get_libdeps(node):
return tsorted
+
def __get_syslibdeps(node):
""" Given a SCons Node, return its system library dependencies.
@@ -150,11 +151,11 @@ def __get_syslibdeps(node):
for lib in __get_libdeps(node):
for syslib in node.get_env().Flatten(lib.get_env().get(syslibdeps_env_var, [])):
if syslib:
- if type(syslib) in (str, unicode) and syslib.startswith(missing_syslibdep):
- print("Target '%s' depends on the availability of a "
+ if type(syslib) is str and syslib.startswith(missing_syslibdep):
+ print(("Target '%s' depends on the availability of a "
"system provided library for '%s', "
"but no suitable library was found during configuration." %
- (str(node), syslib[len(missing_syslibdep):]))
+ (str(node), syslib[len(missing_syslibdep):])))
node.get_env().Exit(1)
syslibdeps.append(syslib)
setattr(node.attributes, cached_var_name, syslibdeps)
@@ -170,18 +171,21 @@ def update_scanner(builder):
if old_scanner:
path_function = old_scanner.path_function
+
def new_scanner(node, env, path=()):
result = old_scanner.function(node, env, path)
result.extend(__get_libdeps(node))
return result
else:
path_function = None
+
def new_scanner(node, env, path=()):
return __get_libdeps(node)
builder.target_scanner = SCons.Scanner.Scanner(function=new_scanner,
- path_function=path_function)
+ path_function=path_function)
+
def get_libdeps(source, target, env, for_signature):
"""Implementation of the special _LIBDEPS environment variable.
@@ -191,6 +195,7 @@ def get_libdeps(source, target, env, for_signature):
target = env.Flatten([target])
return __get_libdeps(target[0])
+
def get_libdeps_objs(source, target, env, for_signature):
objs = []
for lib in get_libdeps(source, target, env, for_signature):
@@ -198,6 +203,7 @@ def get_libdeps_objs(source, target, env, for_signatur
objs.extend(lib.sources)
return objs
+
def get_syslibdeps(source, target, env, for_signature):
deps = __get_syslibdeps(target[0])
lib_link_prefix = env.subst('$LIBLINKPREFIX')
@@ -209,7 +215,7 @@ def get_syslibdeps(source, target, env, for_signature)
# they're believed to represent library short names, that should be prefixed with -l
# or the compiler-specific equivalent. I.e., 'm' becomes '-lm', but 'File("m.a") is passed
# through whole cloth.
- if type(d) in (str, unicode):
+ if type(d) is str:
result.append('%s%s%s' % (lib_link_prefix, d, lib_link_suffix))
else:
result.append(d)
@@ -252,8 +258,8 @@ def libdeps_emitter(target, source, env):
prereqs.extend(dependency(l, False, dependency.Private) for l in env.get(libdeps_env_var + '_PRIVATE', []) if l)
for prereq in prereqs:
- prereqWithIxes = SCons.Util.adjustixes(
- prereq.target_node, lib_builder.get_prefix(env), lib_builder.get_suffix(env))
+ prereqWithIxes = SCons.Util.adjustixes(prereq.target_node, lib_builder.get_prefix(env),
+ lib_builder.get_suffix(env))
prereq.target_node = lib_node_factory(prereqWithIxes)
for t in target:
@@ -264,16 +270,16 @@ def libdeps_emitter(target, source, env):
for dependent in env.get('LIBDEPS_DEPENDENTS', []):
if dependent is None:
continue
- dependentWithIxes = SCons.Util.adjustixes(
- dependent, lib_builder.get_prefix(env), lib_builder.get_suffix(env))
+ dependentWithIxes = SCons.Util.adjustixes(dependent, lib_builder.get_prefix(env),
+ lib_builder.get_suffix(env))
dependentNode = lib_node_factory(dependentWithIxes)
__append_direct_libdeps(dependentNode, [dependency(target[0], False, dependency.Public)])
for dependent in env.get('PROGDEPS_DEPENDENTS', []):
if dependent is None:
continue
- dependentWithIxes = SCons.Util.adjustixes(
- dependent, prog_builder.get_prefix(env), prog_builder.get_suffix(env))
+ dependentWithIxes = SCons.Util.adjustixes(dependent, prog_builder.get_prefix(env),
+ prog_builder.get_suffix(env))
dependentNode = prog_node_factory(dependentWithIxes)
__append_direct_libdeps(dependentNode, [dependency(target[0], False, dependency.Public)])
@@ -372,9 +378,11 @@ def setup_environment(env, emitting_shared=False):
if 'init-no-global-side-effects' in env.Entry(lib).get_env().get('LIBDEPS_TAGS', []):
result.append(str(lib))
else:
- result.extend(env.subst('$LINK_WHOLE_ARCHIVE_LIB_START'
- '$TARGET'
- '$LINK_WHOLE_ARCHIVE_LIB_END', target=lib).split())
+ result.extend(
+ env.subst(
+ '$LINK_WHOLE_ARCHIVE_LIB_START'
+ '$TARGET'
+ '$LINK_WHOLE_ARCHIVE_LIB_END', target=lib).split())
return result
env['_LIBDEPS_LIBS_WITH_TAGS'] = expand_libdeps_with_extraction_flags
@@ -394,6 +402,7 @@ def setup_environment(env, emitting_shared=False):
except KeyError:
pass
+
def setup_conftests(conf):
def FindSysLibDep(context, name, libs, **kwargs):
var = "LIBDEPS_" + name.upper() + "_SYSLIBDEP"
@@ -406,4 +415,5 @@ def setup_conftests(conf):
return context.Result(result)
context.env[var] = __missing_syslib(name)
return context.Result(result)
+
conf.AddTest('FindSysLibDep', FindSysLibDep)