[zorg] r368391 - [monorepo] Support build-tree and install-tree standalone builds.
Jonas Devlieghere via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 8 20:34:13 PDT 2019
Author: jdevlieghere
Date: Thu Aug 8 20:34:12 2019
New Revision: 368391
URL: http://llvm.org/viewvc/llvm-project?rev=368391&view=rev
Log:
[monorepo] Support build-tree and install-tree standalone builds.
LLDB can build against an llvm build tree, as well as against an llvm
install tree. Our standalone bot tests both configurations.
Modified:
zorg/trunk/zorg/jenkins/monorepo_build.py
Modified: zorg/trunk/zorg/jenkins/monorepo_build.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/jenkins/monorepo_build.py?rev=368391&r1=368390&r2=368391&view=diff
==============================================================================
--- zorg/trunk/zorg/jenkins/monorepo_build.py (original)
+++ zorg/trunk/zorg/jenkins/monorepo_build.py Thu Aug 8 20:34:12 2019
@@ -106,8 +106,9 @@ class Configuration(object):
self._lldb_src_dir = os.environ.get('LLDB_SRC_DIR', 'lldb')
self._build_dir = os.environ.get('BUILD_DIR', 'clang-build')
self._lldb_build_dir = os.environ.get('LLDB_BUILD_DIR', 'lldb-build')
- self._lldb_standalone_build_dir = os.environ.get('LLDB_BUILD_DIR', 'lldb-standalone-build')
- self._lldb_xcode_build_dir = os.environ.get('LLDB_BUILD_DIR', 'lldb-xcode-build')
+ self._lldb_standalone_build_dir = os.environ.get('LLDB_STANDALONE_BUILD_DIR', 'lldb-standalone-build')
+ self._lldb_standalone_type = os.environ.get('LLDB_STANDALONE_TYPE', 'build-tree')
+ self._lldb_xcode_build_dir = os.environ.get('LLDB_XCODE_BUILD_DIR', 'lldb-xcode-build')
self._lldb_install_dir = os.environ.get('LLDB_INSTALL_DIR', 'lldb-install')
self._install_dir = os.environ.get('INSTALL_DIR', 'clang-install')
self.j_level = os.environ.get('J_LEVEL', None)
@@ -146,9 +147,9 @@ class Configuration(object):
"""The derived source directory for this lldb build."""
return os.path.join(self.workspace, self._lldb_build_dir)
- def lldbstandalonebuilddir(self):
+ def lldbstandalonebuilddir(self, standalone_type):
"""The derived source directory for this lldb standalone build."""
- return os.path.join(self.workspace, self._lldb_standalone_build_dir)
+ return os.path.join(self.workspace, standalone_type, self._lldb_standalone_build_dir)
def lldbxcodebuilddir(self):
"""The derived source directory for this lldb Xcode build."""
@@ -166,6 +167,10 @@ class Configuration(object):
"""The install directory for the compile."""
return os.path.join(self.workspace, self._install_dir)
+ def lldbstandalonetype(self):
+ """The type of standalone build: against the build or install tree."""
+ return self._lldb_standalone_type;
+
def CC(self):
"""Location of the host compiler, if one is present in this build."""
cc_basedir = os.path.join(self.workspace, 'host-compiler/')
@@ -541,11 +546,24 @@ def lldb_cmake_builder(target):
def lldb_cmake_standalone_builder(target):
"""Do a CMake standalone build of lldb."""
+ standalone_type = conf.lldbstandalonetype()
+ if standalone_type == "install-tree":
+ llvm_dir = os.path.join(conf.installdir(), 'lib', 'cmake', 'llvm')
+ clang_dir = os.path.join(conf.installdir(), 'lib', 'cmake', 'clang')
+ elif standalone_type == "build-tree":
+ llvm_dir = os.path.join(conf.builddir(), 'lib', 'cmake', 'llvm')
+ clang_dir = os.path.join(conf.builddir(), 'lib', 'cmake', 'clang')
+ else:
+ raise RuntimeError(
+ 'Unknown standalone build type: {}'.format(standalone_type))
+
test_dir = os.path.join(conf.workspace, 'test')
log_dir = os.path.join(test_dir, 'logs')
results_file = os.path.join(test_dir, 'results.xml')
- test_build_dir = os.path.join(conf.lldbstandalonebuilddir(), 'lldb-test-build.noindex')
- create_dirs([conf.lldbstandalonebuilddir(), test_dir, log_dir, test_build_dir])
+ test_build_dir = os.path.join(conf.lldbstandalonebuilddir(
+ standalone_type), 'lldb-test-build.noindex')
+ create_dirs([conf.lldbstandalonebuilddir(standalone_type),
+ test_dir, log_dir, test_build_dir])
cmake_build_type = conf.cmake_build_type if conf.cmake_build_type else 'RelWithDebInfo'
dotest_args = [
'--arch', 'x86_64', '--build-dir', test_build_dir,
@@ -553,25 +571,26 @@ def lldb_cmake_standalone_builder(target
]
dotest_args.extend(conf.dotest_flags)
- llvm_dir = os.path.join(conf.installdir(), 'lib', 'cmake', 'llvm')
- clang_dir = os.path.join(conf.installdir(), 'lib', 'cmake', 'clang')
- external_lit = os.path.join(conf.builddir(), 'bin', 'llvm-lit')
-
cmake_cmd = ['/usr/local/bin/cmake', '-G', 'Ninja',
conf.lldbsrcdir(),
'-DCMAKE_BUILD_TYPE={}'.format(cmake_build_type),
'-DCMAKE_EXPORT_COMPILE_COMMANDS=ON',
'-DCMAKE_MAKE_PROGRAM={}'.format(NINJA),
'-DLLDB_TEST_USER_ARGS='+';'.join(dotest_args),
- '-DLLVM_ENABLE_ASSERTIONS:BOOL={}'.format("TRUE" if conf.assertions else "FALSE"),
+ '-DLLVM_ENABLE_ASSERTIONS:BOOL={}'.format(
+ "TRUE" if conf.assertions else "FALSE"),
'-DLLVM_ENABLE_MODULES=Off',
'-DLLVM_DIR={}'.format(llvm_dir),
'-DClang_DIR={}'.format(clang_dir),
- '-DLLVM_EXTERNAL_LIT={}'.format(external_lit),
- '-DLLVM_LIT_ARGS=--xunit-xml-output={} -v'.format(results_file),
+ '-DLLVM_LIT_ARGS=--xunit-xml-output={} -v'.format(
+ results_file),
'-DLLVM_VERSION_PATCH=99']
cmake_cmd.extend(conf.cmake_flags)
+ if standalone_type == "install-tree":
+ external_lit = os.path.join(conf.builddir(), 'bin', 'llvm-lit')
+ cmake_cmd.extend(['-DLLVM_LIT_ARGS=--xunit-xml-output={} -v'.format(results_file)])
+
if conf.CC():
cmake_cmd.extend(['-DCMAKE_C_COMPILER=' + conf.CC(),
'-DCMAKE_CXX_COMPILER=' + conf.CC() + "++"])
@@ -582,17 +601,11 @@ def lldb_cmake_standalone_builder(target
if target == 'all' or target == 'build':
header("CMake")
- run_cmd(conf.lldbstandalonebuilddir(), cmake_cmd)
+ run_cmd(conf.lldbstandalonebuilddir(standalone_type), cmake_cmd)
footer()
header("Build")
- run_cmd(conf.lldbstandalonebuilddir(), [NINJA, '-v'])
- footer()
-
- if target == 'all' or target == 'test' or target == 'testlong':
- header("Run Tests")
- run_cmd(conf.lldbstandalonebuilddir(),
- ['/usr/bin/env', 'TERM=vt100', NINJA, '-v', 'check-lldb'])
+ run_cmd(conf.lldbstandalonebuilddir(standalone_type), [NINJA, '-v'])
footer()
More information about the llvm-commits
mailing list