[Buildroot] [PATCH 1/2] Add BR2_CMAKE_USE_NINJA_BACKEND option
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Wed Jan 25 01:27:16 UTC 2017
Hello,
On Tue, 24 Jan 2017 22:48:08 +0100, Romain Naour wrote:
> > - Keep a global option - the one in my patch - but only apply it on packages
> > that will define a specific package variable to say "OK I can do it"?
>
> Yes, something like that but It's just a proposal...
>
> <package>_SUPPORT_NINJA_BACKEND = YES in the .mk
> (with default to N0)
But then that's a bit annoying because we would have to explicitly
set this option to "YES" on all packages that support the Ninja backend
(most likely the majority).
I think it would make more sense to default the other way around, i.e
default to YES, and set it to NO on the few packages that do not
properly support the Ninja backend.
Or maybe better: do not introduce a per-package option for the moment,
have only the global one, see in practice how many packages work /
don't work and decide if we need a per-package option, and what default
value it should have.
> w/ Ninja
>
> cannelloni
> real 0m10.009s
> user 0m8.771s
> sys 0m0.885s
>
> bullet
> real 0m43.750s
> user 1m4.464s
> sys 0m4.356s
>
> w/ Make
>
> cannelloni
> real 0m11.478s
> user 0m9.282s
> sys 0m1.127s
>
> bullet
> real 0m45.234s
> user 1m4.213s
> sys 0m5.501s
So we're saving between 1 and 2 seconds of build time, while host-ninja
requires building host-python or host-python3 ?
Seeing those numbers, the whole thing seems really pointless to me.
You're saving 1-2 seconds of build time, but you've got a full Python
interpreter to build.
Would it be possible to get numbers on the overall build time showing
what Ninja is improving?
> >> I think these changes should be in a preparatory patch before adding Ninja
> >> backend support.
> >
> > Sorry I don't understand what you mean with "preparatory patch".
>
> Sorry, I meant you can do a first patch with these changes in pkg-cmake.mk
> (refactoring) and add the Ninja in a second patch.
> I suggest to do this since it impact the cmake with Make backend build.
I looked again at the patch, and I don't really see where it can be
split in two parts. Which changes do you see as "preparatory" ?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
More information about the buildroot
mailing list