Gentoo Archives: gentoo-dev

From: "William L. Thomson Jr." <wlt-ml@××××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] cmake + ninja vs autotools
Date: Thu, 16 Nov 2017 16:40:46
Message-Id: assp.0493126d8c.20171116114032.5e10f8e9@wlt.obsidian-studios.com
In Reply to: Re: [gentoo-dev] cmake + ninja vs autotools by Christoph Junghans
1 On Thu, 16 Nov 2017 09:17:52 -0700
2 Christoph Junghans <junghans@g.o> wrote:
3 >
4 > > Ninja doesn't support Fortran as well.
5 > Besides not supporting the full feature set.
6
7 That does not seem to be effecting meson. Which only supports ninja.
8 A considerable amount of projects are switching to meson, look around.
9 I have switched over a couple projects I am working on. I have worked
10 with all three, autotools, cmake, and meson. I prefer cmake + ninja.
11
12 The performance of meson vs cmake is negligible. Given cmake cpack, I
13 prefer that for now over meson. I could not make a strong case for
14 speed of cmake vs meson. That is moot speed wise, pretty equal. Meson
15 maybe a tad faster.
16
17 > Ninja vs make didn't seem to make big time difference (for cmake at
18 > least). Back in 2013 ago only found a 40sec difference (of an 6.5 min
19 > overall build) when building kdelibs averaging over 3 builds, which
20 > had more than 40s scatter in the individual builds.
21
22 It is making huge differences in other projects. I have seen
23 considerable time savings in the smaller projects I am working on,
24 ecrire, entrance, clipboard, and some others.
25
26 Enlightenment desktop for 0.23 release will have dropped autotools
27 entirely for meson. 0.22 already ships with meson. I switched over and
28 it builds faster. No problems there with ninja. I think EFL may switch
29 to meson as well. Other E projects like rage have already.
30
31 > That coincides with my own experience outside of portage where ninja
32 > and make are pretty much even for a full build, but ninja is much
33 > faster in figuring out which parts to rebuild in a partial build.
34
35 Maybe time to check again. My experience says otherwise. I can switch
36 over some stuff in travis and show via CI the difference in time. I see
37 it all the time in development doing routine builds as part of code,
38 build, test, code, etc. Rinse and repeat.
39
40 --
41 William L. Thomson Jr.