Gentoo Archives: gentoo-dev

From: Christoph Junghans <junghans@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] cmake + ninja vs autotools
Date: Thu, 16 Nov 2017 16:18:21
Message-Id: CANgp9kxxt=e59eB7E3b5Tug=6G0BnCUmSW65miS7yq3qdRx2tA@mail.gmail.com
In Reply to: Re: [gentoo-dev] cmake + ninja vs autotools by Christoph Junghans
1 2017-11-16 6:44 GMT-07:00 Christoph Junghans <junghans@g.o>:
2 >
3 >
4 > On Nov 16, 2017 6:29 AM, "Brian Evans" <grknight@g.o> wrote:
5 >
6 > On 11/15/2017 10:27 PM, William L. Thomson Jr. wrote:
7 >> It maybe worth considering switching the default generator in the
8 >> cmake-utils.eclass from the default of emake to ninja.
9 >>
10 >> - : ${CMAKE_MAKEFILE_GENERATOR:=emake}
11 >> + : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
12 >>
13 >> For those with cmake ebuilds you can test this out now via
14 >>
15 >> CMAKE_MAKEFILE_GENERATOR="ninja"
16 >> inherit cmake-utils
17 >>
18 >> Working with both cmake and meson. It seems the real performance of
19 >> meson comes from ninja. I am a bit more a fan of cmake than meson for
20 >> cpack, generation of deb, rpm, and binary tarball, in addition to
21 >> sources. That can be done with meson but not as elegantly at this time.
22 >>
23 >> ninja is noticeably faster than make. I haven't seen any cases yet where
24 >> cmake autotools works, and ninja does not. They seem pretty equal, so
25 >> should be safe. Of course could use testing first.
26 >
27 > There are still cases where ninja fails...
28 >
29 > Ninja doesn't support Fortran as well.
30 Besides not supporting the full feature set.
31
32 Ninja vs make didn't seem to make big time difference (for cmake at
33 least). Back in 2013 ago only found a 40sec difference (of an 6.5 min
34 overall build) when building kdelibs averaging over 3 builds, which
35 had more than 40s scatter in the individual builds.
36
37 That coincides with my own experience outside of portage where ninja
38 and make are pretty much even for a full build, but ninja is much
39 faster in figuring out which parts to rebuild in a partial build.
40
41 >
42 >
43 > I have forcefully set emake in dev-db/{mysql,mysql-cluster} because they
44 > fail to build with ninja (using the cmake generator) yet emake works
45 > just fine.
46 >
47 > Brian
48 >
49 >

Replies

Subject Author
Re: [gentoo-dev] cmake + ninja vs autotools "William L. Thomson Jr." <wlt-ml@××××××.com>