ENH: add some more comments

This commit is contained in:
Bill Hoffman 2004-10-25 16:39:13 -04:00
parent 5eda379907
commit ccea94278b
2 changed files with 20 additions and 4 deletions

View File

@ -74,6 +74,8 @@ void cmLocalKdevelopGenerator::Generate(bool fromTheTop)
} }
} }
/* create the project file, if it already exists, merge it with the existing one,
otherwise create a new one */
void cmLocalKdevelopGenerator::CreateProjectFile(const std::string& outputDir, void cmLocalKdevelopGenerator::CreateProjectFile(const std::string& outputDir,
const std::string& projectDir, const std::string& projectDir,
const std::string& projectname, const std::string& projectname,
@ -107,6 +109,9 @@ void cmLocalKdevelopGenerator::MergeProjectFiles(const std::string& outputDir,
return; return;
} }
/* Read the existing project file (line by line), copy all lines into the
new project file, except the ones which can be reliably set from contents
of the CMakeLists.txt */
std::string tmp; std::string tmp;
std::vector<std::string> lines; std::vector<std::string> lines;
while (cmSystemTools::GetLineFromStream(oldProjectFile, tmp)) while (cmSystemTools::GetLineFromStream(oldProjectFile, tmp))
@ -365,6 +370,7 @@ bool cmLocalKdevelopGenerator::CreateFilelistFile(const std::string& outputDir,
oldFilelist.close(); oldFilelist.close();
} }
//now write the new filename
cmGeneratedFileStream tempFile(filename.c_str()); cmGeneratedFileStream tempFile(filename.c_str());
tempFile.SetAlwaysCopy(true); tempFile.SetAlwaysCopy(true);
std::ostream& fout = tempFile.GetStream(); std::ostream& fout = tempFile.GetStream();

View File

@ -26,10 +26,15 @@ class cmTarget;
class cmSourceFile; class cmSourceFile;
/** \class cmLocalKdevelopGenerator /** \class cmLocalKdevelopGenerator
* \brief Write a LocalUnix makefiles. * \brief Write Unix Makefiles accompanied by KDevelop3 project files.
* *
* cmLocalKdevelopGenerator produces a LocalUnix makefile from its * cmLocalKdevelopGenerator produces a project file for KDevelop 3 (KDevelop > 3.1.1).
* member m_Makefile. * The project is based on the "Custom Makefile based C/C++" project of KDevelop.
* Such a project consists of Unix Makefiles in the build directory together
* with a <your_project>.kdevelop project file, which contains the project settings
* and a <your_project>.kdevelop.filelist file, which lists the source files relative
* to the kdevelop project directory. The kdevelop project directory is the base
* source directory.
*/ */
class cmLocalKdevelopGenerator : public cmLocalUnixMakefileGenerator class cmLocalKdevelopGenerator : public cmLocalUnixMakefileGenerator
{ {
@ -51,11 +56,16 @@ protected:
/** /**
Create the foo.kdevelop file. This one calls MergeProjectFiles() Create the foo.kdevelop file. This one calls MergeProjectFiles()
if it already exists, otherwise createNewProjectFile() if it already exists, otherwise createNewProjectFile()
The project files will be created in \a outputDir (in the build tree), the kdevelop project
dir will be set to \a projectDir (in the source tree). \a cmakeFilePattern consists of a lists
of all cmake listfiles used by this CMakeLists.txt
*/ */
void CreateProjectFile(const std::string& outputDir, const std::string& projectDir, void CreateProjectFile(const std::string& outputDir, const std::string& projectDir,
const std::string& projectname, const std::string& executable, const std::string& projectname, const std::string& executable,
const std::string& cmakeFilePattern); const std::string& cmakeFilePattern);
///! Create the foo.kdevelop.filelist file, return false if it doesn't succeed /** Create the foo.kdevelop.filelist file, return false if it doesn't succeed.
If the file already exists the contents will be merged.
*/
bool CreateFilelistFile(const std::string& outputDir, const std::string& projectDir, bool CreateFilelistFile(const std::string& outputDir, const std::string& projectDir,
const std::string& projectname, std::string& cmakeFilePattern); const std::string& projectname, std::string& cmakeFilePattern);
///! Reads the old foo.kdevelop line by line and only replaces the "important" lines ///! Reads the old foo.kdevelop line by line and only replaces the "important" lines