summaryrefslogtreecommitdiffstats
path: root/Source/cmExtraCodeLiteGenerator.h
diff options
context:
space:
mode:
authorMinze Zwerver <ysblokje@gmail.com>2016-09-23 06:42:20 (GMT)
committerBrad King <brad.king@kitware.com>2016-09-26 17:40:38 (GMT)
commitcbe488792746377396a9f38aeb2999750ade518a (patch)
tree0a55ad14b161d0e8dccfd0a725e31231d1b7a4d5 /Source/cmExtraCodeLiteGenerator.h
parentd0a27ae998e5ff313937f346b53d672c6353bd74 (diff)
downloadCMake-cbe488792746377396a9f38aeb2999750ade518a.zip
CMake-cbe488792746377396a9f38aeb2999750ade518a.tar.gz
CMake-cbe488792746377396a9f38aeb2999750ade518a.tar.bz2
CodeLite: Optionally use targets to create (sub)project files
The basic codelite generator creates .project files based on the `project()` stanza. Add a `CMAKE_CODELITE_USE_TARGETS` option to use the targets instead.
Diffstat (limited to 'Source/cmExtraCodeLiteGenerator.h')
-rw-r--r--Source/cmExtraCodeLiteGenerator.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/Source/cmExtraCodeLiteGenerator.h b/Source/cmExtraCodeLiteGenerator.h
index f5765d8..9c571a5 100644
--- a/Source/cmExtraCodeLiteGenerator.h
+++ b/Source/cmExtraCodeLiteGenerator.h
@@ -18,11 +18,16 @@
#include "cmExternalMakefileProjectGenerator.h"
+#include <map>
+#include <set>
#include <string>
#include <vector>
class cmLocalGenerator;
class cmMakefile;
+class cmGeneratorTarget;
+class cmXMLWriter;
+class cmSourceFile;
class cmExtraCodeLiteGenerator : public cmExternalMakefileProjectGenerator
{
@@ -38,6 +43,20 @@ protected:
std::string GetCleanCommand(const cmMakefile* mf) const;
std::string GetRebuildCommand(const cmMakefile* mf) const;
std::string GetSingleFileBuildCommand(const cmMakefile* mf) const;
+ std::vector<std::string> CreateProjectsByTarget(cmXMLWriter* xml);
+ std::vector<std::string> CreateProjectsByProjectMaps(cmXMLWriter* xml);
+ std::string CollectSourceFiles(const cmMakefile* makefile,
+ const cmGeneratorTarget* gt,
+ std::map<std::string, cmSourceFile*>& cFiles,
+ std::set<std::string>& otherFiles);
+ void FindMatchingHeaderfiles(std::map<std::string, cmSourceFile*>& cFiles,
+ std::set<std::string>& otherFiles);
+ void CreateProjectSourceEntries(std::map<std::string, cmSourceFile*>& cFiles,
+ std::set<std::string>& otherFiles,
+ cmXMLWriter* xml,
+ const std::string& projectPath,
+ const cmMakefile* mf,
+ const std::string& projectType);
public:
cmExtraCodeLiteGenerator();
@@ -49,6 +68,8 @@ public:
void CreateNewProjectFile(const std::vector<cmLocalGenerator*>& lgs,
const std::string& filename);
+ void CreateNewProjectFile(const cmGeneratorTarget* lg,
+ const std::string& filename);
};
#endif