Re: [gentoo-dev] cmake + ninja vs autotools

2017-11-16 Thread William L. Thomson Jr.
On Thu, 16 Nov 2017 09:17:52 -0700
Christoph Junghans  wrote:
>
> > Ninja doesn't support Fortran as well.  
> Besides not supporting the full feature set.

That does not seem to be effecting meson. Which only supports ninja.
A considerable amount of projects are switching to meson, look around.
I have switched over a couple projects I am working on. I have worked
with all three, autotools, cmake, and meson. I prefer cmake + ninja.

The performance  of meson vs cmake is negligible. Given cmake cpack, I
prefer that for now over meson. I could not make a strong case for
speed of cmake vs meson. That is moot speed wise, pretty equal. Meson
maybe a tad faster.

> Ninja vs make didn't seem to make big time difference (for cmake at
> least). Back in 2013 ago only found a 40sec difference (of an 6.5 min
> overall build) when building kdelibs averaging over 3 builds, which
> had more than 40s scatter in the individual builds.

It is making huge differences in other projects. I have seen
considerable time savings in the smaller projects I am working on,
ecrire, entrance, clipboard, and some others.

Enlightenment desktop for 0.23 release will have dropped autotools
entirely for meson. 0.22 already ships with meson. I switched over and
it builds faster. No problems there with ninja. I think EFL may switch
to meson as well. Other E projects like rage have already.

> That coincides with my own experience outside of portage where ninja
> and make are pretty much even for a full build, but ninja is much
> faster in figuring out which parts to rebuild in a partial build.

Maybe time to check again. My experience says otherwise. I can switch
over some stuff in travis and show via CI the difference in time. I see
it all the time in development doing routine builds as part of code,
build, test, code, etc. Rinse and repeat.

-- 
William L. Thomson Jr.


pgpaAQR5qEBTJ.pgp
Description: OpenPGP digital signature


Re: [gentoo-dev] cmake + ninja vs autotools

2017-11-16 Thread Christoph Junghans
2017-11-16 6:44 GMT-07:00 Christoph Junghans :
>
>
> On Nov 16, 2017 6:29 AM, "Brian Evans"  wrote:
>
> On 11/15/2017 10:27 PM, William L. Thomson Jr. wrote:
>> It maybe worth considering switching the default generator in the
>> cmake-utils.eclass from the default of emake to ninja.
>>
>> - : ${CMAKE_MAKEFILE_GENERATOR:=emake}
>> + : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
>>
>> For those with cmake ebuilds you can test this out now via
>>
>> CMAKE_MAKEFILE_GENERATOR="ninja"
>> inherit cmake-utils
>>
>> Working with both cmake and meson. It seems the real performance of
>> meson comes from ninja. I am a bit more a fan of cmake than meson for
>> cpack, generation of deb, rpm, and binary tarball, in addition to
>> sources. That can be done with meson but not as elegantly at this time.
>>
>> ninja is noticeably faster than make. I haven't seen any cases yet where
>> cmake autotools works, and ninja does not. They seem pretty equal, so
>> should be safe. Of course could use testing first.
>
> There are still cases where ninja fails...
>
> Ninja doesn't support Fortran as well.
Besides not supporting the full feature set.

Ninja vs make didn't seem to make big time difference (for cmake at
least). Back in 2013 ago only found a 40sec difference (of an 6.5 min
overall build) when building kdelibs averaging over 3 builds, which
had more than 40s scatter in the individual builds.

That coincides with my own experience outside of portage where ninja
and make are pretty much even for a full build, but ninja is much
faster in figuring out which parts to rebuild in a partial build.

>
>
> I have forcefully set emake in dev-db/{mysql,mysql-cluster} because they
> fail to build with ninja (using the cmake generator) yet emake works
> just fine.
>
> Brian
>
>



Re: [gentoo-dev] cmake + ninja vs autotools

2017-11-16 Thread Christoph Junghans
On Nov 16, 2017 6:29 AM, "Brian Evans"  wrote:

On 11/15/2017 10:27 PM, William L. Thomson Jr. wrote:
> It maybe worth considering switching the default generator in the
> cmake-utils.eclass from the default of emake to ninja.
>
> - : ${CMAKE_MAKEFILE_GENERATOR:=emake}
> + : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
>
> For those with cmake ebuilds you can test this out now via
>
> CMAKE_MAKEFILE_GENERATOR="ninja"
> inherit cmake-utils
>
> Working with both cmake and meson. It seems the real performance of
> meson comes from ninja. I am a bit more a fan of cmake than meson for
> cpack, generation of deb, rpm, and binary tarball, in addition to
> sources. That can be done with meson but not as elegantly at this time.
>
> ninja is noticeably faster than make. I haven't seen any cases yet where
> cmake autotools works, and ninja does not. They seem pretty equal, so
> should be safe. Of course could use testing first.

There are still cases where ninja fails...

Ninja doesn't support Fortran as well.


I have forcefully set emake in dev-db/{mysql,mysql-cluster} because they
fail to build with ninja (using the cmake generator) yet emake works
just fine.

Brian


Re: [gentoo-dev] cmake + ninja vs autotools

2017-11-16 Thread Brian Evans
On 11/15/2017 10:27 PM, William L. Thomson Jr. wrote:
> It maybe worth considering switching the default generator in the
> cmake-utils.eclass from the default of emake to ninja.
> 
> - : ${CMAKE_MAKEFILE_GENERATOR:=emake}
> + : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
> 
> For those with cmake ebuilds you can test this out now via 
> 
> CMAKE_MAKEFILE_GENERATOR="ninja"
> inherit cmake-utils
> 
> Working with both cmake and meson. It seems the real performance of
> meson comes from ninja. I am a bit more a fan of cmake than meson for
> cpack, generation of deb, rpm, and binary tarball, in addition to
> sources. That can be done with meson but not as elegantly at this time.
> 
> ninja is noticeably faster than make. I haven't seen any cases yet where
> cmake autotools works, and ninja does not. They seem pretty equal, so
> should be safe. Of course could use testing first.

There are still cases where ninja fails...

I have forcefully set emake in dev-db/{mysql,mysql-cluster} because they
fail to build with ninja (using the cmake generator) yet emake works
just fine.

Brian



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] cmake + ninja vs autotools

2017-11-15 Thread William L. Thomson Jr.
It maybe worth considering switching the default generator in the
cmake-utils.eclass from the default of emake to ninja.

- : ${CMAKE_MAKEFILE_GENERATOR:=emake}
+ : ${CMAKE_MAKEFILE_GENERATOR:=ninja}

For those with cmake ebuilds you can test this out now via 

CMAKE_MAKEFILE_GENERATOR="ninja"
inherit cmake-utils

Working with both cmake and meson. It seems the real performance of
meson comes from ninja. I am a bit more a fan of cmake than meson for
cpack, generation of deb, rpm, and binary tarball, in addition to
sources. That can be done with meson but not as elegantly at this time.

ninja is noticeably faster than make. I haven't seen any cases yet where
cmake autotools works, and ninja does not. They seem pretty equal, so
should be safe. Of course could use testing first.

Again something to consider. Myself I am avoiding autotools anywhere I
can, mostly because of the slow configure and also slow make. Anytime I
use cmake, I am using ninja generator.

-- 
William L. Thomson Jr.


pgpp2umjxeef0.pgp
Description: OpenPGP digital signature