Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare vs17 library builds #7

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open

Prepare vs17 library builds #7

wants to merge 5 commits into from

Conversation

cmb69
Copy link
Contributor

@cmb69 cmb69 commented Jul 16, 2024

To be able to do vs17 (aka. Visual Studio 2022) builds, we need to switch to windows-2022 runners (or would need to install that VS version on windows-2019). Instead of using either runners, we use windows-2022 for vs17 and as well as vs16 builds, what shouldn't be a problem, and solves the potential issue that windows-2019 runners may not provided until end of 2027 (where we still may have to build PHP 8.3 dependencies). windows-2022 runners do no longer support vc15 by default, but that shouldn't be a problem, since none of the supported PHP versions need vc15 builds.

Note that this is barely tested yet, thus I'm submitting this as draft PR.

We make the necessary additions to `compute-virtuals.ps1`, where the
choice of the WinSDK is somewhat arbitrary but rather conservative.
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] <actions/runner-images#9701>
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.
Windows SDK 10.0.18362.0 is not available on windows-2022 runners.
This solves the stdalign.h issue for ICU 75.1.
@cmb69
Copy link
Contributor Author

cmb69 commented Sep 8, 2024

While I have not been able to thoroughly test this, I'm marking the PR as ready for review, since there is not much time until PHP 8.4.0 goes into RC stage, and we should probably rebuilt all dependencies with vs17.

An alternative to switching to windows-2022 runners would be to take the version (2019 vs. 2022) as input argument, and to remove the PHP version input for those workflows which don't need dependencies (for the others we would need to ask for both runner version and PHP version).

Note that there is some overlap with PR #9; especially which Windows SDK versions to use is something to consider.

@cmb69 cmb69 marked this pull request as ready for review September 8, 2024 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant