|
|
@@ -328,6 +328,9 @@ bool cmVSSetupAPIHelper::EnumerateAndChooseVSInstance()
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ // FIXME: Add a way for caller to specify other versions.
|
|
|
+ std::wstring wantVersion = std::to_wstring(15) + L'.';
|
|
|
+
|
|
|
SmartCOMPtr<ISetupInstance> instance;
|
|
|
while (SUCCEEDED(enumInstances->Next(1, &instance, NULL)) && instance) {
|
|
|
SmartCOMPtr<ISetupInstance2> instance2 = NULL;
|
|
|
@@ -343,6 +346,12 @@ bool cmVSSetupAPIHelper::EnumerateAndChooseVSInstance()
|
|
|
instance = instance2 = NULL;
|
|
|
|
|
|
if (isInstalled) {
|
|
|
+ // We are looking for a specific major version.
|
|
|
+ if (instanceInfo.Version.size() < wantVersion.size() ||
|
|
|
+ instanceInfo.Version.substr(0, wantVersion.size()) != wantVersion) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
if (!this->SpecifiedVSInstallLocation.empty()) {
|
|
|
// We are looking for a specific instance.
|
|
|
std::string currentVSLocation = instanceInfo.GetInstallLocation();
|