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

Bill Hoffman bill.hoffman at kitware.com
Wed Mar 23 13:58:01 EDT 2011


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.
>
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.

-Bill




More information about the cmake-developers mailing list