diff options
-rw-r--r-- | clang/test/Unit/lit.cfg.py | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/clang/test/Unit/lit.cfg.py b/clang/test/Unit/lit.cfg.py index c4794ccbe58..f4bcdd76d17 100644 --- a/clang/test/Unit/lit.cfg.py +++ b/clang/test/Unit/lit.cfg.py @@ -35,17 +35,23 @@ for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']: if symbolizer in os.environ: config.environment[symbolizer] = os.environ[symbolizer] -shlibpath_var = '' -if platform.system() == 'Linux': - shlibpath_var = 'LD_LIBRARY_PATH' -elif platform.system() == 'Darwin': - shlibpath_var = 'DYLD_LIBRARY_PATH' -elif platform.system() == 'Windows': - shlibpath_var = 'PATH' - -# in stand-alone builds, shlibdir is clang's build tree -# while llvm_libs_dir is installed LLVM (and possibly older clang) -shlibpath = os.path.pathsep.join((config.shlibdir, config.llvm_libs_dir, - config.environment.get(shlibpath_var,''))) - -config.environment[shlibpath_var] = shlibpath +def find_shlibpath_var(): + if platform.system() in ['Linux', 'FreeBSD', 'NetBSD']: + yield 'LD_LIBRARY_PATH' + elif platform.system() == 'Darwin': + yield 'DYLD_LIBRARY_PATH' + elif platform.system() == 'Windows': + yield 'PATH' + +for shlibpath_var in find_shlibpath_var(): + # in stand-alone builds, shlibdir is clang's build tree + # while llvm_libs_dir is installed LLVM (and possibly older clang) + shlibpath = os.path.pathsep.join( + (config.shlibdir, + config.llvm_libs_dir, + config.environment.get(shlibpath_var, ''))) + config.environment[shlibpath_var] = shlibpath + break +else: + lit_config.warning("unable to inject shared library path on '{}'" + .format(platform.system())) |