I'm having a very difficult time getting vcpkg hashes to line up, between
a pipeline and local build.
I really don't want developers to have to build locally.
I control compiler version (14.40.33815), Windows SDK (10.0.26100.1), and vcpkg version (2024.7.15.117-7aeffc910).
(I gave up on vcpkg git submodule due to credscan&policheck violations).
I got powershell and cmake to match with --x-abi-tools-use-exact-versions.
Here is example that still mismatches:
[DEBUG]
[DEBUG] additional_file_0|1186a9ad04d2e8b0519bd0b7ed50772596159e390fadbe87177a47ed08ddc79f
[DEBUG] cmake|3.29.2
[DEBUG] features|core
[DEBUG] portfile.cmake|1111194d640e760f4044653e004606f5705120fee6a1ef6768a33ca75cfabb4e
[DEBUG] ports.cmake|f8db054dffe069ca9588263db3ef29616483d7228316a32a89782d50035b99cb
[DEBUG] post_build_checks|2
[DEBUG] powershell|7.2.16
[DEBUG] triplet|arm64-windows
[DEBUG] triplet_abi|e6bccbf2cc220ab190d3b0c8a0904228c9d40b22f77053ca101ad75602c896e0-0433e2303d8e9448dd9cf29d3052811cb89f6324bfd45703cfd4ec1e4134228d-cf1102f5dcce2c0affbb3e089de1913275f6a24e
[DEBUG] vcpkg-cmake|b038c9149c91a2bb2ebdfa2eab04d44106452a21896862c07bf3ccb5487295e2
[DEBUG] vcpkg-cmake-config|6f3a39c2142532ca27a2c9099eac78f27ad6f4033b5ba7b4fabaa26afa0bf1c0
[DEBUG] vcpkg.json|dac667ac94055fd95ec4c437352788ef6c08da8050955c2480750bdd3e6a5ab0
[DEBUG] vcpkg_from_git|96ed81968f76354c00096dd8cd4e63c6a235fa969334a11ab18d11c0c512ff58
[DEBUG] vcpkg_from_github|b743742296a114ea1b18ae99672e02f142c4eb2bef7f57d36c038bedbfb0502f
[DEBUG]
vs.
[DEBUG]
[DEBUG] additional_file_0|1186a9ad04d2e8b0519bd0b7ed50772596159e390fadbe87177a47ed08ddc79f
[DEBUG] cmake|3.29.2
[DEBUG] features|core
[DEBUG] portfile.cmake|1111194d640e760f4044653e004606f5705120fee6a1ef6768a33ca75cfabb4e
[DEBUG] ports.cmake|f8db054dffe069ca9588263db3ef29616483d7228316a32a89782d50035b99cb
[DEBUG] post_build_checks|2
[DEBUG] powershell|7.2.16
[DEBUG] triplet|arm64-windows
[DEBUG] triplet_abi|e6bccbf2cc220ab190d3b0c8a0904228c9d40b22f77053ca101ad75602c896e0-0433e2303d8e9448dd9cf29d3052811cb89f6324bfd45703cfd4ec1e4134228d-cf1102f5dcce2c0affbb3e089de1913275f6a24e
[DEBUG] vcpkg-cmake|3022df2c12bcd1cb745a4815d118a34de016ca0a3e83349a7ed8b0fbf937320f
[DEBUG] vcpkg-cmake-config|82e1ad9f372901021909aa2ed08b3e6cc8e0b3a17bae4ce0987571ab785c2f96
[DEBUG] vcpkg.json|dac667ac94055fd95ec4c437352788ef6c08da8050955c2480750bdd3e6a5ab0
[DEBUG] vcpkg_from_git|96ed81968f76354c00096dd8cd4e63c6a235fa969334a11ab18d11c0c512ff58
[DEBUG] vcpkg_from_github|b743742296a114ea1b18ae99672e02f142c4eb2bef7f57d36c038bedbfb0502f
[DEBUG]
The differences are vcpkg-cmake and vcpkg-cmake-config.
What are these?
I see they have their own abientries earlier in log, but those match.
I see them in buildtrees, implying they are some builtin dependent package??
On which type of CI runner are you building? If it's an x64 machine, you will get a different host triplet than you have on a local arm64 device. In this case vcpkg-cmake and vcpkg-cmake-config would be built on x64-windows in CI and on arm64-windows on your device. Therefore, they would have a different triplet and thus have a different ABI hash.
You must use a CI runner that lets you run arm64 binaries natively; you cannot run on a x64 CI runner and set host triplet to arm64 because some of the binaries built on the host triplet may need to be run during the build of the target triplet.
This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 28 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.