summaryrefslogtreecommitdiff
path: root/xmake/modules/detect/sdks/find_vstudio.lua
AgeCommit message (Collapse)Author
2018-10-16format coderuki
2018-10-15fix find_vstudio when executing from an already defined MSVC command promptRoy Ivy III
.# 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.
2018-10-15fix "fix UCRTVersion" logic for possibly missing WindowsSDKVersionRoy Ivy III
* some versions (especially early versions) of MSVC/VS may not define the WindowsSDKVersion environment variable
2018-10-15improve find_rcruki
2018-10-15improve find_vswhere and find_vstudioruki
2018-10-14fix detection strategy for MSVC/VS2017+Roy Ivy III
* 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>
2018-10-14fix missing rc.exe and add find_vswhereruki
2018-09-04Fix bug for VS2003 can't be found夕伽
(xmake config --vs=2003)
2018-08-17improve find_vstudioruki
2018-06-27fix find_vstudio bugruki
2018-05-22improve find_vstudioruki
2018-04-28fix ucrt version for find_vstudioruki
2018-03-27add vsvaralls bat pathruki
2017-12-28update copyright dateruki
2017-11-29fix generate vcvarsall data file errorruki
2017-08-27update description and indexruki
2017-06-30get vstudio sdk versionruki
2017-06-19impl has_flags and rename detect.xxx to detect.xxxsruki