Skip to content

Add Windows ARM64 vcpkg target#1370

Open
dakehero wants to merge 1 commit into
tectonic-typesetting:masterfrom
dakehero:add-windows-arm64-vcpkg-target
Open

Add Windows ARM64 vcpkg target#1370
dakehero wants to merge 1 commit into
tectonic-typesetting:masterfrom
dakehero:add-windows-arm64-vcpkg-target

Conversation

@dakehero
Copy link
Copy Markdown

@dakehero dakehero commented May 18, 2026

Summary

This adds vcpkg support for the aarch64-pc-windows-msvc Rust target by:

  • adding an arm64-windows-static-release vcpkg triplet
  • registering aarch64-pc-windows-msvc in package.metadata.vcpkg.target
  • adding a Windows ARM64 vcpkg CI matrix entry

Verification

Verified on my fork with a targeted workflow that runs the same prep flow and packages the Windows ARM64 binary:

https://github.com/dakehero/tectonic/actions/runs/26043396816

The workflow completed:

  • prep / main
  • prep / rustfmt
  • windows-arm64-vcpkg
  • Install vcpkg dependencies
  • Build and package

@dakehero dakehero marked this pull request as draft May 18, 2026 14:29
@dakehero dakehero force-pushed the add-windows-arm64-vcpkg-target branch from bd074fa to 5ff8f00 Compare May 18, 2026 14:34
@dakehero dakehero marked this pull request as ready for review May 19, 2026 16:09
test-flags:
description: "Extra flags to pass to `cargo test`"
required: false
run-tests:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there a particular reason ARM doesn't run tests? If any are failing, that may be a sign things need fixed.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

The current ARM64 entry is a cross-build on an x64 runner, so the e2e tests cannot simply run without an emulation layer. Would you prefer that I keep this cross-build-only job or should I add a separate windows-11-arm job for native ARM64 Windows build and test coverage?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hm. I think it's fine this way, no strong opinion either way for now.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 29.54%. Comparing base (cafcb17) to head (5ff8f00).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1370      +/-   ##
==========================================
- Coverage   29.54%   29.54%   -0.01%     
==========================================
  Files         273      273              
  Lines      180506   180506              
  Branches   180506   180506              
==========================================
- Hits        53328    53327       -1     
  Misses      55476    55476              
- Partials    71702    71703       +1     
Components Coverage Δ
tectonic 51.40% <ø> (ø)
bridge_core 34.16% <ø> (ø)
bridge_flate 17.64% <ø> (ø)
bridge_fontconfig 96.17% <ø> (ø)
bridge_freetype2 92.70% <ø> (ø)
bridge_graphite2 42.47% <ø> (ø)
bridge_harfbuzz 82.83% <ø> (ø)
bridge_icu ∅ <ø> (∅)
bridge_png 100.00% <ø> (ø)
bundles 34.94% <ø> (ø)
cfg_support 94.84% <ø> (ø)
dep_support 0.00% <ø> (ø)
docmodel 84.61% <ø> (ø)
engine_bibtex 66.45% <ø> (ø)
engine_spx2html 0.00% <ø> (ø)
engine_xdvipdfmx 64.30% <ø> (ø)
engine_xetex 35.27% <ø> (ø)
errors 47.61% <ø> (ø)
geturl 28.20% <ø> (ø)
io_base 76.11% <ø> (ø)
pdf_io 14.19% <ø> (-0.01%) ⬇️
status_base 74.69% <ø> (ø)
xdv 55.28% <ø> (ø)
xetex_format 23.31% <ø> (ø)
xetex_layout 56.82% <ø> (ø)

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dakehero dakehero force-pushed the add-windows-arm64-vcpkg-target branch 2 times, most recently from a4fd580 to 5ff8f00 Compare May 26, 2026 18:53
test-flags:
description: "Extra flags to pass to `cargo test`"
required: false
run-tests:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hm. I think it's fine this way, no strong opinion either way for now.

Comment thread .github/workflows/build_and_test.yml Outdated
target: ${{ matrix.data.target }}
publish: ${{ matrix.data.image != 'ubuntu-latest' }}
run-tests: ${{ matrix.data.run-tests != false }}
publish: ${{ matrix.data.publish != false && matrix.data.image != 'ubuntu-latest' }}
Copy link
Copy Markdown
Contributor

@CraftSpider CraftSpider May 26, 2026

Choose a reason for hiding this comment

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

I think something is going wrong here, even the x86_64 vcpkg build didn't publish an artifact.

Edit: Unless that's related to the force-push you just made. I've re-approved CI

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Sorry for the back-and-forth here. I experimented with a native windows-11-arm pipeline, but there's a Cranko setup issue on the ARM64 runner, so I backed that out to keep this PR focused on the cross-build target.

@dakehero dakehero force-pushed the add-windows-arm64-vcpkg-target branch from 5ff8f00 to 761ac7f Compare May 28, 2026 16:07
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