Add global generator factory method to get default platform name

This commit is contained in:
Brad King
2019-01-18 11:45:33 -05:00
parent 818df52c48
commit 8bba458ea5
10 changed files with 26 additions and 0 deletions

View File

@@ -41,6 +41,9 @@ public:
/** Get the list of supported platforms name for this generator */
virtual std::vector<std::string> GetKnownPlatforms() const = 0;
/** If the generator suports platforms, get its default. */
virtual std::string GetDefaultPlatformName() const = 0;
};
template <class T>
@@ -87,6 +90,8 @@ public:
// default is no platform supported
return std::vector<std::string>();
}
std::string GetDefaultPlatformName() const override { return std::string(); }
};
#endif

View File

@@ -100,6 +100,8 @@ public:
platforms.emplace_back("Itanium");
return platforms;
}
std::string GetDefaultPlatformName() const override { return "Win32"; }
};
cmGlobalGeneratorFactory* cmGlobalVisualStudio10Generator::NewFactory()

View File

@@ -109,6 +109,8 @@ public:
return platforms;
}
std::string GetDefaultPlatformName() const override { return "Win32"; }
};
cmGlobalGeneratorFactory* cmGlobalVisualStudio11Generator::NewFactory()

View File

@@ -84,6 +84,8 @@ public:
platforms.emplace_back("ARM");
return platforms;
}
std::string GetDefaultPlatformName() const override { return "Win32"; }
};
cmGlobalGeneratorFactory* cmGlobalVisualStudio12Generator::NewFactory()

View File

@@ -84,6 +84,8 @@ public:
platforms.emplace_back("ARM");
return platforms;
}
std::string GetDefaultPlatformName() const override { return "Win32"; }
};
cmGlobalGeneratorFactory* cmGlobalVisualStudio14Generator::NewFactory()

View File

@@ -99,6 +99,8 @@ public:
}
return platforms;
}
std::string GetDefaultPlatformName() const override { return "Win32"; }
};
cmGlobalGeneratorFactory* cmGlobalVisualStudio9Generator::NewFactory()

View File

@@ -159,6 +159,8 @@ public:
platforms.emplace_back("ARM64");
return platforms;
}
std::string GetDefaultPlatformName() const override { return "Win32"; }
};
cmGlobalGeneratorFactory*
@@ -234,6 +236,11 @@ public:
platforms.emplace_back("ARM64");
return platforms;
}
std::string GetDefaultPlatformName() const override
{
return VSHostPlatformName();
}
};
cmGlobalGeneratorFactory*

View File

@@ -152,6 +152,8 @@ public:
{
return std::vector<std::string>();
}
std::string GetDefaultPlatformName() const override { return std::string(); }
};
cmGlobalXCodeGenerator::cmGlobalXCodeGenerator(

View File

@@ -977,6 +977,7 @@ void cmake::GetRegisteredGenerators(std::vector<GeneratorInfo>& generators,
info.supportsToolset = gen->SupportsToolset();
info.supportsPlatform = gen->SupportsPlatform();
info.supportedPlatforms = gen->GetKnownPlatforms();
info.defaultPlatform = gen->GetDefaultPlatformName();
info.name = name;
info.baseName = name;
info.isAlias = false;

View File

@@ -105,6 +105,7 @@ public:
bool supportsToolset;
bool supportsPlatform;
std::vector<std::string> supportedPlatforms;
std::string defaultPlatform;
bool isAlias;
};