SUMMARY When building Qt 5 with kdesrc-build, the global make options appear to be ignored. This manifests itself in noticeably less fan noise than expected when you configured a global `-j12` but effectively get `-j1`. It also takes a lot longer. STEPS TO REPRODUCE 1. On fresh system without Qt set up kdesrc-build 2. Make sure to include kf5-qt5-build-include and qt5-build-include 3. Run kdesrc-build qt5 OBSERVED RESULT On an 8-core CPU, the load as reported by ksysguard stays effectively pegged at ~ 12% (i.e. ~ 1 core) EXPECTED RESULT I expect the CPU to be given a bit more of a workout with a load of roughly ~100%. ADDITIONAL INFORMATION This issue can be worked around by manually configuring kdesrc-build.rc with: ``` options qt5-set make-options -j12 end options ```
The relevant bit of my global configuration in kdesrc-build.rc is: ``` global make-options -j12 end global ```
Interesting. I suspect this might be because of a feature I'd added a couple of years back to filter out global build flags for build systems that weren't using the CMake ("KDE4") build system, since that was also sometimes causing problems for people trying to add global make options that worked under CMake's Makefiles but not in autotools or qmake-descended makefiles.
May also be related to https://phabricator.kde.org/T9727 ?
*** Bug 424158 has been marked as a duplicate of this bug. ***
(In reply to Michael Pyne from comment #2) > Interesting. I suspect this might be because of a feature I'd added a couple > of years back Any solution for now?
(In reply to Andrey from comment #5) > > Any solution for now? You can manually add `make-options -j12` or `set-env MAKEFLAGS=-j12` or similar to the module set or module options. Additionally a MR is being worked on that tackles parallel builds more comprehensively: https://invent.kde.org/sdk/kdesrc-build/-/merge_requests/54
The qt5-set module-set is handled very differently, it creates a Qt5 supermodule, which then handle building of its submodules itself. The mentioned mr was merged. The module definitions now contain: ``` module-set qt5-set set-env MAKEFLAGS -j${num-cores} end module-set options qtwebengine set-env NINJAFLAGS -j${num-cores-low-mem} end options ``` So the several cores building is no longer a problem.