[Cmake-commits] CMake branch, next, updated. v3.2.1-1730-g35db5e8

Brad King brad.king at kitware.com
Fri Apr 10 15:14:48 EDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  35db5e8519ba4a6859d61c7861d06e8516bb7e0f (commit)
       via  588dcb33b7ff089a84ce5cbacf2696b4a3646b42 (commit)
      from  fb490a0931b759dac420a178747f93e0c56b35c5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=35db5e8519ba4a6859d61c7861d06e8516bb7e0f
commit 35db5e8519ba4a6859d61c7861d06e8516bb7e0f
Merge: fb490a0 588dcb3
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Apr 10 15:14:47 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Apr 10 15:14:47 2015 -0400

    Merge topic 'cmake-G-print-generators' into next
    
    588dcb33 cmake: Provide guidance when an invalid -G option is given


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=588dcb33b7ff089a84ce5cbacf2696b4a3646b42
commit 588dcb33b7ff089a84ce5cbacf2696b4a3646b42
Author:     Gerald Combs <gerald at wireshark.org>
AuthorDate: Sun Mar 29 11:28:30 2015 -0700
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Apr 10 15:14:34 2015 -0400

    cmake: Provide guidance when an invalid -G option is given
    
    Print a list of generators if no generator or an invalid one is
    supplied.
    
    Signed-off-by: Gerald Combs <gerald at wireshark.org>

diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 8c17536..4f34755 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -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:
@@ -817,6 +819,19 @@ bool cmDocumentation::PrintHelpListPolicies(std::ostream& os)
 }
 
 //----------------------------------------------------------------------------
+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)
 {
   std::string vname = cmSystemTools::HelpFileName(this->CurrentArgument);
diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h
index b72b5fe..8854c36 100644
--- a/Source/cmDocumentation.h
+++ b/Source/cmDocumentation.h
@@ -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;
diff --git a/Source/cmDocumentationFormatter.h b/Source/cmDocumentationFormatter.h
index 59513cc..6e19b7d 100644
--- a/Source/cmDocumentationFormatter.h
+++ b/Source/cmDocumentationFormatter.h
@@ -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
   };
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 7595155..3654aa7 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -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
         {
diff --git a/Source/cmake.h b/Source/cmake.h
index 3acf4a8..0715d74 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -476,6 +476,9 @@ private:
   InstalledFilesMap InstalledFiles;
 
   void UpdateConversionPathTable();
+
+  // Print a list of valid generators to stderr.
+  void PrintGeneratorList();
 };
 
 #define CMAKE_STANDARD_OPTIONS_TABLE \
diff --git a/Tests/RunCMake/CommandLine/G_bad-arg-stderr.txt b/Tests/RunCMake/CommandLine/G_bad-arg-stderr.txt
index 511208f..07f2b52 100644
--- a/Tests/RunCMake/CommandLine/G_bad-arg-stderr.txt
+++ b/Tests/RunCMake/CommandLine/G_bad-arg-stderr.txt
@@ -1 +1,3 @@
-^CMake Error: Could not create named generator NoSuchGenerator$
+^CMake Error: Could not create named generator NoSuchGenerator
+
+Generators
diff --git a/Tests/RunCMake/CommandLine/G_no-arg-stderr.txt b/Tests/RunCMake/CommandLine/G_no-arg-stderr.txt
index 56d23c2..2f491a2 100644
--- a/Tests/RunCMake/CommandLine/G_no-arg-stderr.txt
+++ b/Tests/RunCMake/CommandLine/G_no-arg-stderr.txt
@@ -1 +1,3 @@
-^CMake Error: No generator specified for -G$
+^CMake Error: No generator specified for -G
+
+Generators

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list