summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/CPackDeb.cmake2
-rw-r--r--Modules/CPackRPM.cmake2
-rw-r--r--Source/CPack/cpack.cxx3
-rw-r--r--Source/cmDocumentation.cxx21
-rw-r--r--Source/cmDocumentation.h6
5 files changed, 25 insertions, 9 deletions
diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index 0916843..fe81dc9 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -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)
diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake
index f76e91e..ae81ab7 100644
--- a/Modules/CPackRPM.cmake
+++ b/Modules/CPackRPM.cmake
@@ -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)
diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx
index c541610..6f5055c 100644
--- a/Source/CPack/cpack.cxx
+++ b/Source/CPack/cpack.cxx
@@ -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;
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 02f69f1..17e35d8 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -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 */
diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h
index 00dba1a..11bef16 100644
--- a/Source/cmDocumentation.h
+++ b/Source/cmDocumentation.h
@@ -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);