cmGlobalVisualStudio10Generator: Add method to find MSBuild early

Add a way to find MSBuild before the main `FindMakeProgram` code path
has executed.
This commit is contained in:
Brad King
2021-10-20 12:01:53 -04:00
parent 7f730464be
commit 6999b87133
4 changed files with 21 additions and 0 deletions

View File

@ -856,6 +856,12 @@ std::string const& cmGlobalVisualStudio10Generator::GetMSBuildCommand()
return this->MSBuildCommand;
}
cm::optional<std::string>
cmGlobalVisualStudio10Generator::FindMSBuildCommandEarly(cmMakefile*)
{
return this->GetMSBuildCommand();
}
std::string cmGlobalVisualStudio10Generator::FindMSBuildCommand()
{
std::string msbuild;

View File

@ -134,6 +134,8 @@ public:
bool GetSupportsUnityBuilds() const { return this->SupportsUnityBuilds; }
virtual cm::optional<std::string> FindMSBuildCommandEarly(cmMakefile* mf);
bool FindMakeProgram(cmMakefile* mf) override;
bool IsIPOSupported() const override { return true; }

View File

@ -718,6 +718,17 @@ cmGlobalVisualStudioVersionedGenerator::GetWindows10SDKMaxVersionDefault(
return std::string();
}
cm::optional<std::string>
cmGlobalVisualStudioVersionedGenerator::FindMSBuildCommandEarly(cmMakefile* mf)
{
std::string instance = mf->GetSafeDefinition("CMAKE_GENERATOR_INSTANCE");
if (!this->SetGeneratorInstance(instance, mf)) {
cmSystemTools::SetFatalErrorOccured();
return {};
}
return this->cmGlobalVisualStudio14Generator::FindMSBuildCommandEarly(mf);
}
std::string cmGlobalVisualStudioVersionedGenerator::FindMSBuildCommand()
{
std::string msbuild;

View File

@ -31,6 +31,8 @@ public:
bool GetVSInstance(std::string& dir) const;
cm::optional<std::string> FindMSBuildCommandEarly(cmMakefile* mf) override;
cm::optional<std::string> GetVSInstanceVersion() const override;
AuxToolset FindAuxToolset(std::string& version,