The sdcc compiler no longer defines the `SDCC` preprocessor macro.
Instead `__SDCC_VERSION_MAJOR` and similar component-wise macros are
defined. Use them instead if defined.
Issue: #16746
VS 2017 (VS 15) places its redist DLLs in `Microsoft.VC150.*`
directories but still uses version number `140` in the DLL names. The
redist directories now have version numbers in their name, and the MSVC
and MFC runtime DLLs may be in directories with different versions.
Fill out our logic to handle this.
For now assume we are given the `MSVC_REDIST_DIR` value as a cache
entry. Unfortunately we cannot yet find the VS 2017 MSVC redist
directory automatically since there is no registry entry for the VS
installation. Later we will have to use `cmVSSetupHelper` for this.
Issue: #16735
Each `MSVC${v}_*_DIR` variable is only ever used with one value for
`${v}` within a given build tree. Drop the `${v}` version component
from the variable names.
For a given `MSVC_VERSION` our macros were each called at most once.
Replace them with a single code path that is parameterized over what
was the macro argument.
Work around upstream ninja issue 1251 by converting include directories
used by our Fortran dependency scanner to the same path format that we
use in preprocessor `-I` flags and in the `build.ninja` manifest.
Fixes: #16722
Some projects may not be prepared to use the imported targets defined by
the HDF5 package configuration file. Give users a way to skip this part
of the search.
Issue: #16718
Backport upstream libarchive commit 70f497f456 (As per Cryptographic
Requirements, 2017-03-19). Discard more bytes of the RC4 keystream
to reduce the possibility of non-random bytes.
Update the module to enable finding components of Boost 1.64 (beta) from
the upcoming release. Also update the Boost library name mangling used
for VS 2017 to match a change made to Boost upstream (vc150 => vc1410).
At a VS 2017 command prompt the `PATH` contains a directory that happens
to have a `Git/cmd/git.exe` inside it. However, this executable is not
meant for general use. Revise our use of `Git/` path suffixes to be
more specific to its original purpose of searching in the typical
`c:/Program Files*/Git/` installation directories. Avoid using the
suffixes on `PATH` entries.
Fixes: #16706