# same base name.
all_tests = set()
+# LLDB library directory.
+lldb_libs_dir = None
+
+
def shouldSkipBecauseOfCategories(test_categories):
if use_categories:
if len(test_categories) == 0 or len(
os.environ['CLANG_MODULE_CACHE_DIR'] = configuration.clang_module_cache_dir
+ if args.lldb_libs_dir:
+ configuration.lldb_libs_dir = args.lldb_libs_dir
+
# Gather all the dirs passed on the command line.
if len(args.args) > 0:
configuration.testdirs = [os.path.realpath(os.path.abspath(x)) for x in args.args]
# confusingly, this is the "bin" directory
lldbLibDir = os.path.dirname(lldbtest_config.lldbExec)
os.environ["LLDB_LIB_DIR"] = lldbLibDir
- lldbImpLibDir = os.path.join(
- lldbLibDir,
- '..',
- 'lib') if sys.platform.startswith('win32') else lldbLibDir
+ lldbImpLibDir = configuration.lldb_libs_dir
os.environ["LLDB_IMPLIB_DIR"] = lldbImpLibDir
print("LLDB library dir:", os.environ["LLDB_LIB_DIR"])
print("LLDB import library dir:", os.environ["LLDB_IMPLIB_DIR"])
dest='clang_module_cache_dir',
metavar='The clang module cache directory used by Clang',
help='The clang module cache directory used in the Make files by Clang while building tests. Defaults to <test build directory>/module-cache-clang.')
+ group.add_argument(
+ '--lldb-libs-dir',
+ dest='lldb_libs_dir',
+ metavar='path',
+ help='The path to LLDB library directory (containing liblldb)')
# Configuration options
group = parser.add_argument_group('Remote platform options')
stdflag = self.getstdFlag()
stdlibflag = self.getstdlibFlag()
- lib_dir = os.environ["LLDB_LIB_DIR"]
+ lib_dir = configuration.lldb_libs_dir
if self.hasDarwinFramework():
d = {'CXX_SOURCES': sources,
'EXE': exe_name,
os.path.join(
os.environ["LLDB_SRC"],
"include")),
- 'LD_EXTRAS': "-L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
+ 'LD_EXTRAS': "-L%s -llldb -Wl,-rpath,%s" % (lib_dir, lib_dir)}
if self.TraceOn():
print(
"Building LLDB Driver (%s) from sources %s" %
stdflag = self.getstdFlag()
- lib_dir = os.environ["LLDB_LIB_DIR"]
+ lib_dir = configuration.lldb_libs_dir
if self.hasDarwinFramework():
d = {'DYLIB_CXX_SOURCES': sources,
'DYLIB_NAME': lib_name,
os.path.join(
os.environ["LLDB_SRC"],
"include")),
- 'LD_EXTRAS': "-shared -L%s/../lib -llldb -Wl,-rpath,%s/../lib" % (lib_dir, lib_dir)}
+ 'LD_EXTRAS': "-shared -L%s -llldb -Wl,-rpath,%s" % (lib_dir, lib_dir)}
if self.TraceOn():
print(
"Building LLDB Library (%s) from sources %s" %
if config.filecheck:
dotest_cmd += ['--filecheck', config.filecheck]
+if config.lldb_libs_dir:
+ dotest_cmd += ['--lldb-libs-dir', config.lldb_libs_dir]
+
# We don't want to force users passing arguments to lit to use `;` as a
# separator. We use Python's simple lexical analyzer to turn the args into a
# list. Pass there arguments last so they can override anything that was
config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@"
config.lldb_obj_root = "@LLDB_BINARY_DIR@"
config.lldb_src_root = "@LLDB_SOURCE_DIR@"
+config.lldb_libs_dir = "@LLDB_LIBS_DIR@"
config.cmake_cxx_compiler = "@CMAKE_CXX_COMPILER@"
config.host_os = "@HOST_OS@"
config.host_triple = "@LLVM_HOST_TRIPLE@"