| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A specific block of the new vsDevCmd.bat may cause system error. Use env var 'VSCMD_SKIP_SENDTELEMETRY' to skip it.
Solution referrer: <https://developercommunity.visualstudio.com/content/problem/694847/vsdevcmdbat-developer-prompt-causes-the-input-line.html>
|
|
|
|
|
|
|
|
|
|
are setted at same time.
|
|
|
|
* use `tonumber()` conversion instead of `(x + 0)` (more explicit)
* remove redundant listing of VC/VS versions
|
|
|
|
|
|
|
|
.# Discussion
Older MSVC/VS versions don't define the "VisualStudioVersion" environment variable.
Prior to this fix, when executing within an already prepared environment (eg, the
"Visual Studio Command Prompt") with those older MSVC/VS builds, the search logic would
incorrectly try to search for all installed versions and read their environments. But
since the environment had already been prepped, executing `vsvarsall` for any found
MSVC/VS versions resulted in a superimposed and confused/invalid environment.
For the older MSVC/VS versions without "VisualStudioVersion", this fix does use
heuristics to guess at the correct version (and it's corresponding vsvers value [used as
the results key value]). But, even if the wrong version is guessed, the results from
find_vstudio are clean, without any environmental superposition, and fully usable for
compilation.
|
|
* some versions (especially early versions) of MSVC/VS may not define the WindowsSDKVersion environment variable
|
|
|
|
|
|
* fixes the MSVC/VS 2017 detection problem discussed within <https://github.com/tboox/xmake/issues/225>
.# Discussion
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 gather `vswhere` 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 required `vswhere` command.
ref: <https://github.com/Microsoft/vswhere/blob/master/README.md> @@ <https://archive.is/mEmdu>
|
|
|
|
(xmake config --vs=2003)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|