summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalKdevelopGenerator.h
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2005-02-10 04:22:06 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2005-02-10 04:22:06 (GMT)
commitc840bbcaaf10a7bf30516d4c1f8c79888c5726da (patch)
tree3c7af1a5ff81e6d8fcb13e6c3f11f2c95eb0e9d4 /Source/cmGlobalKdevelopGenerator.h
parentb7b501bbe8fa7a1a5ee5b342341c5512e7e604ca (diff)
downloadCMake-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.h56
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