-
Notifications
You must be signed in to change notification settings - Fork 30
Fix build issue with VC ToolSets version 14.4X #576
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
base: main
Are you sure you want to change the base?
Conversation
|
Fixes #312 |
The previous code incorrectly derived platform toolset "v144" from MSVC toolset version 14.44+, but v144 does not exist. All VS 2022 versions (including 14.3X and 14.4X) use the v143 platform toolset. This fix properly maps toolset versions to their corresponding platform toolsets: - 14.0X -> v140 (VS 2015) - 14.1X -> v141 (VS 2017) - 14.2X -> v142 (VS 2019) - 14.3X-14.4X -> v143 (VS 2022) Reference: https://devblogs.microsoft.com/cppblog/msvc-toolset-minor-version-number-14-40-in-vs-2022-v17-10/ > The C++ Project System (MS Build) is being updated to support '14.4x' MSVC toolsets under the v143 Platform Toolset.
8767d18 to
ee4f087
Compare
|
So this PR basically adds an option Edit: I've tested this locally and it seems to work (other than rebuilding all the vcpkg deps because the hash changed due to the triplet file I guess). So I'm generally OK merging this, but I would put a big disclaimer explaining that this is a workaround for a vcpkg issue. Also, we now have a aarch64 triplet so that might need the same change if we want to be consistent. |
|
Thanks for testing it out. Let me do a little more research on that. The part I am not clear now is how vcpkg works. It might be a matter of upgrading vcpkg on my local machine or slangpy is not setup to use the latest? |
|
Changing to a draft because I don't think I got to the root of the cause. If I remember correctly, vcpkg was using 14.44 version and cmake was using 14.38 version. I think the problem is on cmake not recognizing 14.44.XXX as v143. I need to investigate more. |
This is another attempt to get the PR #315 working.
Here is what is different from PR #315.
The MSVC Toolset version for VS2022 is v14.3.
However MS used up the minor version number from 14.31.XXX to 14.39.XXX and started using 14.40.XXX.
Although the first three digits of the version numbers are 144, 14.4X is still considered v14.3 toolset.
The current CMake setup needs to recognize this correctly.
You can find more official details and explanations from the following URL:
https://devblogs.microsoft.com/cppblog/msvc-toolset-minor-version-number-14-40-in-vs-2022-v17-10/