aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGalina Kistanova <gkistanova@gmail.com>2019-10-14 23:22:46 +0000
committerGalina Kistanova <gkistanova@gmail.com>2019-10-14 23:22:46 +0000
commite164dbb6aa370f51d154b228685818105d9487ea (patch)
tree0919f7d30985ed0c6445e2892311c5bcc3303e11
parent000e253dfe70274b952c7b6241d9eaa200720eda (diff)
Change SphinxDocsBuilder to use UnifiedTreeBuilder.
As a part of the Buildbot migration to GitHub monorepo we want to consolidate the places where the source code gets checked out. UnifiedTreeBuilder provides a good abstraction for that. Once UnifiedTreeBuilder will add a support for monorepo, the SphinxDocsBuilder users should be fine. Patch by Alex Orlov. Differential Revision: https://reviews.llvm.org/D68955 git-svn-id: https://llvm.org/svn/llvm-project/zorg/trunk@374843 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--zorg/buildbot/builders/SphinxDocsBuilder.py115
1 files changed, 36 insertions, 79 deletions
diff --git a/zorg/buildbot/builders/SphinxDocsBuilder.py b/zorg/buildbot/builders/SphinxDocsBuilder.py
index bde32238..9a2cc2b6 100644
--- a/zorg/buildbot/builders/SphinxDocsBuilder.py
+++ b/zorg/buildbot/builders/SphinxDocsBuilder.py
@@ -1,8 +1,5 @@
-import os
-import buildbot.process.factory
-from buildbot.steps.source import SVN
-from buildbot.steps.shell import ShellCommand
-from buildbot.process.properties import WithProperties
+from zorg.buildbot.builders import UnifiedTreeBuilder
+from zorg.buildbot.commands.CmakeCommand import CmakeCommand
from zorg.buildbot.commands.NinjaCommand import NinjaCommand
def getSphinxDocsBuildFactory(
@@ -13,90 +10,50 @@ def getSphinxDocsBuildFactory(
lld_html = False, # Build LLD HTML documentation
libcxx_html = False, # Build Libc++ HTML documentation
libunwind_html = False, # Build libunwind HTML documentation
- lldb_html = False # Build LLDB HTML documentation
- ):
-
- f = buildbot.process.factory.BuildFactory()
+ lldb_html = False, # Build LLDB HTML documentation
+ extra_configure_args = None,
+ **kwargs):
+
+ if extra_configure_args:
+ cmake_args = extra_configure_args[:]
+ else:
+ cmake_args = list()
+
+ # Set proper defaults for the config flags.
+ CmakeCommand.applyDefaultOptions(cmake_args, [
+ ('-G', 'Ninja'),
+ ('-DLLVM_ENABLE_SPHINX=', 'ON'),
+ ('-DSPHINX_OUTPUT_HTML=', 'ON'),
+ ('-DSPHINX_OUTPUT_MAN=', 'ON'),
+ ('-DLLDB_INCLUDE_TESTS=', 'OFF'),
+ ('-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=', 'ON'),
+ ('-DLLVM_ENABLE_ASSERTIONS=', 'OFF'),
+ ])
llvm_srcdir = 'llvm/src'
llvm_objdir = 'llvm/build'
- clang_srcdir = llvm_srcdir + '/tools/clang'
- clang_tools_srcdir = llvm_srcdir + '/tools/clang/tools/extra'
- lld_srcdir = llvm_srcdir + '/tools/lld'
- lldb_srcdir = llvm_srcdir + '/tools/lldb'
- libcxx_srcdir = llvm_srcdir + '/projects/libcxx'
- libcxxabi_srcdir = llvm_srcdir + '/projects/libcxxabi'
- libunwind_srcdir = llvm_srcdir + '/projects/libunwind'
-
- # Get LLVM. This is essential for all builds
- # because we build all subprojects in tree
- f.addStep(SVN(name='svn-llvm',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/llvm/',
- defaultBranch='trunk',
- workdir=llvm_srcdir))
+ depends_on_projects = ['llvm']
if clang_html or clang_tools_html or lldb_html:
- f.addStep(SVN(name='svn-clang',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/cfe/',
- defaultBranch='trunk',
- workdir=clang_srcdir))
-
+ depends_on_projects.append('clang')
if clang_tools_html:
- f.addStep(SVN(name='svn-clang-tools',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/clang-tools-extra/',
- defaultBranch='trunk',
- workdir=clang_tools_srcdir))
-
+ depends_on_projects.append('clang-tools-extra')
if lld_html:
- f.addStep(SVN(name='svn-lld',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/lld/',
- defaultBranch='trunk',
- workdir=lld_srcdir))
-
+ depends_on_projects.append('lld')
if lldb_html:
- f.addStep(SVN(name='svn-lldb',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/lldb/',
- defaultBranch='trunk',
- workdir=lldb_srcdir))
-
+ depends_on_projects.append('lldb')
if libcxx_html:
- f.addStep(SVN(name='svn-libcxx',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/libcxx/',
- defaultBranch='trunk',
- workdir=libcxx_srcdir))
- f.addStep(SVN(name='svn-libcxxabi',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/libcxxabi/',
- defaultBranch='trunk',
- workdir=libcxxabi_srcdir))
-
+ depends_on_projects.append('libcxx')
+ depends_on_projects.append('libcxxabi')
if libunwind_html:
- f.addStep(SVN(name='svn-libunwind',
- mode='update',
- baseURL='http://llvm.org/svn/llvm-project/libunwind/',
- defaultBranch='trunk',
- workdir=libunwind_srcdir))
-
- # Use CMake to configure
- cmakeCommand = [ "cmake",
- WithProperties('%s/' + llvm_srcdir, 'workdir'),
- '-G', 'Ninja',
- '-DLLVM_ENABLE_SPHINX:BOOL=ON',
- '-DSPHINX_OUTPUT_HTML:BOOL=ON',
- '-DSPHINX_OUTPUT_MAN:BOOL=ON',
- '-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON',
- '-DLLDB_INCLUDE_TESTS=OFF',
- ]
- f.addStep(ShellCommand(name="cmake-configure",
- command=cmakeCommand,
- description=["cmake configure"],
- workdir=llvm_objdir))
+ depends_on_projects.append('libunwind')
+
+ f = UnifiedTreeBuilder.getCmakeBuildFactory(
+ depends_on_projects=depends_on_projects,
+ llvm_srcdir=llvm_srcdir,
+ obj_dir=llvm_objdir,
+ extra_configure_args=cmake_args,
+ **kwargs) # Pass through all the extra arguments.
if llvm_html:
f.addStep(NinjaCommand(name="docs-llvm-html",