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:
@@ -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>();
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
@@ -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()) {
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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()
|
||||||
|
Reference in New Issue
Block a user