Skip to content

Add support for ARM64#87

Merged
freakboy3742 merged 12 commits intobeeware:mainfrom
ankitects:anki
Apr 16, 2026
Merged

Add support for ARM64#87
freakboy3742 merged 12 commits intobeeware:mainfrom
ankitects:anki

Conversation

@abdnh
Copy link
Copy Markdown
Contributor

@abdnh abdnh commented Apr 10, 2026

This updates the template to work for ARM64:

  • Add Debug/Release configurations.
  • Use the official pythonarm64 NuGet package.
  • Update update-binary.yml

I'll submit an accompanying PR for briefcase later.

Issue: beeware/briefcase#1887

PR Checklist:

Copy link
Copy Markdown
Member

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

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

Thanks - this is obviously a little difficult to fully review without the corresponding Briefcase PR; but it looks to be broadly on the right track. A few comments inline.

Comment thread .github/workflows/update-binary.yml Outdated
Comment thread .github/workflows/update-binary.yml Outdated
Comment thread README.rst Outdated
Comment thread cookiecutter.json Outdated
"pre_uninstall_script": "",
"python_version": "3.X.0",
"host_arch": "AMD64",
"configuration": "{{ 'ARM64' if cookiecutter.host_arch == 'ARM64' else 'x64' }}",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

"configuration" is a little vague here - and internal to VSCode, I think "Configuration" is more about "Release" or "Debug"; maybe "vscode_platform"?

<package id="pythonarm64" version="{{ cookiecutter.python_version|nuget_version }}" targetFramework="native" />
{% else %}
<package id="python" version="{{ cookiecutter.python_version|nuget_version }}" targetFramework="native" />
{% endif %}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If there no way for this to contain both, selected conditionally on which target is being used? Or, alternatively - produce two packages.config files selecting the right file as appropriate? It seems weird to have a VSCode file that works for both architectures, but a packages.config that only works for one.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I couldn't find a way to do it dynamically. Looks like Visual Studio supports an alternative way of specifying packages in the project file (PackageReference) but the Platform property doesn't appear to be supported there.

@abdnh abdnh requested a review from freakboy3742 April 13, 2026 12:05
Copy link
Copy Markdown
Member

@freakboy3742 freakboy3742 left a comment

Choose a reason for hiding this comment

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

Thanks for those updates; this works great in conjunction with beeware/briefcase#2797 in my testing.

@freakboy3742 freakboy3742 merged commit e60c5be into beeware:main Apr 16, 2026
18 checks passed
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