def prepend_ld_library_path(env, overrides, **kwargs): """Prepend LD_LIBRARY_PATH with LIBPATH to run successfully programs that were linked against local shared libraries.""" # make it unique but preserve order ... libpath = uniquer(Split(kwargs.get('CXXTEST_LIBPATH', [])) + Split(env.get( 'CXXTEST_LIBPATH', []))) if len(libpath) > 0: libpath = env.arg2nodes(libpath, env.fs.Dir) platform = env.get('PLATFORM','') if platform == 'win32': var = 'PATH' else: var = 'LD_LIBRARY_PATH' eenv = overrides.get('ENV', env['ENV'].copy()) canonicalize = lambda p : p.abspath eenv[var] = PrependPath(eenv.get(var,''), libpath, os.pathsep, 1, canonicalize) overrides['ENV'] = eenv return overrides
def _arg2builders(env, arg): """Convert an argument to a list of builder objects it refers to. :Parameters: env : SCons.Environment.Environment a SCons Environment object arg an argument to be converted to a builders, may be builder name, builder object or a list of (intermixed) builder names/objects. The returned list contains no repetitions (objects are unique). """ from SCons.Util import is_List, uniquer if not is_List(arg): arg = [ arg ] # Make it unique (but preserve order) # uniquer() is in SCons since 1.0.0 so it should be fine arg = uniquer(arg) builders = map(lambda b : _arg2builder(env,b), arg) return [b for b in builders if b is not None]
def _arg2builders(env, arg): """Convert an argument to a list of builder objects it refers to. :Parameters: env : SCons.Environment.Environment a SCons Environment object arg an argument to be converted to a builders, may be builder name, builder object or a list of (intermixed) builder names/objects. The returned list contains no repetitions (objects are unique). """ from SCons.Util import is_List, uniquer if not is_List(arg): arg = [arg] # Make it unique (but preserve order) # uniquer() is in SCons since 1.0.0 so it should be fine arg = uniquer(arg) builders = map(lambda b: _arg2builder(env, b), arg) return [b for b in builders if b is not None]