summaryrefslogtreecommitdiffstats
path: root/Source/cmExtraKateGenerator.h
diff options
context:
space:
mode:
authorAlex Neundorf <neundorf@kde.org>2013-11-16 14:41:32 (GMT)
committerBrad King <brad.king@kitware.com>2013-11-25 15:48:33 (GMT)
commit644e0128633d34d5ea31ad2bfe10d0fc399ba899 (patch)
tree1d7b295ee35be397ed435cc98e13bddf7a4cd4b5 /Source/cmExtraKateGenerator.h
parentda6b86f4f031b189768dc474721145a1b99f71ea (diff)
downloadCMake-644e0128633d34d5ea31ad2bfe10d0fc399ba899.zip
CMake-644e0128633d34d5ea31ad2bfe10d0fc399ba899.tar.gz
CMake-644e0128633d34d5ea31ad2bfe10d0fc399ba899.tar.bz2
kate: add project generator for the Kate project plugin
This patch adds an extra generator for KDE's kate text editor, or better more specifically, the project plugin. Alex
Diffstat (limited to 'Source/cmExtraKateGenerator.h')
-rw-r--r--Source/cmExtraKateGenerator.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/Source/cmExtraKateGenerator.h b/Source/cmExtraKateGenerator.h
new file mode 100644
index 0000000..19147f2
--- /dev/null
+++ b/Source/cmExtraKateGenerator.h
@@ -0,0 +1,55 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2004-2009 Kitware, Inc.
+ Copyright 2013 Alexander Neundorf (neundorf@kde.org)
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+#ifndef cmExtraKateGenerator_h
+#define cmExtraKateGenerator_h
+
+#include "cmExternalMakefileProjectGenerator.h"
+
+class cmLocalGenerator;
+class cmMakefile;
+class cmTarget;
+class cmGeneratedFileStream;
+
+/** \class cmExtraKateGenerator
+ * \brief Write Kate project files for Makefile or ninja based projects
+ */
+class cmExtraKateGenerator : public cmExternalMakefileProjectGenerator
+{
+public:
+ cmExtraKateGenerator();
+
+ virtual const char* GetName() const
+ { return cmExtraKateGenerator::GetActualName();}
+ static const char* GetActualName() { return "Kate";}
+ static cmExternalMakefileProjectGenerator* New()
+ { return new cmExtraKateGenerator; }
+ /** Get the documentation entry for this generator. */
+ virtual void GetDocumentation(cmDocumentationEntry& entry,
+ const char* fullName) const;
+
+ virtual void Generate();
+private:
+ void CreateKateProjectFile(const cmMakefile* mf) const;
+ void CreateDummyKateProjectFile(const cmMakefile* mf) const;
+ std::string GenerateFilesString(const cmMakefile* mf) const;
+ std::string GetPathBasename(const std::string& path) const;
+ std::string GenerateProjectName(const std::string& name,
+ const std::string& type,
+ const std::string& path) const;
+ std::string BuildMakeCommand(const std::string& make,
+ const char* makefile, const char* target) const;
+
+ std::string ProjectName;
+};
+
+#endif