Commit 1862b398 authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'cmake-G-print-generators'

588dcb33 cmake: Provide guidance when an invalid -G option is given
parents 341b8953 588dcb33
......@@ -138,6 +138,8 @@ bool cmDocumentation::PrintDocumentation(Type ht, std::ostream& os)
return this->PrintHelpListVariables(os);
case cmDocumentation::ListPolicies:
return this->PrintHelpListPolicies(os);
case cmDocumentation::ListGenerators:
return this->PrintHelpListGenerators(os);
case cmDocumentation::Version:
return this->PrintVersion(os);
case cmDocumentation::OldCustomModules:
......@@ -816,6 +818,19 @@ bool cmDocumentation::PrintHelpListPolicies(std::ostream& os)
return true;
}
//----------------------------------------------------------------------------
bool cmDocumentation::PrintHelpListGenerators(std::ostream& os)
{
std::map<std::string,cmDocumentationSection*>::iterator si;
si = this->AllSections.find("Generators");
if(si != this->AllSections.end())
{
this->Formatter.SetIndent(" ");
this->Formatter.PrintSection(os, *si->second);
}
return true;
}
//----------------------------------------------------------------------------
bool cmDocumentation::PrintHelpOneVariable(std::ostream& os)
{
......
......@@ -117,6 +117,7 @@ private:
bool PrintHelpListProperties(std::ostream& os);
bool PrintHelpListVariables(std::ostream& os);
bool PrintHelpListPolicies(std::ostream& os);
bool PrintHelpListGenerators(std::ostream& os);
bool PrintOldCustomModules(std::ostream& os);
const char* GetNameString() const;
......
......@@ -26,8 +26,8 @@ public:
/** Types of help provided. */
enum Type
{
None, Version, Usage, Help, Full, ListManuals,
ListCommands, ListModules, ListProperties, ListVariables, ListPolicies,
None, Version, Usage, Help, Full, ListManuals, ListCommands,
ListModules, ListProperties, ListVariables, ListPolicies, ListGenerators,
OneManual, OneCommand, OneModule, OneProperty, OneVariable, OnePolicy,
OldCustomModules
};
......
......@@ -818,6 +818,7 @@ void cmake::SetArgs(const std::vector<std::string>& args,
if(i >= args.size())
{
cmSystemTools::Error("No generator specified for -G");
this->PrintGeneratorList();
return;
}
value = args[i];
......@@ -828,6 +829,7 @@ void cmake::SetArgs(const std::vector<std::string>& args,
{
cmSystemTools::Error("Could not create named generator ",
value.c_str());
this->PrintGeneratorList();
}
else
{
......@@ -1961,6 +1963,18 @@ void cmake::GetGeneratorDocumentation(std::vector<cmDocumentationEntry>& v)
}
}
void cmake::PrintGeneratorList()
{
#ifdef CMAKE_BUILD_WITH_CMAKE
cmDocumentation doc;
std::vector<cmDocumentationEntry> generators;
this->GetGeneratorDocumentation(generators);
doc.AppendSection("Generators",generators);
std::cerr << "\n";
doc.PrintDocumentation(cmDocumentation::ListGenerators, std::cerr);
#endif
}
void cmake::UpdateConversionPathTable()
{
// Update the path conversion table with any specified file:
......@@ -2438,6 +2452,7 @@ int cmake::GetSystemInformation(std::vector<std::string>& args)
if(i >= args.size())
{
cmSystemTools::Error("No generator specified for -G");
this->PrintGeneratorList();
return -1;
}
value = args[i];
......@@ -2448,6 +2463,7 @@ int cmake::GetSystemInformation(std::vector<std::string>& args)
{
cmSystemTools::Error("Could not create named generator ",
value.c_str());
this->PrintGeneratorList();
}
else
{
......
......@@ -476,6 +476,9 @@ private:
InstalledFilesMap InstalledFiles;
void UpdateConversionPathTable();
// Print a list of valid generators to stderr.
void PrintGeneratorList();
};
#define CMAKE_STANDARD_OPTIONS_TABLE \
......
^CMake Error: Could not create named generator NoSuchGenerator$
^CMake Error: Could not create named generator NoSuchGenerator
Generators
^CMake Error: No generator specified for -G$
^CMake Error: No generator specified for -G
Generators
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment