kumquat-buildroot/package/qt5
Gaël PORTAY a475e0d874 qt5webengine: propagate parallel flag to ninja
WebEngine is a big project to build. It uses ninja which is a build
system that does everything in parallel[1].

	Builds are always run in parallel, based by default on the number of
	CPUs your system has. Underspecified build dependencies will result in
	incorrect builds.

QtWebEngine does not propagate the parallel flag from the running
instance of make to ninja. Thus, all the machine cores are used to build
this single project.

	make -j 10 -> ninja -j # all cores

This behavior disrupts powerful machines which are setup to build many
projects in parallel. Even worse, the build fails on machines where the
ratio CPU-cores / amount of RAM (including swap) is not appropriate. g++
may have not enough of memory to build all those files in parallel.

Unfortunatly, the target `run_ninja' is hardcoded in the Makefile
src/core/Makefile.run_gn; there is no way to propagate flags using a
variable through the make command-line.

	run_ninja:
	        /home/gportay/src/buildroot/output-qt5.11/build/qt5webengine-5.11.1/src/3rdparty/ninja/ninja
-C /home/gportay/src/buildroot/output-qt5.11/build/qt5webengine-5.11.1/src/core/release QtWebEngineCore

Luckily, the Qt gn_run.pro[2] can hardcode ninja extra flags through the
variable NINJAFLAGS when the Makefile is generated (which is performed
during the build and not during configure step).

This commit sets the NINJAFLAGS using the variable PARALLEL_JOBS to limit
the number of cores used by ninja.

Fixes:
	virtual memory exhausted: Cannot allocate memory

[1]: https://ninja-build.org/manual.html#_comparison_to_make
[2]: https://github.com/qt/qtwebengine/blob/v5.11.1/src/core/gn_run.pro#L49-L53

CC: Damien Riegel <damien.riegel@savoirfairelinux.com>
CC: Jean-François Têtu <jean-francois.tetu@savoirfairelinux.com>
Signed-off-by: Gaël PORTAY <gael.portay@savoirfairelinux.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-07-01 11:04:59 +02:00
..
qt5base qt5base: fix typo in qmake.conf.in 2018-06-30 18:10:11 +02:00
qt5canvas3d
qt5charts
qt5connectivity
qt5declarative
qt5enginio
qt5graphicaleffects
qt5imageformats
qt5location
qt5multimedia
qt5quickcontrols
qt5quickcontrols2
qt5script
qt5scxml
qt5sensors
qt5serialbus
qt5serialport
qt5svg
qt5tools
qt5virtualkeyboard qt5virtualkeyboard: allow to build with qt5.6 2018-07-01 11:01:48 +02:00
qt5wayland
qt5webchannel
qt5webengine qt5webengine: propagate parallel flag to ninja 2018-07-01 11:04:59 +02:00
qt5webkit
qt5webkit-examples
qt5websockets
qt5x11extras
qt5xmlpatterns
qt53d
Config.in
qt5.mk