Skip to content

Add Windows ARM64 support in CI#1146

Open
Harishmcw wants to merge 1 commit into
PortAudio:masterfrom
Harishmcw:win_arm64
Open

Add Windows ARM64 support in CI#1146
Harishmcw wants to merge 1 commit into
PortAudio:masterfrom
Harishmcw:win_arm64

Conversation

@Harishmcw
Copy link
Copy Markdown

This PR adds Windows ARM64 support to the MSBuild and CMake CI workflows.

Changes:

  • CMake
    • Added Windows-MSVC-ARM64 and Windows-MinGW-ARM64 jobs.
    • Configured appropriate vcpkg triplets and generators.
    • Added conditional -A handling for MSVC ARM64 builds.
  • MSBuild
    • Added ARM64 platform configuration to portaudio.vcproj and portaudio.sln
    • Added ARM64 to the CI build matrix.

Comment thread .github/workflows/cmake.yml
Copy link
Copy Markdown
Collaborator

@RossBencina RossBencina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To check that this wasn't going to create backward compatibility problems I opened the .sln solution in Visual Studio 2005. There were no obvious problems introduced by the presence of the ARM64 configuration (it would not build of course). The Win32 target seemed to build (modulo some unrelated errors that we should probably fix).

Could I get you to fix one more thing please? : When I opened the solution ARM64 was already the selected configuration. Could you make open with the 64-bit intel config please?

@Harishmcw
Copy link
Copy Markdown
Author

Hi @RossBencina,

After some investigation I found that on Visual Studio 2005, the default configuration is picked alphabetically, since ARM64 sorts before x64, it ends up selected by default.

@RossBencina
Copy link
Copy Markdown
Collaborator

@Harishmcw thanks for looking into it. We're intending to merge this as-is but could you please provide us with a short explanation of how you made the changes to the .vcproj file? Have you tested it locally? I don't have the ARM toolchain installed here. I can confirm that the .vcproj does load and convert in VS2022 with a warning about no ARM toolchain (see below) not a problem, just commenting for completeness. Interestingly VS2022 then selects the x64 configuration non-alphabetically even though there is a Win32 configuration.

image

Copy link
Copy Markdown
Collaborator

@RossBencina RossBencina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved, but let's finish the conversation first. I would like to know how you generated the .vcproj changes, including which VisualStudio version you used, and whether you tested it locally. We may include some of these details in the commit message.

@Harishmcw
Copy link
Copy Markdown
Author

The .vcproj changes were made manually by cloning the existing x64 configuration blocks, adding _ARM64 to preprocessor definitions, and updating output filenames. The updated .vcproj was upgraded to .vcxproj using Visual Studio 2022 and built successfully for ARM64 locally, producing portaudio_arm64.dll.

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.

2 participants