ENH: sort the module files alphabetically when generating the documentation

of rht modules

Alex
This commit is contained in:
Alexander Neundorf 2008-01-09 16:59:01 -05:00
parent b761da39c1
commit acb27977f0

View File

@ -445,14 +445,23 @@ void cmDocumentation
::CreateModuleDocsForDir(cmsys::Directory& dir, ::CreateModuleDocsForDir(cmsys::Directory& dir,
cmDocumentationSection &moduleSection) cmDocumentationSection &moduleSection)
{ {
// sort the files alphabetically, so the docs for one module are easier
// to find than if they are in random order
std::vector<std::string> sortedFiles;
for(unsigned int i = 0; i < dir.GetNumberOfFiles(); ++i) for(unsigned int i = 0; i < dir.GetNumberOfFiles(); ++i)
{ {
std::string fname = dir.GetFile(i); sortedFiles.push_back(dir.GetFile(i));
if(fname.length() > 6) }
std::sort(sortedFiles.begin(), sortedFiles.end());
for(std::vector<std::string>::const_iterator fname = sortedFiles.begin();
fname!=sortedFiles.end(); ++fname)
{ {
if(fname.substr(fname.length()-6, 6) == ".cmake") if(fname->length() > 6)
{ {
std::string moduleName = fname.substr(0, fname.length()-6); if(fname->substr(fname->length()-6, 6) == ".cmake")
{
std::string moduleName = fname->substr(0, fname->length()-6);
// this check is to avoid creating documentation for the modules with // this check is to avoid creating documentation for the modules with
// the same name in multiple directories of CMAKE_MODULE_PATH // the same name in multiple directories of CMAKE_MODULE_PATH
if (this->ModulesFound.find(moduleName) == this->ModulesFound.end()) if (this->ModulesFound.find(moduleName) == this->ModulesFound.end())
@ -460,7 +469,7 @@ void cmDocumentation
this->ModulesFound.insert(moduleName); this->ModulesFound.insert(moduleName);
std::string path = dir.GetPath(); std::string path = dir.GetPath();
path += "/"; path += "/";
path += fname; path += (*fname);
this->CreateSingleModule(path.c_str(), moduleName.c_str(), this->CreateSingleModule(path.c_str(), moduleName.c_str(),
moduleSection); moduleSection);
} }