[OE-core] [RFC PATCH] cmake: use Ninja backend instead of Make
Randy MacLeod
randy.macleod at windriver.com
Wed Jan 17 20:57:26 UTC 2018
On 2018-01-17 11:18 AM, Otavio Salvador wrote:
> On Tue, Jan 16, 2018 at 11:25 AM, Ross Burton <ross.burton at intel.com> wrote:
>> The Ninja backend is faster than Make for large projects (takes three minutes
>> off webkitgtk:do_compile for me), so use it by default.
>>
>> Signed-off-by: Ross Burton <ross.burton at intel.com>
>
> I tried to test this but it did not apply in master. Could you rebase it?
>
On my 64+64 core system that is shared, it reduced a webkit compile
from ~ 17 minutes to ~12 minutes for just the compile stage. YMMV.
$ cat webkit-before-compile.log
3.29user 0.50system 17:39.98elapsed 0%CPU
(0avgtext+0avgdata 28532maxresident)k
0inputs+176outputs (0major+16335minor)pagefaults 0swaps
$ cat webkit-after-compile.log
2.70user 0.47system 12:09.24elapsed 0%CPU
(0avgtext+0avgdata 28292maxresident)k
0inputs+160outputs (0major+14634minor)pagefaults 0swaps
I'm going to try to build world (oe-core + meta-oe + ...).
Octavio, it's a two line change! :)
This applied to master for me:
commit 3914c66f6e7123a64ab73e2b6707452bbfd10d02
Author: Ross Burton <ross.burton at intel.com>
Date: Wed Jan 17 13:09:40 2018 -0500
cmake: use Ninja backend instead of Make
The Ninja backend is faster than Make for large projects
(it takes three minutes off webkitgtk:do_compile for example)
so use it by default.
Acked-by: Randy MacLeod <Randy.MacLeod at windriver.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>
diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
index a4079dab0d..c46117acde 100644
--- a/meta/classes/cmake.bbclass
+++ b/meta/classes/cmake.bbclass
@@ -1,7 +1,7 @@
# Path to the CMake file to process.
OECMAKE_SOURCEPATH ??= "${S}"
-DEPENDS_prepend = "cmake-native "
+DEPENDS_prepend = "cmake-native ninja-native "
B = "${WORKDIR}/build"
# We need to unset CCACHE otherwise cmake gets too confused
@@ -117,7 +117,7 @@ cmake_do_configure() {
oecmake_sitefile=
fi
- cmake \
+ cmake -GNinja \
$oecmake_sitefile \
${OECMAKE_SOURCEPATH} \
-DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
--
# Randy MacLeod. WR Linux
# Wind River an Intel Company
More information about the Openembedded-core
mailing list