[cmake-developers] [Ninja] Start to work on a generator

Nicolas Desprès nicolas.despres at gmail.com
Wed Mar 23 19:39:20 EDT 2011


On Wed, Mar 23, 2011 at 6:58 PM, Bill Hoffman <bill.hoffman at kitware.com> wrote:
> On 3/23/2011 9:47 AM, Nicolas Desprès wrote:
>>
>> Hello everyone,
>>
>> This weekend I started to work on a new generator for Ninja.  I did
>> not know the internal architecture of CMake so I spent most of my time
>> understanding how it works. I have the very little beginning of
>> something in a local topic branch. It is not able to bootstrap a
>> simple helloworld project yet. I have attached a git log and a git log
>> -p of what I have done so far. Not so much but I will work on it more
>> next weekend.
>>
>> Also, I have few questions about CMake internal architecture. I don't
>> really understand how global and local generator work together? Where
>> should I put my code? in the global or in the local one? I have taken
>> most of the inspiration from the UnixMakefile generator but the Ninja
>> generator has on major difference: Ninja is not design to work in a
>> recursive form. I did some experiment and all the automatic step
>> counting of Ninja does not make sense in a recursive approach. So, I
>> think I should put all my code only in the global generator and
>> generate only one build.ninja file per project.
>>

Oups! Sorry for sending the email twice. I canceled the first which
was too big but it get published anyway.

> You should not put all the code in the global generator.  I would think it
> would be better to model it after the VS2010 generator, which is more target
> based.   You still need the local/global generators, but the local generator
> just cycles over the targets that are in that directory.  So, look at
> cmGlobalVisualStudio10Generator.cxx cmLocalVisualStudio10Generator.cxx
> cmVisualStudio10TargetGenerator.cxx.

Ok.  Thanks for the advice.  I'll have a look at it this weekend

-- 
Nicolas Desprès



More information about the cmake-developers mailing list