[zorg] r224726 - Added new Windows builder/slave for LLDB, with the following properties:

Galina Kistanova gkistanova at gmail.com
Mon Dec 22 12:17:52 PST 2014


Author: gkistanova
Date: Mon Dec 22 14:17:51 2014
New Revision: 224726

URL: http://llvm.org/viewvc/llvm-project?rev=224726&view=rev
Log:
Added new Windows builder/slave for LLDB, with the following properties:
1) Only builds x86.
2) Only compiles, does not run tests.
3) Uses MSVC 2013 as the compiler, with the CMake / ninja generator.

Patch by Zachary Turner!

Modified:
    zorg/trunk/buildbot/osuosl/master/config/builders.py
    zorg/trunk/buildbot/osuosl/master/config/slaves.py
    zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py

Modified: zorg/trunk/buildbot/osuosl/master/config/builders.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/builders.py?rev=224726&r1=224725&r2=224726&view=diff
==============================================================================
--- zorg/trunk/buildbot/osuosl/master/config/builders.py (original)
+++ zorg/trunk/buildbot/osuosl/master/config/builders.py Mon Dec 22 14:17:51 2014
@@ -609,6 +609,40 @@ def _get_lldb_builders():
          'factory': LLDBBuilder.getLLDBBuildFactory(triple=None, # use default
                                                     make='gmake',
                                                     extra_configure_args=['--enable-cxx11', '--enable-optimized', '--enable-assertions'])},
+        {'name': "lldb-x86-windows-msvc",
+         'slavenames': ["zturner-win2008"],
+         'builddir': "lldb-windows-x86",
+         'factory': LLDBBuilder.getLLDBWindowsCMakeBuildFactory(triple=None, # use default
+                                                                config=Debug,
+                                                                # This sets up the environment to be identical to what would happen if you ran vcvarsall.bat
+                                                                # which is a required step before invoking the compiler, linker, or for CMake to even be
+                                                                # able to generate the relevant ninja.
+                                                                env={
+                                                                    'PATH': 'C:\\Program Files (x86)\\MSBuild\\12.0\\bin;' +
+                                                                            'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\;' +
+                                                                            'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\BIN;' +
+                                                                            'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\Tools;' +
+                                                                            'C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319;' +
+                                                                            'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\VCPackages;' +
+                                                                            'C:\\Program Files (x86)\\Windows Kits\\8.1\\bin\\x86;',
+                                                                    'DevEnvDir': 'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\',
+                                                                    'ExtensionSdkDir': 'C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1\\ExtensionSDKs\\',
+                                                                    'Framework40Version': 'v4.0',
+                                                                    'FrameworkDir': 'C:\\Windows\\Microsoft.NET\\Framework\\',
+                                                                    'FrameworkDIR32': 'C:\\Windows\\Microsoft.NET\\Framework\\',
+                                                                    'FrameworkVersion': 'v4.0.30319',
+                                                                    'FrameworkVersion32': 'v4.0.30319',
+                                                                    'INCLUDE': 'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\INCLUDE;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\INCLUDE;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\shared;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\um;C:\\Program Files (x86)\\Windows Kits\\8.1\\include\\winrt;',
+                                                                    'LIB': 'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB;C:\\Program Files (x86)\\Windows Kits\\8.1\\lib\\winv6.3\\um\\x86;',
+                                                                    'LIBPATH': 'C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB;C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\ATLMFC\\LIB;',
+                                                                    'VCINSTALLDIR': 'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\',
+                                                                    'VisualStudioVersion': '12.0',
+                                                                    'VSINSTALLDIR': 'C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\',
+                                                                    'WindowsSdkDir': 'C:\\Program Files (x86)\\Windows Kits\\8.1\\',
+                                                                    'WindowsSDK_ExecutablePath_x64': 'C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1 Tools\\x64\\',
+                                                                    'WindowsSDK_ExecutablePath_x86': 'C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1 Tools\\',
+                                                                }
+                                                                )},
        ]
 
 # Offline.

Modified: zorg/trunk/buildbot/osuosl/master/config/slaves.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/slaves.py?rev=224726&r1=224725&r2=224726&view=diff
==============================================================================
--- zorg/trunk/buildbot/osuosl/master/config/slaves.py (original)
+++ zorg/trunk/buildbot/osuosl/master/config/slaves.py Mon Dec 22 14:17:51 2014
@@ -169,6 +169,9 @@ def get_build_slaves():
         create_slave('ericwf-buildslave2', properties={'jobs': 4}, max_builds=2),
         # OS X 10.10 x86_64, Intel Core 2 Duo @ 2.40GHz
         create_slave("ericwf-osx-slave", properties={'jobs': 2}, max_builds=1),
+
+        # Windows Server 2008 R2, Quad 2.6GHz Intel Xeon(R) 4GB RAM
+        create_slave("zturner-win2008", properties={'jobs': 4}, max_builds=1),
         # Defunct.
 
 #        # GCC Compile Farm Slaves, see http://gcc.gnu.org/wiki/CompileFarm

Modified: zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py?rev=224726&r1=224725&r2=224726&view=diff
==============================================================================
--- zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py (original)
+++ zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py Mon Dec 22 14:17:51 2014
@@ -8,6 +8,84 @@ from buildbot.steps.shell import ShellCo
 from buildbot.process.properties import WithProperties
 from zorg.buildbot.commands.LitTestCommand import LitTestCommand
 
+# CMake Windows builds
+def getLLDBWindowsCMakeBuildFactory(
+            clean=True,
+            cmake='cmake',
+            jobs=None,
+
+            config='Release',
+
+            # Environmental variables for all steps.
+            env={},
+            extra_cmake_args=[]):
+
+    ############# PREPARING
+    f = buildbot.process.factory.BuildFactory()
+
+    # We *must* checkout at least Clang, LLVM, and LLDB.  Once we add a step to run
+    # tests (e.g. ninja check-lldb), we will also need to add a step for LLD, since
+    # MSVC LD.EXE cannot link executables with DWARF debug info.
+    f.addStep(SVN(name='svn-llvm',
+                  mode='update', baseURL='http://llvm.org/svn/llvm-project/llvm/',
+                  defaultBranch='trunk',
+                  workdir='llvm'))
+    f.addStep(SVN(name='svn-clang',
+                  mode='update', baseURL='http://llvm.org/svn/llvm-project/cfe/',
+                  defaultBranch='trunk',
+                  workdir='llvm/tools/clang'))
+    f.addStep(SVN(name='svn-lldb',
+                  mode='update', baseURL='http://llvm.org/svn/llvm-project/lldb/',
+                  defaultBranch='trunk',
+                  workdir='llvm/tools/lldb'))
+
+    # If jobs not defined, Ninja will choose a suitable value
+    jobs_cmd=[]
+    if jobs is not None:
+        jobs_cmd=["-j"+str(jobs)]
+    ninja_cmd=['ninja'] + jobs_cmd
+
+    # Global configurations
+    build_dir='build'
+
+    ############# CLEANING
+    if clean:
+        f.addStep(ShellCommand(name='clean',
+                               command=['rmdir', '/S/Q', build_dir],
+                               warnOnFailure=True,
+                               description='Cleaning',
+                               descriptionDone='clean',
+                               workdir='.',
+                               env=env))
+
+    # Use batch files instead of ShellCommand directly, Windows quoting is
+    # borked. FIXME: See buildbot ticket #595 and buildbot ticket #377.
+    f.addStep(batch_file_download.BatchFileDownload(name='cmakegen',
+                                command=[cmake, "-G", "Ninja", "../llvm",
+                                         "-DCMAKE_BUILD_TYPE="+config,
+                                         # Need to use our custom built version of python
+                                         "-DPYTHON_LIBRARY=C:\\src\\python\\PCbuild\\python27_d.lib",
+                                         "-DPYTHON_INCLUDE_DIR=C:\\src\\python\\Include",
+                                         "-DPYTHON_EXECUTABLE=C:\\src\\python\\PCbuild\\python_d.exe"]
+                                         + extra_cmake_args,
+                                workdir=build_dir))
+
+    f.addStep(ShellCommand(name='cmake',
+                           command=['cmakegen.bat'],
+                           haltOnFailure=True,
+                           description='cmake gen',
+                           workdir=build_dir,
+                           env=env))
+
+    f.addStep(WarningCountingShellCommand(name='build',
+                                          command=ninja_cmd,
+                                          haltOnFailure=True,
+                                          description='ninja build',
+                                          workdir=build_dir,
+                                          env=env))
+
+    return f
+
 def getLLDBBuildFactory(
             triple,
             outOfDir=False,





More information about the llvm-commits mailing list