Re: [gentoo-dev] cmake + ninja vs autotools
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 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
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
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
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