Modern Build tool suitable for Visual Studio MSBuild

I’m new to build automation and Continuous Integration, but have done extensive research on the subject.

First the question: assuming I have an unmanaged Visual C++ .sln file, and that I can build it with MsBuild, which modern build tool should I pick which allows me to easily perform pre/post build steps?

I dont want “old” build tool like Ant, Nant, make, with its XML mess. I want something that can allow me to express freely what I want to do in a human-readble manner. Based on my research, it seems Waf, Scons, and Rake might fit the bill.

Background of my environment:
My source control is Subversion.
My unit test framework is GoogleTest which produces JUnit-compatible XML files.
I picked JIRA for my tracking tool.
I picked TeamCity for my CI server.
I use Visual Build to build my .sln file.

I want to be able to write a simple build script (callable from my CI server) that would:

1) Create a CI server workspace directory.

2) Check out code from SVN. (my repos is setup to use svn:externals to pull dependencies from my other repository)

3) Run Visual Build build file to build all projects/platforms combination in .sln.

4) Run static code analysis / dynamic code analysis tools

5) Gather results from MsBuild (whether compile fail, static/dynamic code analysis warnings, or unit test fail, etc) for CI server

6) CI server logs this and also links it to JIRA.

7 thoughts on “Modern Build tool suitable for Visual Studio MSBuild

  1. user

    Working with MSBuild and C++ projects is indeed a mess because .vcproj is not a native MSBuild format like .csproj but is handled in a special way by MSBuild.

    Reply
  2. user

    i'm not sure what you mean. i have a .sln file that contains multiple projects. to compile it i just have to type msbuild <name>.sln..and it works like a charm.

    Reply
  3. user

    Along with compiling code, Visual Build can be used to pull source and run your analysis tools (and has a nice GUI which lets you hide any “xml mess”.) Your CI server should have a method for integrating external logs into a build.

    Reply
  4. user

    just for others who find this page (just like me):
    check out these tools for CI build server:
    Pulse
    TeamCity
    AnthillPro (this is very prof, but also requires a lot to learn)
    CruiseControl

    Pulse and TeamCity can build sln with msbuild. Also has loads of nice feature and I found the best (from 10+) tools as CI server. Easy management, great support and good features.

    Reply

Leave a Reply

Your email address will not be published.