[CMake] Ninja + CMake on a dashboard?

Michael Jackson mike.jackson at bluequartz.net
Tue Mar 6 14:51:37 EST 2012


On Mar 6, 2012, at 2:41 PM, Andreas Pakulat wrote:

> 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

As an OS X developer using Qt to develop GUIs ninja would leave me out in the cold. And more over if I had not been keeping on on this thread then I may have actually tried Ninja, blew time trying to figure out why my GUI apps are not building and then possibly finally finding out that Ninja does not support .app and .framework outputs. I would limit ninja to the build platforms that do not have these issues which would mainly be the *nix platforms.

___________________________________________________________
Mike Jackson                    Principal Software Engineer
BlueQuartz Software                            Dayton, Ohio
mike.jackson at bluequartz.net              www.bluequartz.net



More information about the CMake mailing list