[PATCH] [zorg] Add options allowing MSVC builds with Clang Cmake Build Factory.

Rick Foos rfoos at codeaurora.org
Wed Dec 17 16:29:48 PST 2014


================
Comment at: buildbot/osuosl/master/config/builders.py:405-413
@@ +404,11 @@
+                     ],
+            # Build and Check (MSVC)
+            cmakeGenerator='Visual Studio 12',
+            build_cmd=['MSBuild', 'ALL_BUILD.vcxproj','/maxcpucount',
+                        "/p:Configuration=RelWithDebInfo"],
+            build_install_cmd=['MSBuild', 'INSTALL.vcxproj','/maxcpucount',
+                        "/p:Configuration=RelWithDebInfo"],
+            build_check_cmd=['MSBuild', 'check-all.vcxproj','/maxcpucount',
+                        "/p:Configuration=RelWithDebInfo"], 
+            slave_envCmd=r""""%VS120COMNTOOLS%\vsvars32.bat" %PROCESSOR_ARCHITECTURE% & set""",
+                     )},
----------------
zturner wrote:
> Any reason this can't use ninja?  It will build faster than MSBuild while still using MSVC for the actual compilation and link.
I think the msvc builder and this change are obsolete.

The unified cmake builder should allow ninja, make, or MSBuild with the builder definition setting the parameters for each.

================
Comment at: zorg/buildbot/builders/ClangBuilder.py:537
@@ -509,10 +536,3 @@
 
-    ############# CLEANING
-    if clean:
-        f.addStep(ShellCommand(name='clean stage 1',
-                               command=['rm','-rf',stage1_build],
-                               warnOnFailure=True,
-                               description='cleaning stage 1',
-                               descriptionDone='clean',
-                               workdir='.',
-                               env=env))
+    # Project file created by previous cmake run.
+    if 'Ninja' in cmakeGenerator:
----------------
gkistanova wrote:
> Could you consider defining and using a dict instead? Seems more natural for Python...
Yes, a dictionary would be more extensible.
    cmakeGenToProjectfile={'Makefiles':'Makefile','Ninja':'build.ninja','Visual':'ALL_BUILD.vcxproj'}

    cmakeProjectfile = 'Missing'
    for key,val in cmakeGenToProjectfile.items():
       if key in cmakeGenerator:
           cmakeProjectfile = val

================
Comment at: zorg/buildbot/builders/ClangBuilder.py:548
@@ +547,3 @@
+    ############# CLEANING
+    doCleanIf = lambda step: step.build.getProperty("force_build_clean") or clean
+    f.addStep(RemoveDirectory(name='clean stage 1',
----------------
gkistanova wrote:
> May I suggest defining the "clean" arg as a property and then do a unified check if we need to clean.
> The build property will overwrite the builder or a slave one.
> 
> At least this is what I'm going to do as a common approach for all builders.
> 
It looked like the Force Build form 'clean before building' checkbox was setting a property named force_build_clean. 

If force_build_clean is a standard buildbot property, I thought we might want to incorporate it.

    doStepIf=Property('clean')

http://reviews.llvm.org/D5588

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list