|
|
@@ -7,6 +7,7 @@
|
|
|
#include <iosfwd>
|
|
|
#include <map>
|
|
|
#include <string>
|
|
|
+#include <utility>
|
|
|
#include <vector>
|
|
|
|
|
|
#include "cmDocumentationFormatter.h"
|
|
|
@@ -74,19 +75,30 @@ 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,
|
|
|
- std::vector<cmDocumentationEntry>& docs);
|
|
|
+ template <typename Iterable>
|
|
|
+ void SetSection(const char* sectionName, const Iterable& docs)
|
|
|
+ {
|
|
|
+ cmDocumentationSection sec{ sectionName };
|
|
|
+ sec.Append(docs);
|
|
|
+ this->SetSection(sectionName, std::move(sec));
|
|
|
+ }
|
|
|
void SetSection(const char* sectionName, const char* docs[][2]);
|
|
|
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]);
|
|
|
- void PrependSection(const char* sectionName,
|
|
|
- std::vector<cmDocumentationEntry>& docs);
|
|
|
+ template <typename Iterable>
|
|
|
+ void PrependSection(const char* sectionName, const Iterable& docs)
|
|
|
+ {
|
|
|
+ this->SectionAtName(sectionName).Prepend(docs);
|
|
|
+ }
|
|
|
void PrependSection(const char* sectionName, cmDocumentationEntry& docs);
|
|
|
void AppendSection(const char* sectionName, const char* docs[][2]);
|
|
|
- void AppendSection(const char* sectionName,
|
|
|
- std::vector<cmDocumentationEntry>& docs);
|
|
|
+ template <typename Iterable>
|
|
|
+ void AppendSection(const char* sectionName, const Iterable& docs)
|
|
|
+ {
|
|
|
+ this->SectionAtName(sectionName).Append(docs);
|
|
|
+ }
|
|
|
void AppendSection(const char* sectionName, cmDocumentationEntry& docs);
|
|
|
|
|
|
/** Add common (to all tools) documentation section(s) */
|