fix detection strategy for MSVC/VS2017+ #228
Merged
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.
fix detection strategy for MSVC/VS2017+
rc.exe
not found unless on PATH duringxmake config
#225Discussion
MSVC/VS versions >= 15.0 will no longer be setting registry entries for tool location purposes. But
vswhere
(included with MSVC/VS versions >= 15.2, and placed in a guaranteed location) can instead be used to find the needed path.os.runv(...)
is used as the tool to gathervswhere
output instead of($shell ...)
in order to avoid some($shell ...)
limitations. Commands containing white space and/or special characters (eg, '[', ')') are difficult or impossible to pass through the current($shell ...)
implementation, causing application exceptions. Both white space and the noted special characters are needed to construct the requiredvswhere
command.ref: https://github.com/Microsoft/vswhere/blob/master/README.md @@ https://archive.is/mEmdu