cmGlobalVisualStudioVersionedGenerator: Allow repeating SetGeneratorInstance

This commit is contained in:
Brad King 2021-10-20 11:58:39 -04:00
parent 6511654164
commit 8917b8512f
2 changed files with 9 additions and 0 deletions

View File

@ -436,6 +436,9 @@ bool cmGlobalVisualStudioVersionedGenerator::MatchesGeneratorName(
bool cmGlobalVisualStudioVersionedGenerator::SetGeneratorInstance(
std::string const& i, cmMakefile* mf)
{
if (this->GeneratorInstance && i == *(this->GeneratorInstance)) {
return true;
}
if (!i.empty()) {
if (!this->vsSetupAPIHelper.SetVSInstance(i)) {
std::ostringstream e;
@ -472,6 +475,9 @@ bool cmGlobalVisualStudioVersionedGenerator::SetGeneratorInstance(
cmStateEnums::INTERNAL);
}
// The selected instance may have a different MSBuild than previously found.
this->MSBuildCommandInitialized = false;
return true;
}

View File

@ -8,6 +8,8 @@
#include <memory>
#include <string>
#include <cm/optional>
#include "cmGlobalVisualStudio14Generator.h"
#include "cmVSSetupHelper.h"
@ -72,4 +74,5 @@ private:
class Factory17;
friend class Factory17;
mutable cmVSSetupAPIHelper vsSetupAPIHelper;
cm::optional<std::string> GeneratorInstance;
};