Azure build pipelines don’t yet support arm64 machines (but will soon).
In the meantime, I want at least start building for arm64 in my CI pipelines on Azure.
I’m able to build other projects cmake -G "Visual Studio 17 2022" -DCMAKE_GENERATOR_PLATFORM=arm64 on a Windows agent.
With JUCE (7.0.4) however, the process fails. I found out that it is because juceaide is built (built fo arm64) and executed during the cmake generate call (before even building). Since the agent is a x86/x64 machine, the execution fails.
Is there a simple way to cross-compile? (e.g. have juceaide built for x86 while building my project im arm64)
2 Likes
Did you ever figure out how do this?
reuk
June 26, 2024, 1:53pm
4
I believe this should work on the current develop branch, as long as you have both sets of build tools (x64 + ARM64) installed.
This works for me on an x64 machine:
cmake -G "Visual Studio 17 2022" -A ARM64 -B cmake-build-arm64
2 Likes
jimc
June 26, 2024, 3:00pm
5
Nice one, will give it a go. Had my first complaint from an ARM windows user
drmr-2
July 14, 2025, 12:06pm
6
Hmm, I’m trying to build native using Github Action windows-11-arm runners.
However they are using an amd64 binary for cmake and thus it recognizes CMAKE_HOST_SYSTEM_PROCESSOR incorrectly as amd64 as well and subsequently setting JUCE_WINDOWS_HELPERS_CAN_RUN to false.
The cause is described here: Windows arm64 hosted runners now available for free in public repositories (Public Preview) · community · Discussion #155713 · GitHub
Your suggestion to add -B cmake-build-arm64 to force the cross-compile doesn’t work though.
Any suggestions on how to proceed?
@drmr-2
I have tried some mang flags and none of them works it seems that the whole toolchain is messed up on windows-11-arm images.
My best guess is that we have to wait for the image update
opened 11:33PM - 16 Apr 25 UTC
**Type of issue**
- [ ] Error when running a workflow.
- [X] Request for additio… nal tools or software for an existing image.
- [ ] Request for a new image, Linux or Windows.
- [ ] Other
**Describe the issue**
Current CMake binaries are x86_64. This causes the architecture detection issues. `CMAKE_HOST_SYSTEM_PROCESSOR` and `CMAKE_SYSTEM_PROCESSOR` are set to `AMD64` when using emulated cmake binaries. While we expect them to be `ARM64`. This makes building native binaries more complicated than it should be.
**To Reproduce**
```
PS > file "C:\Program Files\CMake\bin\cmake.exe"
C:\Program Files\CMake\bin\cmake.exe: PE32+ executable for MS Windows 6.01 (console), x86-64, 7 sections
```
You can also reproduce with any CMake project and print `CMAKE_HOST_SYSTEM_PROCESSOR` or `CMAKE_SYSTEM_PROCESSOR`. And observe the value.
**Expected behavior**
```
PS > file "C:\Program Files\CMake\bin\cmake.exe"
C:\Program Files\CMake\bin\cmake.exe: PE32+ executable for MS Windows 6.02 (console), ARM64, 7 sections
```
`CMAKE_HOST_SYSTEM_PROCESSOR` and `CMAKE_SYSTEM_PROCESSOR` expected to be `ARM64` by default.
**Desktop (please complete the following information):**
- OS: `windows-11-arm`
opened 02:29AM - 17 Apr 25 UTC
**Type of issue**
- [ ] Error when running a workflow.
- [X] Request for additio… nal tools or software for an existing image.
- [ ] Request for a new image, Linux or Windows.
- [ ] Other
**Describe the issue**
It looks like the Visual Studio installation is not fully installed correctly for arm64. As we can read here https://learn.microsoft.com/visualstudio/install/visual-studio-on-arm-devices it has native support. And important part is
> For Windows 11 Arm64, you must uninstall all previous versions of Visual Studio (x64, x86) before installing Visual Studio 2022 version 17.4 or later.
I don't know how it was installed, but by inspecting current installation I can say that it differs from clean ARM64 install. The installation on `windows-11-arm` looks like x86_64 installation with native arm64 tools. I don't know the exact structure. I did simple validation of `devenv.exe` which is currently AMD64. But after clean installation of Visual Studio ARM64 binary is available. This is only simple test, there are way more components installed.
**To Reproduce**
```
> file "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe"
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe: PE32+ executable for MS Windows 6.00 (GUI), x86-64, 9 sections
```
**Expected behavior**
```
> file "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe"
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe: PE32+ executable for MS Windows 6.02 (GUI), ARM64, 7 sections
```
**Desktop (please complete the following information):**
- OS: `windows-11-arm`
1 Like