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