Index: buildbot/buildbot_run.py |
=================================================================== |
--- buildbot/buildbot_run.py (revision 1794) |
+++ buildbot/buildbot_run.py (working copy) |
@@ -23,6 +23,8 @@ |
TRUNK_DIR = os.path.dirname(BUILDBOT_DIR) |
ROOT_DIR = os.path.dirname(TRUNK_DIR) |
ANDROID_DIR = os.path.join(ROOT_DIR, 'android') |
+CMAKE_DIR = os.path.join(ROOT_DIR, 'cmake') |
+CMAKE_BIN_DIR = os.path.join(CMAKE_DIR, 'bin') |
OUT_DIR = os.path.join(TRUNK_DIR, 'out') |
@@ -34,6 +36,43 @@ |
sys.exit(1) |
+def PrepareCmake(): |
+ """Build CMake 2.8.8 since the version in Precise is 2.8.7.""" |
+ if os.environ['BUILDBOT_CLOBBER'] == '1': |
+ print '@@@BUILD_STEP Clobber CMake checkout@@@' |
+ shutil.rmtree(CMAKE_DIR) |
+ |
+ # We always build CMake 2.8.8, so no need to do anything |
+ # if the directory already exists. |
+ if os.path.isdir(CMAKE_DIR): |
+ return |
+ |
+ print '@@@BUILD_STEP Initialize CMake checkout@@@' |
+ os.mkdir(CMAKE_DIR) |
+ CallSubProcess(['git', 'config', '--global', 'user.name', 'trybot']) |
+ CallSubProcess(['git', 'config', '--global', |
+ 'user.email', 'chrome-bot@google.com']) |
+ CallSubProcess(['git', 'config', '--global', 'color.ui', 'false']) |
+ |
+ print '@@@BUILD_STEP Sync CMake@@@' |
+ CallSubProcess( |
+ ['git', 'clone', |
+ '--depth', '1', |
+ '--single-branch', |
+ '--branch', 'v2.8.8', |
+ '--', |
+ 'git://cmake.org/cmake.git', |
+ CMAKE_DIR], |
+ cwd=CMAKE_DIR) |
+ |
+ print '@@@BUILD_STEP Build CMake@@@' |
+ CallSubProcess( |
+ ['/bin/bash', 'bootstrap', '--prefix=%s' % CMAKE_DIR], |
+ cwd=CMAKE_DIR) |
+ |
+ CallSubProcess( ['make', 'cmake'], cwd=CMAKE_DIR) |
+ |
+ |
def PrepareAndroidTree(): |
"""Prepare an Android tree to run 'android' format tests.""" |
if os.environ['BUILDBOT_CLOBBER'] == '1': |
@@ -91,6 +130,7 @@ |
'--all', |
'--passed', |
'--format', format, |
+ '--path', CMAKE_BIN_DIR, |
'--chdir', 'trunk']) |
if format == 'android': |
# gyptest needs the environment setup from envsetup/lunch in order to build |
@@ -124,6 +164,8 @@ |
elif sys.platform.startswith('linux'): |
retcode += GypTestFormat('ninja') |
retcode += GypTestFormat('make') |
+ PrepareCmake() |
+ retcode += GypTestFormat('cmake') |
elif sys.platform == 'darwin': |
retcode += GypTestFormat('ninja') |
retcode += GypTestFormat('xcode') |