[build] Fix toolchain detection when using Microsoft Build Tools #2220
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change(s)
The environment variable used by
build_usd.py
to detect the version of the MSVC compiler is in fact an environment variable storing the version of Visual Studio, which is the IDE and has a different versioning than the compiler. And when using Microsoft Build Tools, only the compiler and SDKs are installed, and that environment variable doesn't even exist.This commit just uses the actual environment variable storing the MSVC compiler version (it's setup by both Visual Studio and the Build Tools) and fixes the
IsVisualStudio20XXOrGreater
helper functions to check against the compiler versions (see https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B the tableMSVC++ versions
)Edit: It also skips adding the
-A x64
platform option to the CMake command if the generator used isn't a Visual Studio Variant, because only those support that option (it gives an error when using Ninja for instance)Fixes Issue(s)
Fixes build using Microsoft Build Tools instead of Visual Studio.
I have verified that all unit tests pass with the proposed changes (not applicable, build issue only)
I have submitted a signed Contributor License Agreement