[cmake-developers] Rename Ninja generator?
Peter Kümmel
syntheticpp at gmx.net
Fri Mar 9 13:56:18 EST 2012
On 09.03.2012 03:34, Peter Collingbourne wrote:
> On Thu, Mar 08, 2012 at 05:44:09PM -0500, Bill Hoffman wrote:
>> Thoughts?
>
> Hi Bill,
>
> I thought about this for a while and I decided that this probably
> isn't a good idea for a few reasons:
>
> 1) It is inaccurate. The Ninja generator uses a fundamentally different
> approach to generating build files and I think that should be
> reflected in the name.
>
> 2) If we go with your suggestion, things will continue to work if what
> the project does for Make happens to also be appropriate for Ninja.
> But that isn't always the case -- if the project cares about
> which generator is being used then it may well be doing something
> specific to the Makefile generator (such as relying on the fact
> that CMake builds recursive makefiles by running the build program
> in a subdirectory, or using "$(MAKE)" -- you can see an example
> of that in ExternalProject.cmake). In that case things would break
> unless the conditional excludes Ninja:
>
> IF(CMAKE_GENERATOR MATCHES "Makefiles" AND NOT CMAKE_GENERATOR MATCHES "Ninja")
>
> Things like that need to be decided on a case by case basis by
> the project developer and I don't see any reason to favour one
> scenario over the other. All things being equal I would err on
> the conservative side and say that Ninja shouldn't receive any
> special treatment from projects by default -- if projects need
> the Ninja generator to get the same special treatment, they can
> match Ninja explicitly.
>
> 3) Less typing :) (Though one idea I had for improving the
> user interface for the -G option was to allow the argument to
> be matched case insensitively, and for unambiguous prefixes to
> be expanded. So for example you could say -G nmake which would
> be disambiguated to "NMake Makefiles", but -G n would return an
> error since it matches both Ninja and NMake).
Yes, please don't call it a Makefile when it is definitely NOT a Makefile.
I also like the short -GNinja. -G"Visual Studio 9 2008" is really to long
as command line argument.
Peter
More information about the cmake-developers
mailing list