Skip to content

fix(ci): setup MSVC environment for Windows ARM64 builds#489

Merged
echobt merged 1 commit intomasterfrom
fix/ci-windows-arm64-msvc-env
Jan 29, 2026
Merged

fix(ci): setup MSVC environment for Windows ARM64 builds#489
echobt merged 1 commit intomasterfrom
fix/ci-windows-arm64-msvc-env

Conversation

@echobt
Copy link
Contributor

@echobt echobt commented Jan 29, 2026

Problem

The ring crate build was failing on Windows ARM64 with:

include/ring-core/check.h:27:11: fatal error: 'assert.h' file not found

Even though clang was found in PATH, it couldn't locate the Windows SDK headers because the MSVC environment variables (INCLUDE, LIB, LIBPATH, etc.) weren't set.

Solution

Added the ilammy/msvc-dev-cmd@v1 action to set up the MSVC developer command prompt environment before building. This action:

  • Sets up all necessary environment variables (INCLUDE, LIB, LIBPATH, PATH)
  • Is configured with arch: amd64_arm64 for cross-compiling from x64 host to ARM64 target

The action runs before the LLVM path setup step, ensuring clang has access to all Windows SDK headers.

References

The ring crate build was failing with 'assert.h not found' error because
clang couldn't find the Windows SDK headers. This happens when building
for aarch64-pc-windows-msvc without the proper MSVC environment variables.

This fix adds the ilammy/msvc-dev-cmd action to set up the MSVC developer
command prompt environment (INCLUDE, LIB, LIBPATH, etc.) before building.
The action is configured with 'amd64_arm64' arch for cross-compiling from
x64 to ARM64.

Reference: briansmith/ring#2135
@echobt echobt merged commit f94d277 into master Jan 29, 2026
4 checks passed
@echobt echobt deleted the fix/ci-windows-arm64-msvc-env branch January 29, 2026 00:22
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