[CMake] Ninja + CMake on a dashboard?

Peter Collingbourne peter at pcc.me.uk
Tue Mar 6 13:47:05 EST 2012


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.
I myself have used the generator to build LLVM/Clang on a Mac and
I know a few people who do that regularly.  I don't think we should
exclude an entire platform just because things won't work for a subset
of users, especially when it is easy to detect such cases and we can
warn/error out.

Thanks,
-- 
Peter


More information about the CMake mailing list