Dynamically add documentation section specified in documented script.
Modify CPackDeb and CPackRPM as an example
This commit is contained in:
parent
bfbb575086
commit
a6bce55aef
|
@ -1,4 +1,4 @@
|
|||
##section Variables specific to a CPack generator
|
||||
##section Variables specific to CPack Debian (DEB) generator
|
||||
##end
|
||||
##module
|
||||
# - The builtin (binary) CPack Deb generator (Unix only)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
##section Variables specific to a CPack generator
|
||||
##section Variables specific to CPack RPM generator
|
||||
##end
|
||||
##module
|
||||
# - The builtin (binary) CPack RPM generator (Unix only)
|
||||
|
|
|
@ -514,7 +514,6 @@ int main (int argc, char *argv[])
|
|||
if ( help )
|
||||
{
|
||||
// Construct and print requested documentation.
|
||||
std::vector<cmDocumentationEntry> variables;
|
||||
|
||||
doc.SetName("cpack");
|
||||
doc.SetSection("Name",cmDocumentationName);
|
||||
|
@ -545,7 +544,7 @@ int main (int argc, char *argv[])
|
|||
{
|
||||
doc.GetStructuredDocFromFile(
|
||||
(docedIt->first).c_str(),
|
||||
commands,&cminst,(docedIt->second).c_str());
|
||||
commands,&cminst);
|
||||
}
|
||||
|
||||
std::map<std::string,cmDocumentationSection *> propDocs;
|
||||
|
|
|
@ -745,6 +745,18 @@ void cmDocumentation::addCPackStandardDocSections()
|
|||
"Variables specific to a CPack generator");
|
||||
}
|
||||
|
||||
void cmDocumentation::addAutomaticVariableSections(const std::string& section)
|
||||
{
|
||||
std::vector<std::string>::iterator it;
|
||||
it = find(this->VariableSections.begin(),
|
||||
this->VariableSections.end(),
|
||||
section);
|
||||
/* if the section does not exist then add it */
|
||||
if (it==this->VariableSections.end())
|
||||
{
|
||||
this->VariableSections.push_back(section);
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------
|
||||
int cmDocumentation::getDocumentedModulesListInDir(
|
||||
std::string path,
|
||||
|
@ -818,8 +830,7 @@ static void trim(std::string& s)
|
|||
int cmDocumentation::GetStructuredDocFromFile(
|
||||
const char* fname,
|
||||
std::vector<cmDocumentationEntry>& commands,
|
||||
cmake* cm,
|
||||
const char *docSection)
|
||||
cmake* cm)
|
||||
{
|
||||
typedef enum sdoce {
|
||||
SDOC_NONE, SDOC_MODULE, SDOC_MACRO, SDOC_FUNCTION, SDOC_VARIABLE,
|
||||
|
@ -835,6 +846,7 @@ int cmDocumentation::GetStructuredDocFromFile(
|
|||
{
|
||||
return nbDocItemFound;
|
||||
}
|
||||
std::string section;
|
||||
std::string name;
|
||||
std::string full;
|
||||
std::string brief;
|
||||
|
@ -886,6 +898,8 @@ int cmDocumentation::GetStructuredDocFromFile(
|
|||
{
|
||||
docCtxIdx++;
|
||||
docContextStack[docCtxIdx]=SDOC_SECTION;
|
||||
// 10 is the size of '##section' + 1
|
||||
section = line.substr(10,std::string::npos);
|
||||
/* drop the rest of the line */
|
||||
line = "";
|
||||
newCtx = true;
|
||||
|
@ -900,11 +914,12 @@ int cmDocumentation::GetStructuredDocFromFile(
|
|||
brief.c_str(),full.c_str()));
|
||||
break;
|
||||
case SDOC_VARIABLE:
|
||||
this->addAutomaticVariableSections(section);
|
||||
cm->DefineProperty
|
||||
(name.c_str(), cmProperty::VARIABLE,
|
||||
brief.c_str(),
|
||||
full.c_str(),false,
|
||||
docSection);
|
||||
section.c_str());
|
||||
break;
|
||||
case SDOC_MODULE:
|
||||
/* not implemented */
|
||||
|
|
|
@ -147,6 +147,9 @@ public:
|
|||
/** Add the CPack standard documentation section(s) */
|
||||
void addCPackStandardDocSections();
|
||||
|
||||
/** Add automatic variables sections */
|
||||
void addAutomaticVariableSections(const std::string& section);
|
||||
|
||||
/**
|
||||
* Retrieve the list of documented module located in
|
||||
* path which match the globing expression globExpr.
|
||||
|
@ -185,8 +188,7 @@ public:
|
|||
*/
|
||||
int GetStructuredDocFromFile(const char* fname,
|
||||
std::vector<cmDocumentationEntry>& commands,
|
||||
cmake* cm,
|
||||
const char *docSection);
|
||||
cmake* cm);
|
||||
private:
|
||||
void SetForm(Form f);
|
||||
void SetDocName(const char* docname);
|
||||
|
|
Loading…
Reference in New Issue