VS: Extract instance version from VS Installer

This commit is contained in:
Justin Goshi
2020-06-02 12:46:07 -07:00
committed by Brad King
parent 35a192788f
commit 8a7ad923a8
4 changed files with 23 additions and 0 deletions

View File

@@ -366,6 +366,12 @@ bool cmGlobalVisualStudioVersionedGenerator::GetVSInstance(
return vsSetupAPIHelper.GetVSInstanceInfo(dir);
}
bool cmGlobalVisualStudioVersionedGenerator::GetVSInstanceVersion(
unsigned long long& vsInstanceVersion) const
{
return vsSetupAPIHelper.GetVSInstanceVersion(vsInstanceVersion);
}
bool cmGlobalVisualStudioVersionedGenerator::IsDefaultToolset(
const std::string& version) const
{

View File

@@ -29,6 +29,8 @@ public:
bool GetVSInstance(std::string& dir) const;
bool GetVSInstanceVersion(unsigned long long& vsInstanceVersion) const;
bool IsDefaultToolset(const std::string& version) const override;
std::string GetAuxiliaryToolset() const override;

View File

@@ -258,6 +258,20 @@ bool cmVSSetupAPIHelper::GetVSInstanceInfo(std::string& vsInstallLocation)
return isInstalled;
}
bool cmVSSetupAPIHelper::GetVSInstanceVersion(
unsigned long long& vsInstanceVersion)
{
vsInstanceVersion = 0;
bool isInstalled = this->EnumerateAndChooseVSInstance();
if (isInstalled) {
vsInstanceVersion =
static_cast<unsigned long long>(chosenInstanceInfo.ullVersion);
}
return isInstalled;
}
bool cmVSSetupAPIHelper::GetVCToolsetVersion(std::string& vsToolsetVersion)
{
vsToolsetVersion.clear();

View File

@@ -106,6 +106,7 @@ public:
bool IsVSInstalled();
bool GetVSInstanceInfo(std::string& vsInstallLocation);
bool GetVSInstanceVersion(unsigned long long& vsInstanceVersion);
bool GetVCToolsetVersion(std::string& vsToolsetVersion);
bool IsWin10SDKInstalled();
bool IsWin81SDKInstalled();