Extend support to include win-arm64 - #1323
Conversation
marcoesters
left a comment
There was a problem hiding this comment.
Nice! Just a few details to check.
| ${EndIf} | ||
| {%- elif win_arm64 %} | ||
| # Make sure we're actually on native ARM64 Windows. | ||
| ${IfNot} ${IsNativeARM64} |
There was a problem hiding this comment.
Can we have a similar check for the MSI installers?
There was a problem hiding this comment.
I did some investigation and couldnt find anything that exists today unfortunately. @freakboy3742 do you know if there is anything to check if an .msi installer is running on the wrong architecture? If not, let me know I'm happy to create a ticket.
There was a problem hiding this comment.
WiX (and therefore Briefcase-generated) installers do some CPU detection by default - if you try to run an ARM64 installer on x86-64, you get an error:
The inverse isn't true, however - ARM64 machines can run x86-64 installers (using CPU emulation mode). It might be possible to prevent this case as well, but it's not currently prevented by default.
There was a problem hiding this comment.
I see, perhaps also due to emulation it currently makes sense not to prevent it by default but perhaps exposing an option in pyproject.toml to enable/disable it would do the job? If you think so, let me know and Im happy to open a new ticket.
There was a problem hiding this comment.
Exposing it as an option seems plausible as an option; my main concern would be whether there's actually demand for it. From what I've seen, it won't be a trivial addition (as in - it's not a simple "if" statement or pre-existing MSI config option - we'd need to build it from low-level primitives). If this is a case of "theoretical" interest rather than a use case, then I'd rather avoid the complexity.
That said, I guess a ticket couldn't hurt from at least an information gathering capacity...
Description
This PR adds source-level support for
win-arm64(arch parsing, platform registration, etc.) such thatconstructorcan build ARM64 installers when invoked with--platform win-arm64. Does not addwin-arm64to CI — that's tracked separately.New error check - how it looks like running an

.exebuilt on my amd64 pc while running it on arm64 via parallels:Checklist - did you ...
newsdirectory (using the template) for the next release's release notes?