add Windows ARM64EC build and CI support #2168
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a re-land of #2165, with the issue of the incorrect inclusion of
<intrin.h>
on non-Windows platforms addressed.I tested building this locally using the following combinations:
arm64
x86_64
x86_64
X64
ARM64
ARM64EC
I also tested running the tests on a Windows 11 ARM64 VM and they all passed.
This PR also adds an
ARM64EC
architecture CI build workflow towindows-vs17
. See here for an example of a passing CI run. I had to switch thevs17-arm-ci
builds to target the Windows 11 SDK because ARM64EC is Windows 11 only.It's not currently possible (as far as I know) to actually run Windows ARM tests in CI, so - as before - the Windows ARM CI workflows are build-only.
Note that support for
ARM64EC
was added in CMake 3.20.0 and improved in 3.23.0. The minimum version of CMake declared in theCMakeLists.txt
file is 3.14.0. I'm not sure if we need to do something about that minimum version.