From eba7273c203f0698ccd716604cc298b7da1d3ee6 Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Thu, 8 Nov 2018 09:06:52 -0500 Subject: cpack: Better error message when generator doesn't exist. Currently the CPack error message when passed an invalid generator name reads like the generator failed to work, rather than the name was invalid. --- Source/CPack/cpack.cxx | 5 +++-- Tests/RunCMake/CPackCommandLine/NotAGenerator-stderr.txt | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index c083945..3df1b36 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -358,8 +358,9 @@ int main(int argc, char const* const* argv) cpackGenerator->SetTraceExpand(traceExpand); } else { cmCPack_Log(&log, cmCPackLog::LOG_ERROR, - "Cannot initialize CPack generator: " << gen - << std::endl); + "Could not create CPack generator: " << gen + << std::endl); + parsed = 0; } diff --git a/Tests/RunCMake/CPackCommandLine/NotAGenerator-stderr.txt b/Tests/RunCMake/CPackCommandLine/NotAGenerator-stderr.txt index fe4e455..a553bde 100644 --- a/Tests/RunCMake/CPackCommandLine/NotAGenerator-stderr.txt +++ b/Tests/RunCMake/CPackCommandLine/NotAGenerator-stderr.txt @@ -1 +1 @@ -^CPack Error: Cannot initialize CPack generator: NotAGenerator +^CPack Error: Could not create CPack generator: NotAGenerator -- cgit v0.12 From f29e2292c90d4fbdadce041b1c9d649aca3c602b Mon Sep 17 00:00:00 2001 From: Robert Maynard Date: Thu, 8 Nov 2018 09:27:28 -0500 Subject: cpack: When given an unknown generator print out all valid generators This makes cpack behavior match cmake when passed an invalid generator --- Source/CPack/cpack.cxx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index 3df1b36..7cf69fc 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -21,6 +21,7 @@ #include "cmCPackLog.h" #include "cmDocumentation.h" #include "cmDocumentationEntry.h" +#include "cmDocumentationFormatter.h" #include "cmGlobalGenerator.h" #include "cmMakefile.h" #include "cmStateSnapshot.h" @@ -360,7 +361,19 @@ int main(int argc, char const* const* argv) cmCPack_Log(&log, cmCPackLog::LOG_ERROR, "Could not create CPack generator: " << gen << std::endl); - + // Print out all the valid generators + cmDocumentation generatorDocs; + std::vector v; + for (auto const& g : generators.GetGeneratorsList()) { + cmDocumentationEntry e; + e.Name = g.first; + e.Brief = g.second; + v.push_back(std::move(e)); + } + generatorDocs.SetSection("Generators", v); + std::cerr << "\n"; + generatorDocs.PrintDocumentation(cmDocumentation::ListGenerators, + std::cerr); parsed = 0; } -- cgit v0.12