[zorg] r233994 - Add support for a cmake RelWithDebug Stage 2 build
Chris Matthews
cmatthews5 at apple.com
Thu Apr 2 18:30:34 PDT 2015
Author: cmatthews
Date: Thu Apr 2 20:30:34 2015
New Revision: 233994
URL: http://llvm.org/viewvc/llvm-project?rev=233994&view=rev
Log:
Add support for a cmake RelWithDebug Stage 2 build
Modified:
zorg/trunk/test/jenkins/test_build.py
zorg/trunk/zorg/jenkins/build.py
Modified: zorg/trunk/test/jenkins/test_build.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/test/jenkins/test_build.py?rev=233994&r1=233993&r2=233994&view=diff
==============================================================================
--- zorg/trunk/test/jenkins/test_build.py (original)
+++ zorg/trunk/test/jenkins/test_build.py Thu Apr 2 20:30:34 2015
@@ -65,9 +65,11 @@
# CMake
-# RUN: python %{src_root}/zorg/jenkins/build.py cmake all > %t-cmake.log
+# RUN: python %{src_root}/zorg/jenkins/build.py cmake all --debug > %t-cmake.log
# RUN: FileCheck --check-prefix CHECK-CMAKE < %t-cmake.log %s
-# CHECK-CMAKE: '/usr/local/bin/cmake' '-G' 'Ninja' '-DCMAKE_BUILD_TYPE=Debug' '-DLLVM_ENABLE_ASSERTIONS=On' '-DCMAKE_INSTALL_PREFIX=
+# CHECK-CMAKE: '/usr/local/bin/cmake' '-G' 'Ninja'
+# CHECK-CMAKE: '-DCMAKE_BUILD_TYPE=Debug'
+# CHECK-CMAKE: '-DLLVM_ENABLE_ASSERTIONS=Off'
# CHECK-CMAKE: -DLLVM_LIT_ARGS=--xunit-xml-output=testresults.xunit.xml -v
# CHECK-CMAKE: '/usr/local/bin/ninja'
# CHECK-CMAKE: '/usr/local/bin/ninja' 'check' 'check-clang'
@@ -109,19 +111,7 @@
# RUN: cd %t.SANDBOX; python %{src_root}/zorg/jenkins/build.py derive-lldb
# RUN: cd %t.SANDBOX; python %{src_root}/zorg/jenkins/build.py derive-llvm+clang
+# RUN: cd %t.SANDBOX; python %{src_root}/zorg/jenkins/build.py derive-llvm
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+# RUN: python %{src_root}/zorg/jenkins/build.py cmake all --lto
+# RUN: python %{src_root}/zorg/jenkins/build.py cmake all --cmake-type=RelWithDebugInfo
Modified: zorg/trunk/zorg/jenkins/build.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/jenkins/build.py?rev=233994&r1=233993&r2=233994&view=diff
==============================================================================
--- zorg/trunk/zorg/jenkins/build.py (original)
+++ zorg/trunk/zorg/jenkins/build.py Thu Apr 2 20:30:34 2015
@@ -44,7 +44,7 @@ class Configuration(object):
def __init__(self, args):
super(Configuration, self).__init__()
self._args = args
- self.workspace = os.environ.get('WORKSPACE', os.getcwd())
+ self.workspace = os.environ.get('WORKSPACE', os.getcwd())
self._src_dir = os.environ.get('SRC_DIR', 'llvm')
self._lldb_src_dir = os.environ.get('LLDB_SRC_DIR', 'lldb')
self._build_dir = os.environ.get('BUILD_DIR', 'clang-build')
@@ -111,13 +111,32 @@ def cmake_builder(target):
"""Run a build_type build using cmake and ninja."""
check_repo_state(conf.workspace)
if conf.assertions:
- assert False, "Unimplemented, all builds have assertions"
+ asserts = "-DLLVM_ENABLE_ASSERTIONS=On"
+ else:
+ asserts = "-DLLVM_ENABLE_ASSERTIONS=Off"
+
+ lto_flags = []
+ if conf.lto:
+ lto_flags = ["-DCMAKE_C_FLAGS=-flto", "-DCMAKE_CXX_FLAGS=-flto"]
+
+ host_compiler_flags = []
+ if conf.CC():
+ host_compiler_flags.append('-DCMAKE_C_COMPILER=' + conf.CC())
+ host_compiler_flags.append('-DCMAKE_CXX_COMPOLER=' + conf.CC()+"++")
+
+ type_flag = "-DCMAKE_BUILD_TYPE=Debug" if conf.debug else \
+ "-DCMAKE_BUILD_TYPE=Release"
+
+ if conf.cmake_build_type:
+ type_flag = "-DCMAKE_BUILD_TYPE=" + conf.cmake_build_type
cmake_cmd = ["/usr/local/bin/cmake",
- "-G", "Ninja", "-DCMAKE_BUILD_TYPE=Debug","-DLLVM_ENABLE_ASSERTIONS=On",
- "-DCMAKE_INSTALL_PREFIX=" + conf.installdir(),
- conf.srcdir(),
- '-DLLVM_LIT_ARGS=--xunit-xml-output=testresults.xunit.xml -v']
+ "-G", "Ninja", type_flag,
+ asserts,
+ "-DCMAKE_INSTALL_PREFIX=" + conf.installdir(),
+ conf.srcdir(),
+ '-DLLVM_LIT_ARGS=--xunit-xml-output=testresults.xunit.xml -v'] \
+ + lto_flags + host_compiler_flags
if target == 'all' or target == 'build':
header("Cmake")
@@ -130,7 +149,7 @@ def cmake_builder(target):
if target == 'all' or target == 'test':
header("Ninja test")
run_cmd(conf.builddir(), ["/usr/local/bin/ninja",
- 'check', 'check-clang'])
+ 'check', 'check-clang'])
footer()
if target == 'all' or target == 'testlong':
@@ -159,7 +178,7 @@ def clang_builder(target):
configure_cmd.append('CC='+conf.CC())
configure_cmd.append('CXX='+conf.CC()+"++")
- rev_str = "CLANG_REPOSITORY_STRING={}".format(conf.job_name)
+ rev_str = "CLANG_REPOSITORY_STRING={}".format(conf.job_name)
svn_rev_str = "SVN_REVISION={}".format(conf.svn_rev)
llvm_rev = "LLVM_VERSION_INFO= ({}: trunk {})".format(
conf.job_name, conf.svn_rev)
@@ -189,7 +208,7 @@ def clang_builder(target):
header("Upload artifact")
build_upload_artifact()
footer()
-
+
if target == 'test' or target == 'all':
header("Make Check")
run_cmd(conf.builddir(), make_check)
@@ -320,7 +339,7 @@ def rsync(conf, tree, repo, repos):
def derive(tree, repos):
"""Build a derived src tree from all the svn repos.
- Try to do this in a way that is pretty fast if the
+ Try to do this in a way that is pretty fast if the
derived tree is already there.
"""
@@ -395,21 +414,21 @@ def build_upload_artifact():
run_cmd(conf.installdir(), tar)
upload_cmd = ["scp", artifact_name,
- "buildslave@" + SERVER + ":/Library/WebServer/Documents/artifacts/" +
+ "buildslave@" + SERVER + ":/Library/WebServer/Documents/artifacts/" +
conf.job_name + "/"]
run_cmd(conf.workspace, upload_cmd)
upload_cmd = ["scp", prop_file,
- "buildslave@" + SERVER + ":/Library/WebServer/Documents/artifacts/" +
+ "buildslave@" + SERVER + ":/Library/WebServer/Documents/artifacts/" +
conf.job_name + "/"]
run_cmd(conf.workspace, upload_cmd)
- ln_cmd = ["ssh", "buildslave@" + SERVER,
- "ln", "-fs", "/Library/WebServer/Documents/artifacts/" +
+ ln_cmd = ["ssh", "buildslave@" + SERVER,
+ "ln", "-fs", "/Library/WebServer/Documents/artifacts/" +
conf.job_name + "/" + artifact_name,
- "/Library/WebServer/Documents/artifacts/" +
+ "/Library/WebServer/Documents/artifacts/" +
conf.job_name + "/latest" ]
run_cmd(conf.workspace, ln_cmd)
@@ -428,14 +447,14 @@ def run_cmd(working_dir, cmd):
subprocess.check_call(cmd)
os.chdir(old_cwd)
end_time = datetime.datetime.now()
-
+
logging.info("Command took {} seconds".format(
(end_time-start_time).seconds))
KNOWN_TARGETS = ['all', 'build', 'test', 'testlong']
-KNOWN_BUILDS = ['clang', 'cmake', 'lldb', 'fetch', 'artifact', \
- 'derive', 'derive-llvm+clang', 'derive-lldb']
+KNOWN_BUILDS = ['clang', 'cmake', 'lldb', 'fetch', 'artifact',
+ 'derive', 'derive-llvm+clang', 'derive-lldb', 'derive-llvm']
def parse_args():
@@ -445,14 +464,20 @@ def parse_args():
description='Build and test compilers and other things.')
parser.add_argument("build_type",
- help="The kind of build to trigger.", choices=KNOWN_BUILDS)
+ help="The kind of build to trigger.",
+ choices=KNOWN_BUILDS)
- parser.add_argument("build_target", nargs='?',
- help="The targets to call (build, check, etc).", choices=KNOWN_TARGETS)
+ parser.add_argument("build_target",
+ nargs='?',
+ help="The targets to call (build, check, etc).",
+ choices=KNOWN_TARGETS)
parser.add_argument('--assertions', dest='assertions', action='store_true')
parser.add_argument('--lto', dest='lto', action='store_true')
-
+ parser.add_argument('--debug', dest='debug', action='store_true')
+ parser.add_argument('--cmake-type', dest='cmake_build_type',
+ help="Override cmake type Release, Debug, "
+ "RelWithDebInfo and MinSizeRel")
args = parser.parse_args()
return args
@@ -475,6 +500,8 @@ def main():
derive_llvm()
elif args.build_type == 'derive-llvm+clang':
derive_llvm(['llvm', 'clang'])
+ elif args.build_type == 'derive-llvm':
+ derive_llvm(['llvm'])
elif args.build_type == 'derive-lldb':
derive_lldb()
elif args.build_type == 'fetch':
More information about the llvm-commits
mailing list