Am Sonntag 07 Juni 2015, 17:08:57 schrieb Michał Górny:
> Hello, developers.

Hello Michal,

> As you probably know already, CMake sucks a lot. One of its more sucky
> features is that it generates Makefiles that fail a lot. In particular,
> they fail at verbose build logs that are cluttered with useless CMake
> intermediate commands and hard to read. But also they sometimes
> deadloop hard in faulty dependency scanning [1].
>
> Those two issues can be solved by switching CMake to use Ninja instead
> of make. As you may know, Ninja is the fancy building tool that is
> faster and much harder to use than make. However, it integrates with
> CMake much better and with less hackery. In particular, the verbose
> build log is free of useless CMake percentage printing output and other
> non-sense, and contains only real build commands. It also gets
> dependency scanning right.
> 
> Sadly, there are two problems with using Ninja:
> 
> 1) it will not work with some packages,
> 
> 2) it introduces an extra dep (on Ninja).
> 
> The first issue is a bit complex. Sometimes the problem lies in CMake
> itself (not all CMake magic works in Ninja for some reason), sometimes
> in the project (relying on Makefile stuff), sometimes in the ebuild.
> For example, with Ninja you can't do '-C subdirectory' to run targets
> from a specific subdirectory. So, we can't force Ninja everywhere.
> 
> The second issue is a bit easier. GNU make is part of @system, ninja
> would be considered an extra package being installed. Do we consider it
> fine to require it randomly? Or do we need to justify the extra dep by
> benefits of building a particular package with Ninja? Is sane verbose
> build log a good enough benefit?
> 
> So, what do you think? Should I start switching random packages to
> Ninja whenever it works?
> 
> Oh, and this would be done via something like:
>   : ${CMAKE_MAKEFILE_GENERATOR:=Ninja}
> 
> before inherit line. To respect user forcing another generator, and to
> get deps right.
> 
> [1]:https://bugs.gentoo.org/show_bug.cgi?id=546336

KDE herd maintains ~1000 packages and the majority relies on CMake. I am not 
aware of any reports about GNU make related build files. So i would vote for 
the reliable GNU make generator.

Greetings,

-- 
Johannes Huber (johu)
Gentoo Linux Developer / KDE Team
GPG Key ID F3CFD2BD

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to