mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-08 07:10:12 -05:00
Merge topic 'refactor-cmDocumentation'
57862079d8cmDocumentation: Get rid of raw pointers in AllSections map4308eb3d16cmDocumentationSection: Remove unused parameter in constructor Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2692
This commit is contained in:
+35
-84
@@ -2,7 +2,6 @@
|
||||
file Copyright.txt or https://cmake.org/licensing for details. */
|
||||
#include "cmDocumentation.h"
|
||||
|
||||
#include "cmAlgorithms.h"
|
||||
#include "cmDocumentationEntry.h"
|
||||
#include "cmDocumentationSection.h"
|
||||
#include "cmRST.h"
|
||||
@@ -55,11 +54,6 @@ cmDocumentation::cmDocumentation()
|
||||
this->ShowGenerators = true;
|
||||
}
|
||||
|
||||
cmDocumentation::~cmDocumentation()
|
||||
{
|
||||
cmDeleteAll(this->AllSections);
|
||||
}
|
||||
|
||||
bool cmDocumentation::PrintVersion(std::ostream& os)
|
||||
{
|
||||
/* clang-format off */
|
||||
@@ -174,20 +168,16 @@ void cmDocumentation::WarnFormFromFilename(
|
||||
|
||||
void cmDocumentation::addCommonStandardDocSections()
|
||||
{
|
||||
cmDocumentationSection* sec;
|
||||
|
||||
sec = new cmDocumentationSection("Options", "OPTIONS");
|
||||
sec->Append(cmDocumentationStandardOptions);
|
||||
this->AllSections["Options"] = sec;
|
||||
cmDocumentationSection sec{ "Options" };
|
||||
sec.Append(cmDocumentationStandardOptions);
|
||||
this->AllSections.emplace("Options", std::move(sec));
|
||||
}
|
||||
|
||||
void cmDocumentation::addCMakeStandardDocSections()
|
||||
{
|
||||
cmDocumentationSection* sec;
|
||||
|
||||
sec = new cmDocumentationSection("Generators", "GENERATORS");
|
||||
sec->Append(cmDocumentationGeneratorsHeader);
|
||||
this->AllSections["Generators"] = sec;
|
||||
cmDocumentationSection sec{ "Generators" };
|
||||
sec.Append(cmDocumentationGeneratorsHeader);
|
||||
this->AllSections.emplace("Generators", std::move(sec));
|
||||
}
|
||||
|
||||
void cmDocumentation::addCTestStandardDocSections()
|
||||
@@ -199,11 +189,7 @@ void cmDocumentation::addCTestStandardDocSections()
|
||||
|
||||
void cmDocumentation::addCPackStandardDocSections()
|
||||
{
|
||||
cmDocumentationSection* sec;
|
||||
|
||||
sec = new cmDocumentationSection("Generators", "GENERATORS");
|
||||
sec->Append(cmDocumentationGeneratorsHeader);
|
||||
this->AllSections["Generators"] = sec;
|
||||
addCMakeStandardDocSections();
|
||||
}
|
||||
|
||||
bool cmDocumentation::CheckOptions(int argc, const char* const* argv,
|
||||
@@ -364,91 +350,59 @@ void cmDocumentation::SetName(const std::string& name)
|
||||
}
|
||||
|
||||
void cmDocumentation::SetSection(const char* name,
|
||||
cmDocumentationSection* section)
|
||||
cmDocumentationSection section)
|
||||
{
|
||||
if (this->AllSections.find(name) != this->AllSections.end()) {
|
||||
delete this->AllSections[name];
|
||||
}
|
||||
this->AllSections[name] = section;
|
||||
this->SectionAtName(name) = std::move(section);
|
||||
}
|
||||
|
||||
void cmDocumentation::SetSection(const char* name,
|
||||
std::vector<cmDocumentationEntry>& docs)
|
||||
{
|
||||
cmDocumentationSection* sec =
|
||||
new cmDocumentationSection(name, cmSystemTools::UpperCase(name).c_str());
|
||||
sec->Append(docs);
|
||||
this->SetSection(name, sec);
|
||||
cmDocumentationSection sec{ name };
|
||||
sec.Append(docs);
|
||||
this->SetSection(name, std::move(sec));
|
||||
}
|
||||
|
||||
void cmDocumentation::SetSection(const char* name, const char* docs[][2])
|
||||
{
|
||||
cmDocumentationSection* sec =
|
||||
new cmDocumentationSection(name, cmSystemTools::UpperCase(name).c_str());
|
||||
sec->Append(docs);
|
||||
this->SetSection(name, sec);
|
||||
cmDocumentationSection sec{ name };
|
||||
sec.Append(docs);
|
||||
this->SetSection(name, std::move(sec));
|
||||
}
|
||||
|
||||
void cmDocumentation::SetSections(
|
||||
std::map<std::string, cmDocumentationSection*>& sections)
|
||||
std::map<std::string, cmDocumentationSection> sections)
|
||||
{
|
||||
for (auto const& s : sections) {
|
||||
this->SetSection(s.first.c_str(), s.second);
|
||||
for (auto& s : sections) {
|
||||
this->SetSection(s.first.c_str(), std::move(s.second));
|
||||
}
|
||||
}
|
||||
cmDocumentationSection& cmDocumentation::SectionAtName(const char* name)
|
||||
{
|
||||
return this->AllSections.emplace(name, cmDocumentationSection{ name })
|
||||
.first->second;
|
||||
}
|
||||
|
||||
void cmDocumentation::PrependSection(const char* name, const char* docs[][2])
|
||||
{
|
||||
cmDocumentationSection* sec = nullptr;
|
||||
if (this->AllSections.find(name) == this->AllSections.end()) {
|
||||
sec =
|
||||
new cmDocumentationSection(name, cmSystemTools::UpperCase(name).c_str());
|
||||
this->SetSection(name, sec);
|
||||
} else {
|
||||
sec = this->AllSections[name];
|
||||
}
|
||||
sec->Prepend(docs);
|
||||
this->SectionAtName(name).Prepend(docs);
|
||||
}
|
||||
|
||||
void cmDocumentation::PrependSection(const char* name,
|
||||
std::vector<cmDocumentationEntry>& docs)
|
||||
{
|
||||
cmDocumentationSection* sec = nullptr;
|
||||
if (this->AllSections.find(name) == this->AllSections.end()) {
|
||||
sec =
|
||||
new cmDocumentationSection(name, cmSystemTools::UpperCase(name).c_str());
|
||||
this->SetSection(name, sec);
|
||||
} else {
|
||||
sec = this->AllSections[name];
|
||||
}
|
||||
sec->Prepend(docs);
|
||||
this->SectionAtName(name).Prepend(docs);
|
||||
}
|
||||
|
||||
void cmDocumentation::AppendSection(const char* name, const char* docs[][2])
|
||||
{
|
||||
cmDocumentationSection* sec = nullptr;
|
||||
if (this->AllSections.find(name) == this->AllSections.end()) {
|
||||
sec =
|
||||
new cmDocumentationSection(name, cmSystemTools::UpperCase(name).c_str());
|
||||
this->SetSection(name, sec);
|
||||
} else {
|
||||
sec = this->AllSections[name];
|
||||
}
|
||||
sec->Append(docs);
|
||||
this->SectionAtName(name).Append(docs);
|
||||
}
|
||||
|
||||
void cmDocumentation::AppendSection(const char* name,
|
||||
std::vector<cmDocumentationEntry>& docs)
|
||||
{
|
||||
cmDocumentationSection* sec = nullptr;
|
||||
if (this->AllSections.find(name) == this->AllSections.end()) {
|
||||
sec =
|
||||
new cmDocumentationSection(name, cmSystemTools::UpperCase(name).c_str());
|
||||
this->SetSection(name, sec);
|
||||
} else {
|
||||
sec = this->AllSections[name];
|
||||
}
|
||||
sec->Append(docs);
|
||||
this->SectionAtName(name).Append(docs);
|
||||
}
|
||||
|
||||
void cmDocumentation::AppendSection(const char* name,
|
||||
@@ -631,11 +585,10 @@ bool cmDocumentation::PrintHelpListPolicies(std::ostream& os)
|
||||
|
||||
bool cmDocumentation::PrintHelpListGenerators(std::ostream& os)
|
||||
{
|
||||
std::map<std::string, cmDocumentationSection*>::iterator si;
|
||||
si = this->AllSections.find("Generators");
|
||||
const auto si = this->AllSections.find("Generators");
|
||||
if (si != this->AllSections.end()) {
|
||||
this->Formatter.SetIndent(" ");
|
||||
this->Formatter.PrintSection(os, *si->second);
|
||||
this->Formatter.PrintSection(os, si->second);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -661,29 +614,27 @@ bool cmDocumentation::PrintHelpListVariables(std::ostream& os)
|
||||
|
||||
bool cmDocumentation::PrintUsage(std::ostream& os)
|
||||
{
|
||||
std::map<std::string, cmDocumentationSection*>::iterator si;
|
||||
si = this->AllSections.find("Usage");
|
||||
const auto si = this->AllSections.find("Usage");
|
||||
if (si != this->AllSections.end()) {
|
||||
this->Formatter.PrintSection(os, *si->second);
|
||||
this->Formatter.PrintSection(os, si->second);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cmDocumentation::PrintHelp(std::ostream& os)
|
||||
{
|
||||
std::map<std::string, cmDocumentationSection*>::iterator si;
|
||||
si = this->AllSections.find("Usage");
|
||||
auto si = this->AllSections.find("Usage");
|
||||
if (si != this->AllSections.end()) {
|
||||
this->Formatter.PrintSection(os, *si->second);
|
||||
this->Formatter.PrintSection(os, si->second);
|
||||
}
|
||||
si = this->AllSections.find("Options");
|
||||
if (si != this->AllSections.end()) {
|
||||
this->Formatter.PrintSection(os, *si->second);
|
||||
this->Formatter.PrintSection(os, si->second);
|
||||
}
|
||||
if (this->ShowGenerators) {
|
||||
si = this->AllSections.find("Generators");
|
||||
if (si != this->AllSections.end()) {
|
||||
this->Formatter.PrintSection(os, *si->second);
|
||||
this->Formatter.PrintSection(os, si->second);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
#include "cmConfigure.h" // IWYU pragma: keep
|
||||
|
||||
#include "cmDocumentationFormatter.h"
|
||||
#include "cmDocumentationSection.h"
|
||||
|
||||
#include <iosfwd>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class cmDocumentationSection;
|
||||
struct cmDocumentationEntry;
|
||||
|
||||
/** Class to generate documentation. */
|
||||
@@ -21,8 +21,6 @@ class cmDocumentation : public cmDocumentationEnums
|
||||
public:
|
||||
cmDocumentation();
|
||||
|
||||
~cmDocumentation();
|
||||
|
||||
/**
|
||||
* Check command line arguments for documentation options. Returns
|
||||
* true if documentation options are found, and false otherwise.
|
||||
@@ -52,11 +50,11 @@ public:
|
||||
|
||||
/** Set a section of the documentation. Typical sections include Name,
|
||||
Usage, Description, Options */
|
||||
void SetSection(const char* sectionName, cmDocumentationSection* section);
|
||||
void SetSection(const char* sectionName, cmDocumentationSection section);
|
||||
void SetSection(const char* sectionName,
|
||||
std::vector<cmDocumentationEntry>& docs);
|
||||
void SetSection(const char* sectionName, const char* docs[][2]);
|
||||
void SetSections(std::map<std::string, cmDocumentationSection*>& sections);
|
||||
void SetSections(std::map<std::string, cmDocumentationSection> sections);
|
||||
|
||||
/** Add the documentation to the beginning/end of the section */
|
||||
void PrependSection(const char* sectionName, const char* docs[][2]);
|
||||
@@ -110,7 +108,8 @@ private:
|
||||
bool ShowGenerators;
|
||||
|
||||
std::string NameString;
|
||||
std::map<std::string, cmDocumentationSection*> AllSections;
|
||||
std::map<std::string, cmDocumentationSection> AllSections;
|
||||
cmDocumentationSection& SectionAtName(const char* name);
|
||||
|
||||
std::string CurrentArgument;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ class cmDocumentationSection
|
||||
{
|
||||
public:
|
||||
/** Create a cmSection, with a special name for man-output mode. */
|
||||
cmDocumentationSection(const char* name, const char*)
|
||||
explicit cmDocumentationSection(const char* name)
|
||||
: Name(name)
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user