-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problems with using ARM64EC #40158
Comments
How is the warning false? The warning is generated by looking at what things
CMake integration explicitly sets triplets, it doesn't use the default one: vcpkg/scripts/buildsystems/vcpkg.cmake Line 526 in cf035d9
vcpkg/scripts/buildsystems/vcpkg.cmake Line 233 in cf035d9
VCPKG_DEFAULT_TRIPLET only affects the command line when a triplet is not supplied, but the CMake integration sets one.
If the user asks for arm64ec, the produced bits need to be built for arm64ec. That you can ultimately compose a process with a mix of different bits later doesn't change what the user asked for. Removing this check would allow the vast majority of OSS world, that does not care about arm64ec, to give up and continue building for amd64, and thus 'succeed' but not actually produce arm64 bits. |
There is no "Developer Command Prompt for ARM64EC". ARM64EC and ARM64 use the same developer command prompt, and compiler toolset version. The only difference is adding a The confusing thing is that you are allowed to freely mix ARM64, X64, and ARM64EC binaries in the same process. That's why the binaries warning here is super confusing. |
…64 developer command prompt. Partial response to microsoft/vcpkg#40158
This is microsoft/vcpkg-tool#1581 . I'm still not sure about the architecture check. I asked around with some arm64ec experts. |
I'm attempting to use ARM64EC with VCPKG and CMake. I'm using the
arm64ec-windows
community triplet, and have run into a number of problems.VCPKG_DEFAULT_TRIPLET=arm64ec-windows
on a x64_arm64 command prompt, it's emitting a false warningThe
VCPKG_DEFAULT_TRIPLET
environment variable seems to be ignored or overwritten in thevcpkg.cmake
toolchain file and I have to explicitly useVCPKG_TARGET_TRIPLET=arm64ec-windows
to make it work at all.When using 'manifest mode', it still insists on trying to use
vcpkg_installed\arm64-windows
instead ofvcpkg_installed\arm64ec-windows
even withVCPKG_DEFAULT_TRIPLET=arm64ec-windows
andVCPKG_TARGET_TRIPET=arm64ec-windows
set. It only works with an explicit-DVCPKG_TARGET_TRIPLET=arm64ec-windows
. Are the environment variables ignored for manifest mode?For ARM64EC, you can use binaries that are x64 or arm64ec, but not arm64. Therefore, this warning is false and confusing:
The text was updated successfully, but these errors were encountered: