Extend the change from commit 1d00ba9ccf (Find: find_package prefers
variable CMAKE_FIND_USE_REGISTRY, 2018-11-13, v3.16.0-rc1~461^2~1)
to cover the system package registry too.
Fixes: #19890
Note that ``MODULE`` s was rendering strangely, so the wording
has been tweaked to avoid needing to specify ``MODULE`` as a
plural word. Modules are still libraries, so it is okay to call them as
such where it doesn't cause any ambiguity.
The upper limits on what compiler CMake supports is always changing,
and the values inside cmake-compile-feature is always out of date.
So lets remove it.
`if()` uses the internal `IsOn` call whild `$<BOOL:>` uses `IsOff`. For
historical reasons, these are not inverses of each other, so drop
mention of `if()` from the documentation of `$<BOOL:>`.
On Windows, `CollapseFullPath` called with a path that ends with a dot
might return a file with the same base name but any extension.
To make sure we get only the file with the requested header extension,
pass the complete file name to `CollapseFullPath`.
Fixes: #19892
In commit 6e613ff399 (bootstrap: Add infrastructure to detect threading
flags, 2017-11-28, v3.11.0-rc1~281^2~1) an extra level of nesting was
added to the selection loop, but the inner-most `break` command used to
exit the loop on success was not updated. This caused the outer-most
loop to iterate unnecessarily and repeatedly try the same compilers
again. In the case of compilers requiring a `-std=` flag, this may have
caused the oldest standard to be used instead of the newest.
Pass the value to the Swift compiler driver via `-sdk`. We already do
this for C/C++ via `-isysroot`.
This fixes command-line builds on macOS 10.15 with Xcode 11 Swift tools.
Fixes: #19880
`-num-threads` is for the threading, not the job control. Use `-j` to
launch the parallel jobs. This enables parallel builds for Swift again
after driver updates preventing the parallelization through
`-num-threads`.
The original intent of <PackageName>_ROOT may have been for it
to apply only to Find modules, but the implementation of the
find_package() command treats modules and config packages the
same. Both result in a <PackageName>_ROOT variable being
pushed onto the stack of package roots. A config package can
also call other find_...() commands, the behavior doesn't apply
just to find modules.