1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

Refactor: Add allowArch parameter to cmake::CreateGlobalGenerator()

This commit is contained in:
Kyle Edwards
2020-09-03 11:22:44 -04:00
parent 3059e6aed7
commit 5a36542086
10 changed files with 20 additions and 19 deletions

View File

@@ -25,7 +25,7 @@ public:
/** Create a GlobalGenerator */ /** Create a GlobalGenerator */
virtual std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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 */ /** Get the documentation entry for this factory */
virtual void GetDocumentation(cmDocumentationEntry& entry) const = 0; virtual void GetDocumentation(cmDocumentationEntry& entry) const = 0;
@@ -53,7 +53,7 @@ class cmGlobalGeneratorSimpleFactory : public cmGlobalGeneratorFactory
public: public:
/** Create a GlobalGenerator */ /** Create a GlobalGenerator */
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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()) { if (name != T::GetActualName()) {
return std::unique_ptr<cmGlobalGenerator>(); return std::unique_ptr<cmGlobalGenerator>();

View File

@@ -59,7 +59,7 @@ class cmGlobalVisualStudio10Generator::Factory
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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; std::string genName;
const char* p = cmVS10GenName(name, genName); const char* p = cmVS10GenName(name, genName);
@@ -70,7 +70,7 @@ public:
return std::unique_ptr<cmGlobalGenerator>( return std::unique_ptr<cmGlobalGenerator>(
new cmGlobalVisualStudio10Generator(cm, genName, "")); new cmGlobalVisualStudio10Generator(cm, genName, ""));
} }
if (*p++ != ' ') { if (!allowArch || *p++ != ' ') {
return std::unique_ptr<cmGlobalGenerator>(); return std::unique_ptr<cmGlobalGenerator>();
} }
if (strcmp(p, "Win64") == 0) { if (strcmp(p, "Win64") == 0) {

View File

@@ -31,7 +31,7 @@ class cmGlobalVisualStudio11Generator::Factory
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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; std::string genName;
const char* p = cmVS11GenName(name, genName); const char* p = cmVS11GenName(name, genName);
@@ -42,7 +42,7 @@ public:
return std::unique_ptr<cmGlobalGenerator>( return std::unique_ptr<cmGlobalGenerator>(
new cmGlobalVisualStudio11Generator(cm, genName, "")); new cmGlobalVisualStudio11Generator(cm, genName, ""));
} }
if (*p++ != ' ') { if (!allowArch || *p++ != ' ') {
return std::unique_ptr<cmGlobalGenerator>(); return std::unique_ptr<cmGlobalGenerator>();
} }
if (strcmp(p, "Win64") == 0) { if (strcmp(p, "Win64") == 0) {

View File

@@ -29,7 +29,7 @@ class cmGlobalVisualStudio12Generator::Factory
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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; std::string genName;
const char* p = cmVS12GenName(name, genName); const char* p = cmVS12GenName(name, genName);
@@ -40,7 +40,7 @@ public:
return std::unique_ptr<cmGlobalGenerator>( return std::unique_ptr<cmGlobalGenerator>(
new cmGlobalVisualStudio12Generator(cm, genName, "")); new cmGlobalVisualStudio12Generator(cm, genName, ""));
} }
if (*p++ != ' ') { if (!allowArch || *p++ != ' ') {
return std::unique_ptr<cmGlobalGenerator>(); return std::unique_ptr<cmGlobalGenerator>();
} }
if (strcmp(p, "Win64") == 0) { if (strcmp(p, "Win64") == 0) {

View File

@@ -30,7 +30,7 @@ class cmGlobalVisualStudio14Generator::Factory
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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; std::string genName;
const char* p = cmVS14GenName(name, genName); const char* p = cmVS14GenName(name, genName);
@@ -41,7 +41,7 @@ public:
return std::unique_ptr<cmGlobalGenerator>( return std::unique_ptr<cmGlobalGenerator>(
new cmGlobalVisualStudio14Generator(cm, genName, "")); new cmGlobalVisualStudio14Generator(cm, genName, ""));
} }
if (*p++ != ' ') { if (!allowArch || *p++ != ' ') {
return std::unique_ptr<cmGlobalGenerator>(); return std::unique_ptr<cmGlobalGenerator>();
} }
if (strcmp(p, "Win64") == 0) { if (strcmp(p, "Win64") == 0) {

View File

@@ -16,7 +16,7 @@ class cmGlobalVisualStudio9Generator::Factory : public cmGlobalGeneratorFactory
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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, if (strncmp(name.c_str(), vs9generatorName,
sizeof(vs9generatorName) - 1) != 0) { sizeof(vs9generatorName) - 1) != 0) {
@@ -29,7 +29,7 @@ public:
new cmGlobalVisualStudio9Generator(cm, name, "")); new cmGlobalVisualStudio9Generator(cm, name, ""));
} }
if (p[0] != ' ') { if (!allowArch || p[0] != ' ') {
return std::unique_ptr<cmGlobalGenerator>(); return std::unique_ptr<cmGlobalGenerator>();
} }

View File

@@ -140,7 +140,7 @@ class cmGlobalVisualStudioVersionedGenerator::Factory15
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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; std::string genName;
const char* p = cmVS15GenName(name, genName); const char* p = cmVS15GenName(name, genName);
@@ -152,7 +152,7 @@ public:
new cmGlobalVisualStudioVersionedGenerator( new cmGlobalVisualStudioVersionedGenerator(
cmGlobalVisualStudioGenerator::VS15, cm, genName, "")); cmGlobalVisualStudioGenerator::VS15, cm, genName, ""));
} }
if (*p++ != ' ') { if (!allowArch || *p++ != ' ') {
return std::unique_ptr<cmGlobalGenerator>(); return std::unique_ptr<cmGlobalGenerator>();
} }
if (strcmp(p, "Win64") == 0) { if (strcmp(p, "Win64") == 0) {
@@ -234,7 +234,7 @@ class cmGlobalVisualStudioVersionedGenerator::Factory16
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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; std::string genName;
const char* p = cmVS16GenName(name, genName); const char* p = cmVS16GenName(name, genName);

View File

@@ -135,7 +135,7 @@ class cmGlobalXCodeGenerator::Factory : public cmGlobalGeneratorFactory
{ {
public: public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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 void GetDocumentation(cmDocumentationEntry& entry) const override
{ {
@@ -197,6 +197,7 @@ std::unique_ptr<cmGlobalGeneratorFactory> cmGlobalXCodeGenerator::NewFactory()
std::unique_ptr<cmGlobalGenerator> std::unique_ptr<cmGlobalGenerator>
cmGlobalXCodeGenerator::Factory::CreateGlobalGenerator(const std::string& name, cmGlobalXCodeGenerator::Factory::CreateGlobalGenerator(const std::string& name,
bool /*allowArch*/,
cmake* cm) const cmake* cm) const
{ {
if (name != GetActualName()) { if (name != GetActualName()) {

View File

@@ -1217,7 +1217,7 @@ createExtraGenerator(
} }
std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator( std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
const std::string& gname) const std::string& gname, bool allowArch)
{ {
std::pair<std::unique_ptr<cmExternalMakefileProjectGenerator>, std::string> std::pair<std::unique_ptr<cmExternalMakefileProjectGenerator>, std::string>
extra = createExtraGenerator(this->ExtraGenerators, gname); extra = createExtraGenerator(this->ExtraGenerators, gname);
@@ -1227,7 +1227,7 @@ std::unique_ptr<cmGlobalGenerator> cmake::CreateGlobalGenerator(
std::unique_ptr<cmGlobalGenerator> generator; std::unique_ptr<cmGlobalGenerator> generator;
for (const auto& g : this->Generators) { for (const auto& g : this->Generators) {
generator = g->CreateGlobalGenerator(name, this); generator = g->CreateGlobalGenerator(name, allowArch, this);
if (generator) { if (generator) {
break; break;
} }

View File

@@ -219,7 +219,7 @@ public:
//! Create a GlobalGenerator //! Create a GlobalGenerator
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator( 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 //! Return the global generator assigned to this instance of cmake
cmGlobalGenerator* GetGlobalGenerator() cmGlobalGenerator* GetGlobalGenerator()