Sign in to follow this  

Portable C++ Build Automation?

This topic is 3674 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

What do you folks use for C++ build automation these days? I've tried Boost.Build, but I've encountered several show-stopping bugs. I'd prefer using something a little more portable than Microsoft NMake or Microsoft MSBuild/VCBuild if you know what I mean. I'm considering using NAnt, but that still ties me into needing .NET/Mono as a dependency. I'd prefer something with minimal dependencies. Any recommendations?

Share this post


Link to post
Share on other sites
Apache Ant requires a JVM, but that's it. The new version of Boost.Build may be buggy, but you should look into an older, more stable version.

Share this post


Link to post
Share on other sites
I've had nothing but good experiences with NAnt. Using it on a continuous integration server (JetBrains TeamCity) to compile my C++ projects, run unit tests and zip up artifacts.

Having .NET as a dependency is a bit heavy, especially considering that there are some linux distros where Mono isn't easily set up, but so far, on Gentoo, a simple 'emerge nant' got everything running for me :)

-Markus-

Share this post


Link to post
Share on other sites
Quote:
Original post by Sneftel
Apache Ant requires a JVM, but that's it. The new version of Boost.Build may be buggy, but you should look into an older, more stable version.


I'm thinking about using Hudson as the continuous integration server, in which case I will may be using Ant to wire-up and farm out tasks to the different build servers for the various platforms we'll be targeting.

But I'm still not sure if I want to use Ant (or NAnt for the matter) to build the actual C++ based projects.

Share this post


Link to post
Share on other sites
Quote:
Original post by Cygon
I've had nothing but good experiences with NAnt. Using it on a continuous integration server (JetBrains TeamCity) to compile my C++ projects, run unit tests and zip up artifacts.

Having .NET as a dependency is a bit heavy, especially considering that there are some linux distros where Mono isn't easily set up, but so far, on Gentoo, a simple 'emerge nant' got everything running for me :)

-Markus-


TeamCity looks pretty sweet, plus it has a low price tag for commercial use. I have MSVS Team System 2008 Team Suite, although I don't plan on using the Team System Server as it's too heavy for our needs. I'll be checking out the trial for sure.

Thanks.

Share this post


Link to post
Share on other sites
Quote:
Original post by morgue
I use SCons. It's very good for me, it is easy to use, but it depends on Python.


Python is a bit more mature than Mono is, so that's not a problem. SCons looks pretty nifty, something of an object-based build tool. I'll keep investigating.

Share this post


Link to post
Share on other sites
Quote:
Original post by CodeDemon
But I'm still not sure if I want to use Ant (or NAnt for the matter) to build the actual C++ based projects.
Why?

Share this post


Link to post
Share on other sites
Quote:
Original post by Zao
I use cmake, which generates native build scripts for whatever platform you want, like Makefiles, kdevelop projects, Visual Studio solutions and much more.


Sorry, cmake seems just a bit crusty to me. As it essentially generates build files for a target build environment, the dual-stage build process is kind of a pain in the ass.

Share this post


Link to post
Share on other sites
Quote:
Original post by Sneftel
Quote:
Original post by CodeDemon
But I'm still not sure if I want to use Ant (or NAnt for the matter) to build the actual C++ based projects.
Why?


I'm not looking forward to invoking various C++ compilers using an Exec task. I know NAnt supports the MSVC++ compiler via the Cl task, but that's not portable. Ant has some experimental stuff in Ant-Contrib. Other than that, I'd have to extend either Ant or NAnt myself.

I suppose that's not the end of the world, but if there's something out there that already does a great job without needing to be tinkered with already, then why not use that?

Share this post


Link to post
Share on other sites

This topic is 3674 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this