[CMake] Ninja + CMake on a dashboard?

Andreas Pakulat apaku at gmx.de
Tue Mar 6 14:41:21 EST 2012


On 06.03.12 18:47:05, Peter Collingbourne wrote:
> On Tue, Mar 06, 2012 at 07:09:03PM +0100, Andreas Pakulat wrote:
> > On 06.03.12 17:10:41, Peter Collingbourne wrote:
> > > On Tue, Mar 06, 2012 at 10:41:19AM -0500, David Cole wrote:
> > > > 2 things I'd like to see before we merge:
> > > > 
> > > > (1) test failures corrected on the Mac Nightly Expected dashboards
> > > > submitting using the ninja generator
> > > > (2) reliable dashboard submissions (even if not all tests pass) from a
> > > > Windows machine using the ninja generator
> > > > 
> > > > We *could*, if popular demand is high enough, merge it in anyway and
> > > > call it "experimental" to start with, or we could get it right all the
> > > > way before we merge to 'master' and put it out in an official CMake
> > > > release.
> > > 
> > > +1 on merging soon.  The generator will be disabled on Windows by
> > > default so there is no risk of Windows users accidentally trying to
> > > use it.  Most of the test failures on the Mac relate to Mac specific
> > > targets (frameworks/bundles/apps) which I think most portable
> > > applications can survive without
> > 
> > You have any evidence for that? Usually cross-platform doesn't mean
> > "ignore the platform conventions", but simply abstract away from that.
> > In that sense I'd expect cross-platform apps to have something like
> > 
> > add_executable(foo WIN32 MACOSX_BUNDLE ${SRCS})
> > 
> > since cmake will simply ignore the windows/macosx specific flags on
> > platforms that they don't apply on.
> > 
> > For a CMake release I'd say that the generator should fully work on all
> > platforms it is enabled on. If there are things that are not supported
> > on a platform, disable it there.
> 
> Obviously things won't work perfectly (if at all) for things like GUI
> applications or bundles.  But there are a number of command line tools
> (such as LLVM/Clang) which do not use any of the OS X packaging stuff.

As Bill said, allowing more-or-less only commandline apps leaves out
lots of things. Also I don't think llvm/clang is a good reference here
since it has few if any external dependencies which may come as
frameworks eventually. By excluding frameworks and app bundles you're
basically limiting the generator on that platform to at most 1/3 of the
currently available projects that build on it - probably much less.

Personally I wouldn't accept this from a stable release of a
cross-platform buildtool.

Andreas



More information about the CMake mailing list