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

Galina Kistanova gkistanova at gmail.com
Mon Dec 22 14:01:50 PST 2014


Hi Rick,

Sorry for forcing you to merge.

Agree, using raw strings for Windows paths everywhere we have to have them
is more clean and easier to read.

As of the Windows envs, I'm not even sure we need to merge them for the
builder. So far it seems more clean to require the VS envs and paths to be
set correctly for the buildslave account locally on a slave.

Thanks

Galina





On Mon, Dec 22, 2014 at 1:44 PM, Rick Foos <rfoos at codeaurora.org> wrote:

>  Hi Galina,
>
> ack, and I fixed all the merge conflicts with mine :)
>
> I have an alternate way to the long windows env string. Doing a set on the
> host and using slave2env creates a dictionary off all the host variables.
> That way it works on any windows slave you have set up correctly.
>
> If you must do windows environment variables, you will live a lot easier
> if you use raw strings:
>
> {
>
> 'PATH': r'C:\Program Files (x86)\MSBuild\12.0\bin;'
>
> r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;'
>
> r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN;'
>
> r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools;'
>
> r'C:\Windows\Microsoft.NET\Framework\v4.0.30319;'
>
> r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages;'
>
> r'C:\Program Files (x86)\Windows Kits\8.1\bin\x86;',
> }
>
> -rick
>
> On 12/22/2014 03:33 PM, Galina Kistanova wrote:
>
>   Hi Rick,
>
>  I reverted this revision. Need more attention.
>
>  Thanks
>
>  Galina
>
> On Mon, Dec 22, 2014 at 1:24 PM, Rick Foos <rfoos at codeaurora.org> wrote:
>
>> Hi Galina, Zachary,
>> I'm getting a checkconfig error. Should Debug be a string in builders.py?
>>
>> - config=Debug environment to be identical to what would happen if you
>> ran vcvarsall.bat
>> + config='Debug' environment to be identical to what would happen if you
>> ran vcvarsall.bat
>>
>>
>>   File "buildbot/osuosl/master/config/builders.py", line 654, in
>> _get_lldb_builders
>>     config=Debug,
>> exceptions.NameError: global name 'Debug' is not defined
>> Configuration Errors:
>>   error while parsing config file: global name 'Debug' is not defined
>> (traceback in logfile)
>>
>>
>> On 12/22/2014 02:17 PM, Galina Kistanova wrote:
>>
>>> 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,
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>
>>
>>   --
>> Rick Foos
>> Qualcomm Innovation Center, Inc.
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
>> Linux Foundation Collaborative Project
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
> --
> Rick Foos
> Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141222/095add17/attachment.html>


More information about the llvm-commits mailing list