Previously fixed in 97904f8424
and #118084, but the fix was only applied to linux platforms.
This fixes libraries that depend on qtwebengine under darwin platforms.
This commit switches `libmysqlclient`-enablement from `!=null`-style
to `fooSupport`-style, by adding an additional boolean parameter `mysqlSupport`.
This parameter defaults to
`stdenv.hostPlatform==stdenv.buildPlatform`, so there should be no
change in behavior for the non-cross-compiling case.
Co-authored-by: Artturi <Artturin@artturin.com>
The primary motivating example is openssl:
Before the change full package build took 1m54s minutes.
After the change full package build takes 59s.
About a 2x speedup.
The difference is visible because openssl builds hundreds of manpages
spawning a perl process per manual in `install` phase. Such a workload
is very easy to parallelize.
Another example would be `autotools`+`libtool` based build system where
install step requires relinking. The more binaries there are to relink
the more gain it will be to do it in parallel.
The change enables parallel installs by default only for buiilds that
already have parallel builds enabled. There is a high chance those build
systems already handle parallelism well but some packages will fail.
Consistently propagated the enableParallelBuilding to:
- cmake (enabled by default, similar to builds)
- ninja (set parallelism explicitly, don't rely on default)
- bmake (enable when requested)
- scons (enable when requested)
- meson (set parallelism explicitly, don't rely on default)
- waf (set parallelism explicitly, don't rely on default)
- qmake-4/5/6 (enable by default, similar to builds)
- xorg (always enable, similar to builds)
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper
this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
QT 5 did not set layout constraints on their popups. This causes some
compositors like GNOME to place the popups partially outside the screen.
This change backports the corresponding fix, but with an exclusion for
KDE as its current version does not work well with layout constraints.