mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-13 17:47:49 +08:00
Refactor: Add allowArch parameter to cmake::CreateGlobalGenerator()
This commit is contained in:
@@ -25,7 +25,7 @@ public:
|
||||
|
||||
/** Create a GlobalGenerator */
|
||||
virtual std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& n, cmake* cm) const = 0;
|
||||
const std::string& n, bool allowArch, cmake* cm) const = 0;
|
||||
|
||||
/** Get the documentation entry for this factory */
|
||||
virtual void GetDocumentation(cmDocumentationEntry& entry) const = 0;
|
||||
@@ -53,7 +53,7 @@ class cmGlobalGeneratorSimpleFactory : public cmGlobalGeneratorFactory
|
||||
public:
|
||||
/** Create a GlobalGenerator */
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool /*allowArch*/, cmake* cm) const override
|
||||
{
|
||||
if (name != T::GetActualName()) {
|
||||
return std::unique_ptr<cmGlobalGenerator>();
|
||||
|
@@ -59,7 +59,7 @@ class cmGlobalVisualStudio10Generator::Factory
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool allowArch, cmake* cm) const override
|
||||
{
|
||||
std::string genName;
|
||||
const char* p = cmVS10GenName(name, genName);
|
||||
@@ -70,7 +70,7 @@ public:
|
||||
return std::unique_ptr<cmGlobalGenerator>(
|
||||
new cmGlobalVisualStudio10Generator(cm, genName, ""));
|
||||
}
|
||||
if (*p++ != ' ') {
|
||||
if (!allowArch || *p++ != ' ') {
|
||||
return std::unique_ptr<cmGlobalGenerator>();
|
||||
}
|
||||
if (strcmp(p, "Win64") == 0) {
|
||||
|
@@ -31,7 +31,7 @@ class cmGlobalVisualStudio11Generator::Factory
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool allowArch, cmake* cm) const override
|
||||
{
|
||||
std::string genName;
|
||||
const char* p = cmVS11GenName(name, genName);
|
||||
@@ -42,7 +42,7 @@ public:
|
||||
return std::unique_ptr<cmGlobalGenerator>(
|
||||
new cmGlobalVisualStudio11Generator(cm, genName, ""));
|
||||
}
|
||||
if (*p++ != ' ') {
|
||||
if (!allowArch || *p++ != ' ') {
|
||||
return std::unique_ptr<cmGlobalGenerator>();
|
||||
}
|
||||
if (strcmp(p, "Win64") == 0) {
|
||||
|
@@ -29,7 +29,7 @@ class cmGlobalVisualStudio12Generator::Factory
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool allowArch, cmake* cm) const override
|
||||
{
|
||||
std::string genName;
|
||||
const char* p = cmVS12GenName(name, genName);
|
||||
@@ -40,7 +40,7 @@ public:
|
||||
return std::unique_ptr<cmGlobalGenerator>(
|
||||
new cmGlobalVisualStudio12Generator(cm, genName, ""));
|
||||
}
|
||||
if (*p++ != ' ') {
|
||||
if (!allowArch || *p++ != ' ') {
|
||||
return std::unique_ptr<cmGlobalGenerator>();
|
||||
}
|
||||
if (strcmp(p, "Win64") == 0) {
|
||||
|
@@ -30,7 +30,7 @@ class cmGlobalVisualStudio14Generator::Factory
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool allowArch, cmake* cm) const override
|
||||
{
|
||||
std::string genName;
|
||||
const char* p = cmVS14GenName(name, genName);
|
||||
@@ -41,7 +41,7 @@ public:
|
||||
return std::unique_ptr<cmGlobalGenerator>(
|
||||
new cmGlobalVisualStudio14Generator(cm, genName, ""));
|
||||
}
|
||||
if (*p++ != ' ') {
|
||||
if (!allowArch || *p++ != ' ') {
|
||||
return std::unique_ptr<cmGlobalGenerator>();
|
||||
}
|
||||
if (strcmp(p, "Win64") == 0) {
|
||||
|
@@ -16,7 +16,7 @@ class cmGlobalVisualStudio9Generator::Factory : public cmGlobalGeneratorFactory
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool allowArch, cmake* cm) const override
|
||||
{
|
||||
if (strncmp(name.c_str(), vs9generatorName,
|
||||
sizeof(vs9generatorName) - 1) != 0) {
|
||||
@@ -29,7 +29,7 @@ public:
|
||||
new cmGlobalVisualStudio9Generator(cm, name, ""));
|
||||
}
|
||||
|
||||
if (p[0] != ' ') {
|
||||
if (!allowArch || p[0] != ' ') {
|
||||
return std::unique_ptr<cmGlobalGenerator>();
|
||||
}
|
||||
|
||||
|
@@ -140,7 +140,7 @@ class cmGlobalVisualStudioVersionedGenerator::Factory15
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool allowArch, cmake* cm) const override
|
||||
{
|
||||
std::string genName;
|
||||
const char* p = cmVS15GenName(name, genName);
|
||||
@@ -152,7 +152,7 @@ public:
|
||||
new cmGlobalVisualStudioVersionedGenerator(
|
||||
cmGlobalVisualStudioGenerator::VS15, cm, genName, ""));
|
||||
}
|
||||
if (*p++ != ' ') {
|
||||
if (!allowArch || *p++ != ' ') {
|
||||
return std::unique_ptr<cmGlobalGenerator>();
|
||||
}
|
||||
if (strcmp(p, "Win64") == 0) {
|
||||
@@ -234,7 +234,7 @@ class cmGlobalVisualStudioVersionedGenerator::Factory16
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override
|
||||
const std::string& name, bool /*allowArch*/, cmake* cm) const override
|
||||
{
|
||||
std::string genName;
|
||||
const char* p = cmVS16GenName(name, genName);
|
||||
|
@@ -135,7 +135,7 @@ class cmGlobalXCodeGenerator::Factory : public cmGlobalGeneratorFactory
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name, cmake* cm) const override;
|
||||
const std::string& name, bool allowArch, cmake* cm) const override;
|
||||
|
||||
void GetDocumentation(cmDocumentationEntry& entry) const override
|
||||
{
|
||||
@@ -197,6 +197,7 @@ std::unique_ptr<cmGlobalGeneratorFactory> cmGlobalXCodeGenerator::NewFactory()
|
||||
|
||||
std::unique_ptr<cmGlobalGenerator>
|
||||
cmGlobalXCodeGenerator::Factory::CreateGlobalGenerator(const std::string& name,
|
||||
bool /*allowArch*/,
|
||||
cmake* cm) const
|
||||
{
|
||||
if (name != GetActualName()) {
|
||||
|
@@ -1217,7 +1217,7 @@ createExtraGenerator(
|
||||
}
|
||||
|
||||
std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
|
||||
const std::string& gname)
|
||||
const std::string& gname, bool allowArch)
|
||||
{
|
||||
std::pair<std::unique_ptr<cmExternalMakefileProjectGenerator>, std::string>
|
||||
extra = createExtraGenerator(this->ExtraGenerators, gname);
|
||||
@@ -1227,7 +1227,7 @@ std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
|
||||
|
||||
std::unique_ptr<cmGlobalGenerator> generator;
|
||||
for (const auto& g : this->Generators) {
|
||||
generator = g->CreateGlobalGenerator(name, this);
|
||||
generator = g->CreateGlobalGenerator(name, allowArch, this);
|
||||
if (generator) {
|
||||
break;
|
||||
}
|
||||
|
@@ -219,7 +219,7 @@ public:
|
||||
|
||||
//! Create a GlobalGenerator
|
||||
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
|
||||
const std::string& name);
|
||||
const std::string& name, bool allowArch = true);
|
||||
|
||||
//! Return the global generator assigned to this instance of cmake
|
||||
cmGlobalGenerator* GetGlobalGenerator()
|
||||
|
Reference in New Issue
Block a user