Skip to content

[visualstudio] Fix v120 toolset detection issue.#4

Merged
ras0219-msft merged 5 commits intomicrosoft:mainfrom
Hoikas:v120-detection-picked
Feb 9, 2021
Merged

[visualstudio] Fix v120 toolset detection issue.#4
ras0219-msft merged 5 commits intomicrosoft:mainfrom
Hoikas:v120-detection-picked

Conversation

@Hoikas
Copy link
Contributor

@Hoikas Hoikas commented Feb 6, 2021

Previously, the v120 toolset was only detected by finding Visual Studio 2013 with vswhere.exe. Unfortunately, vswhere.exe is only available if Visual Studio 2017 (or higher) is installed. So, if you are using a configuration that has only ever had Visual Studio 2015 and Visual Studio 2013 installed, then the community triplet x86-windows-v120 would fail with the error Could not find Visual Studio instance with v120 toolset. This can be easily observed by attempting to use vcpkg on the "Visual Studio 2015" AppVeyor image. Now that bootstrapping no longer requires Visual Studio >= 2015 available, this also affects machines that only have Visual Studio 2013 installed... eg the "Visual Studio 2013" AppVeyor image.

This pull request add version independent detection of Visual Studio 2013 to fix this issue. Because the detection code contained a lot of duplication before I started, this includes a round of de-duplication. I'm unfamiliar with the (what seemed to be) five different variants of string types in use in vcpkg, so please let me know if I goofed with making extra copies or something silly like that 😄.

Copy link
Contributor

@ras0219 ras0219 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me once the v160 changes are reverted. Thanks for the PR!

@Hoikas Hoikas force-pushed the v120-detection-picked branch from 83338aa to b76b5f4 Compare February 9, 2021 20:34
@ras0219-msft ras0219-msft merged commit 2d349cd into microsoft:main Feb 9, 2021
@Hoikas Hoikas deleted the v120-detection-picked branch February 10, 2021 00:05
vicroms added a commit to vicroms/vcpkg-tool that referenced this pull request Aug 28, 2025
# This is the 1st commit message:

WIP

# The commit message #2 will be skipped:

# Fix build error

# The commit message microsoft#3 will be skipped:

# Implement bulk operation

# The commit message microsoft#4 will be skipped:

# Remove unused struct

# The commit message microsoft#5 will be skipped:

# Follow redirects

# The commit message microsoft#6 will be skipped:

# Get HTTP response code

# The commit message microsoft#7 will be skipped:

# Map URL response code to the correct index

# The commit message microsoft#8 will be skipped:

# Map URL response code to the correct index

# The commit message microsoft#9 will be skipped:

# Undo changes to workflows

# The commit message microsoft#10 will be skipped:

# Implement store to asset cache

# The commit message microsoft#11 will be skipped:

# handle file:// protocol

# The commit message microsoft#12 will be skipped:

# Implement try_download_file

# The commit message microsoft#13 will be skipped:

# Add missing calls to curl_easy_cleanup

# The commit message microsoft#14 will be skipped:

# Fix global init

# The commit message microsoft#15 will be skipped:

# Replace all calls in downloads.cpp and fix unit tests

# The commit message microsoft#16 will be skipped:

# use libcurl to submit metrics payload

# The commit message microsoft#17 will be skipped:

# Use Schannel on Windows

# The commit message microsoft#18 will be skipped:

# Apply suggestions from code review
#
# Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

# The commit message microsoft#19 will be skipped:

# Fix unit test

# The commit message microsoft#20 will be skipped:

# Change curl error messages

# The commit message microsoft#21 will be skipped:

# generate message map

# The commit message microsoft#22 will be skipped:

# Always call multi_remove_handle

# The commit message microsoft#23 will be skipped:

# Fix end-to-end tests

# The commit message microsoft#24 will be skipped:

# Cleanup header lists

# The commit message microsoft#25 will be skipped:

# curl global init order

# The commit message microsoft#26 will be skipped:

# Use external libcurl on non-Windows

# The commit message microsoft#27 will be skipped:

# Install libcurl4 dev package on Linux

# The commit message microsoft#28 will be skipped:

# Disable metrics by default in debug builds

# The commit message microsoft#29 will be skipped:

# Set user agent using CURLOPT_USERAGENT

# The commit message microsoft#30 will be skipped:

# curl initialization again
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants