Comments (14)
Yes, I've submitted #394 for this.
from b2.
But ideally a new version
msvc-14.4
should be introduced, I guess. On the other hand, this is a case where a 'minor' update of Visual Studio 2022, namely going from v17.9 to v17.10, introduces a 'new' toolchain version starting with14.40
.Not sure there is a version bump, but preview isn't a minor update. Many fixes (including one I need) aren't released in regular updates, but preview often has them
Yeah, but b2
typically handles major Visual Studio versions as different msvc-*
toolsets. E.g.:
- Visual Studio 2022-14.3
- Visual Studio 2019-14.2
- Visual Studio 2017—14.1
- Visual Studio 2015—14.0
- Visual Studio 2013—12.0
- Visual Studio 2012—11.0
- Visual Studio 2010—10.0
- Visual Studio 2008—9.0
- Visual Studio 2005—8.0
- Visual Studio .NET 2003—7.1
- Visual Studio .NET—7.0
- Visual Studio 6.0, Service Pack 5--6.5
Normally you would expect the "14.4" version only for Visual Studio 2024 (or 2025, not sure what MS's plans are). Not for a preview version of the next minor update of Visual Studio 2022.
from b2.
The (MSVC) toolset remains at version v143 in VS 17.10, so the (b2) toolset should still be msvc-14.3.
It's not clear what MS will decide to do for the next version of Visual Studio, but if they break ABI (at last) it would probably be msvc-15.0 on our end. If not, we'll need to decide whether to go with msvc-14.4 or msvc-14.5. :-)
from b2.
The minimal fix is:
diff --git a/src/tools/msvc.jam b/src/tools/msvc.jam
index f56f1cedb..7862e9988 100644
--- a/src/tools/msvc.jam
+++ b/src/tools/msvc.jam
@@ -1119,7 +1119,7 @@ local rule generate-setup-cmd ( version : command : parent : options * : cpu : g
}
else
{
- if [ MATCH "(14.3)" : $(version) ]
+ if [ MATCH "(14.[34])" : $(version) ]
{
if $(.debug-configuration)
{
But ideally a new version msvc-14.4
should be introduced, I guess. On the other hand, this is a case where a 'minor' update of Visual Studio 2022, namely going from v17.9 to v17.10, introduces a 'new' toolchain version starting with 14.40
.
E.g., I don't think there is a way to install both v17.9 and v17.10 side-by-side, so b2's msvc-14.3
would still indicate "whatever the current version of Visual Studio 2022 is".
In that case, the fix above would probably be enough for the time being, until Microsoft releases e.g. Visual Studio 2024 and bumps the toolchain version to 14.5 or even 15.0 ...
@Kojoley @grafikrobot what's your opinion on this?
from b2.
But ideally a new version
msvc-14.4
should be introduced, I guess. On the other hand, this is a case where a 'minor' update of Visual Studio 2022, namely going from v17.9 to v17.10, introduces a 'new' toolchain version starting with14.40
.
Not sure there is a version bump, but preview isn't a minor update. Many fixes (including one I need) aren't released in regular updates, but preview often has them
from b2.
The (MSVC) toolset remains at version v143 in VS 17.10
Is it though? It tells its version as 14.40.33807.
from b2.
Yes, see the screenshots in https://devblogs.microsoft.com/cppblog/msvc-toolset-minor-version-number-14-40-in-vs-2022-v17-10/
from b2.
Even though it identifies as 14.40.something, it still is a minor Visual Studio 2022 update, and it behaves exactly the same as the 14.39.* and 14.38.* versions before it. On the other hand, the blog Peter just pointed to seems to indicate that it might be possible to have both installed side-by-side?
from b2.
Indeed, it looks like you can do that explicitly now (this is a screenshot of the Visual Studio Installer's "Individual components" tab):
![MSVC-installer](https://private-user-images.githubusercontent.com/9060368/333235155-714374a5-9ee0-43e1-8c95-7d309f2a4cc2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4Mzk3NjYsIm5iZiI6MTcxOTgzOTQ2NiwicGF0aCI6Ii85MDYwMzY4LzMzMzIzNTE1NS03MTQzNzRhNS05ZWUwLTQzZTEtOGM5NS03ZDMwOWYyYTRjYzIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcwMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MDFUMTMxMTA2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTIyYjI5NjY4MDQwOGRhOWEyOGVkNDBkMGY2YTBjNjczMDQ2OWQ2OTNiMDUyOTY0ZjI4NDNiMzA0MjFlNWZkMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.-XkOauvOe7d-xZz5Zb1nQVB_XkwZtYXhNTChVS6QVAE)
but I don't think b2 ever supported picking any of these fine-grained versions?
from b2.
Side by side is unrelated to this; you can also have 14.38 and 14.39 installed side by side. They are still all "platform toolset Visual Studio 2022 (v143)". (Whereas e.g. 14.24, which you can also have, is "platform toolset Visual Studio 2019 (v142)".
from b2.
I cannot express my feelings about the version bullshit microsoft creates for every their product. The compiler already has like 3 distinct versions simultaneously, now we again have to square the circle.
from b2.
Well, I just installed the "v14.39-17.9" component, and I now have both 14.39.33519
and 14.40.33807
in my MSVC directory:
Directory of C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\*
2024-05-23 17:00 <DIR> 14.39.33519
2024-05-23 15:21 <DIR> 14.40.33807
It looks like msvc.jam
now chooses the first one, always. I don't see a way to tell it to use one or the other.
With vcvars64.bat
, you can at least pass -vcvars_ver=14.40.33807
to pick the one you want.
from b2.
The compiler already has like 3 distinct versions simultaneously
Make that 4 if counting the Visual Studio version (17.10).
It is what it is.
from b2.
I don't see a way to tell it to use one or the other.
There has never been such a way and I've never missed it. We just need to tell b2 that 14.4x is still msvc-14.3 and be done with it.
from b2.
Related Issues (20)
- `ar` response files under MinGW contain paths with backslashes, which fails
- b2 fails to build for clang 3.6 HOT 1
- FreeBSD builds in CI HOT 2
- Manifest-related problems with b2 building in msvc-14.0 HOT 2
- Can't compile and install b2 with b2 HOT 1
- How to build clangw .lib HOT 2
- `b2` build fails on gcc 4.8 HOT 1
- b2 can't find MSVC toolset for Visual Studio 2022 v17.9.0 HOT 2
- Warnings about freeing a non-allocated object
- Infinite recursion in `bcp` tests HOT 3
- Config checks using `address-model=32` in Linux don't use the right flags HOT 2
- [question] Best way to pass _GLIBCXX_USE_CXX11_ABI=0/1 using b2?
- Should --abbreviate-paths be made default under Windows? HOT 15
- lzma.jam doesn't support building from source, like zlib.jam and bzip2.jam HOT 1
- zstd.jam doesn't support building from source, as zlib.jam and bzip2.jam do
- Linking Fails - dangerous relocation: R_AMD64_IMAGEBASE with __ImageBase undefined HOT 2
- Generate compile_commands.json HOT 8
- build error-boost1.85 with VS2022 under win10 HOT 1
- after setting using zstd in project-config.jam boost.iostreams still can not detect zstd HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from b2.