mirror of
https://github.com/reactos/CMake.git
synced 2024-12-13 14:27:23 +00:00
96afb12087
This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
69 lines
2.5 KiB
C++
69 lines
2.5 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef _cmDocumentationSection_h
|
|
#define _cmDocumentationSection_h
|
|
|
|
#include "cmStandardIncludes.h"
|
|
#include "cmDocumentationFormatter.h"
|
|
|
|
// Low-level interface for custom documents:
|
|
/** Internal class representing a section of the documentation.
|
|
* Cares e.g. for the different section titles in the different
|
|
* output formats.
|
|
*/
|
|
class cmDocumentationSection
|
|
{
|
|
public:
|
|
/** Create a cmSection, with a special name for man-output mode. */
|
|
cmDocumentationSection(const char* name, const char* manName)
|
|
:Name(name), ManName(manName) {}
|
|
|
|
/** Has any content been added to this section or is it empty ? */
|
|
bool IsEmpty() const { return this->Entries.empty(); }
|
|
|
|
/** Clear contents. */
|
|
void Clear() { this->Entries.clear(); }
|
|
|
|
/** Return the name of this section for the given output form. */
|
|
const char* GetName(cmDocumentationEnums::Form form) const
|
|
{ return (form==cmDocumentationEnums::ManForm ?
|
|
this->ManName.c_str() : this->Name.c_str()); }
|
|
|
|
/** Return a pointer to the first entry of this section. */
|
|
const std::vector<cmDocumentationEntry> &GetEntries() const
|
|
{ return this->Entries; }
|
|
|
|
/** Append an entry to this section. */
|
|
void Append(const cmDocumentationEntry& entry)
|
|
{ this->Entries.push_back(entry); }
|
|
void Append(const std::vector<cmDocumentationEntry> &entries)
|
|
{ this->Entries.insert(this->Entries.end(),entries.begin(),entries.end()); }
|
|
|
|
/** Append an entry to this section using NULL terminated chars */
|
|
void Append(const char *[][3]);
|
|
void Append(const char *n, const char *b, const char *f);
|
|
|
|
/** prepend some documentation to this section */
|
|
void Prepend(const char *[][3]);
|
|
void Prepend(const std::vector<cmDocumentationEntry> &entries)
|
|
{ this->Entries.insert(this->Entries.begin(),
|
|
entries.begin(),entries.end()); }
|
|
|
|
|
|
private:
|
|
std::string Name;
|
|
std::string ManName;
|
|
std::vector<cmDocumentationEntry> Entries;
|
|
};
|
|
|
|
#endif
|