diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2005-02-10 04:22:06 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2005-02-10 04:22:06 (GMT) |
commit | c840bbcaaf10a7bf30516d4c1f8c79888c5726da (patch) | |
tree | 3c7af1a5ff81e6d8fcb13e6c3f11f2c95eb0e9d4 /Source/cmGlobalKdevelopGenerator.h | |
parent | b7b501bbe8fa7a1a5ee5b342341c5512e7e604ca (diff) | |
download | CMake-c840bbcaaf10a7bf30516d4c1f8c79888c5726da.zip CMake-c840bbcaaf10a7bf30516d4c1f8c79888c5726da.tar.gz CMake-c840bbcaaf10a7bf30516d4c1f8c79888c5726da.tar.bz2 |
ENH: move most of the to global generator
Diffstat (limited to 'Source/cmGlobalKdevelopGenerator.h')
-rw-r--r-- | Source/cmGlobalKdevelopGenerator.h | 56 |
1 files changed, 53 insertions, 3 deletions
diff --git a/Source/cmGlobalKdevelopGenerator.h b/Source/cmGlobalKdevelopGenerator.h index 31a35a8..3895ce0 100644 --- a/Source/cmGlobalKdevelopGenerator.h +++ b/Source/cmGlobalKdevelopGenerator.h @@ -20,10 +20,16 @@ #include "cmGlobalUnixMakefileGenerator.h" -/** \class cmGlobalUnixMakefileGenerator - * \brief Write a Unix makefiles. +/** \class cmGlobalKdevelopGenerator + * \brief Write Unix Makefiles accompanied by KDevelop3 project files. * - * cmGlobalUnixMakefileGenerator manages UNIX build process for a tree + * cmGlobalKdevelopGenerator produces a project file for KDevelop 3 (KDevelop > 3.1.1). + * 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 cmGlobalKdevelopGenerator : public cmGlobalUnixMakefileGenerator { @@ -42,6 +48,50 @@ public: ///! Create a local generator appropriate to this Global Generator virtual cmLocalGenerator *CreateLocalGenerator(); + /** + * Generate the all required files for building this project/tree. This + * basically creates a series of LocalGenerators for each directory and + * requests that they Generate. + */ + virtual void Generate(); + + /*** 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(cmLocalGenerator* lg, + std::vector<cmLocalGenerator*>& lgs, + const std::string& outputDir, + const std::string& projectDirIn, + const std::string& projectname, + std::string& cmakeFilePattern); + + /** Create the foo.kdevelop file. This one calls MergeProjectFiles() + 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, + const std::string& projectname, + const std::string& executable, + const std::string& cmakeFilePattern); + + /*** Reads the old foo.kdevelop line by line and only replaces the + "important" lines + */ + void MergeProjectFiles(const std::string& outputDir, + const std::string& projectDir, + const std::string& filename, + const std::string& executable, + const std::string& cmakeFilePattern); + ///! Creates a new foo.kdevelop file + void CreateNewProjectFile(const std::string& outputDir, + const std::string& projectDir, + const std::string& filename, + const std::string& executable, + const std::string& cmakeFilePattern); + }; #endif |