This was not required for xz 5.2.5, but works there. At least as of xz
5.6.3 also the executables and some docs would be installed, what we do
not want yet.
For some reason, libzip 1.8.0 requires us to define this option, while
previously defining BZIP2_LIBRARIES had been sufficient. Since
apparently the option doesn't hurt when building older libzip versions,
we just add it unconditionally.
libzip can use several different crypto libraries, and checks their
availability by default. It then processes this information in a
certain order, and uses the first of these libraries that are have been
found.
We always want to use the Windows cryptography library (bcrypt), so we
ensure that only support for this is enabled.
Newer libavif versions require libyuf, so we enable the local build.
Furthermore, we need to adjust the AOM options, which have obviously
been changed.
This is supposed to work for libpng 1.6.43, but not for libpng 1.6.34,
for instance.
Besides switching from MSBuild to CMake, we also no longer build zlib,
but instead rely on the zlib build already provided as dependency of
the respective PHP version.
To have the `.pdb`s, we work around the apparently common issue that
these are not properly installed.
We also append the soname suffix (`16` in this case) to the include
directory for BC reasons.
* Add support for vs17 builds (for PHP 8.4)
We make the necessary additions to `compute-virtuals.ps1`, where the
choice of the WinSDK is somewhat arbitrary but rather conservative.
* Switch from windows-2019 to windows-2022 runners
This is needed to actually be able to do vs17 builds, since that
requires Visual Studio 2022, which is not available on the windows-
2019 runners. That implies that vc15 builds are no longer possible
without additional changes[1], but that shouldn't be a concern because
none of the supported PHP versions require vc15 builds.
[1] <https://github.com/actions/runner-images/issues/9701>
* Update CMake generators
Since window-2022 uses Visual Studio 2022, we need to update the CMake
generators; using the proper toolset is already catered to by the `-T`
option.
* Bump vs16 Windows SDK to 10.0.20348.0
This solves the stdalign.h issue for ICU 75.1.
`actions/checkout@v3` is deprecated, so we update to v4. We do not
expect any trouble with this update, since we already treated the
upload artifacts as immutable, but nonetheless we did a couple of test
builds (argon2, zlib and libjpeg) and the results appear to be fine.
`microsoft/setup-msbuild@v1` uses `node16` which is deprecated; `v2`
claims to change no functionality, only upgrading to `node20`[1].
We rolled a couple of builds (libiconv, libsodium and icu4c), and
checked that the results are sensible (without really testing them).
[1] <https://github.com/microsoft/setup-msbuild/releases/tag/v2>
`actions/checkout@v3` is deprecated, so we update to v4. This is done
without further tests, but a mere search and replace. We do not expect
anything to break, but even if so, we can still fix these issues.