diff options
author | Morné Chamberlain <thefreeman.za@gmail.com> | 2012-10-10 22:01:48 (GMT) |
---|---|---|
committer | Morné Chamberlain <thefreeman.za@gmail.com> | 2012-10-13 07:47:50 (GMT) |
commit | b8457ad18b7eac2998fdd29fbc295c1dadbbba42 (patch) | |
tree | 0247a654ca1f247e5b92b8ba57f90697734c42ec /Source/cmExtraSublimeTextGenerator.h | |
parent | 4c28506ac4b4ed2de37072b323cc9d1ee0ade1f3 (diff) | |
download | CMake-b8457ad18b7eac2998fdd29fbc295c1dadbbba42.zip CMake-b8457ad18b7eac2998fdd29fbc295c1dadbbba42.tar.gz CMake-b8457ad18b7eac2998fdd29fbc295c1dadbbba42.tar.bz2 |
Added a generator for Sublime Text 2 project files.
The generator adds all list and source files for each defined
project. The generated project files also include build_system
entries that run the platform-specific make on the generated
Makefiles. A build_system entry is created for each target
that was defined in the CMakeLists.txt files.
At the moment this has only been tested with C/C++ projects.
Diffstat (limited to 'Source/cmExtraSublimeTextGenerator.h')
-rw-r--r-- | Source/cmExtraSublimeTextGenerator.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Source/cmExtraSublimeTextGenerator.h b/Source/cmExtraSublimeTextGenerator.h new file mode 100644 index 0000000..231cc90 --- /dev/null +++ b/Source/cmExtraSublimeTextGenerator.h @@ -0,0 +1,61 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2004-2009 Kitware, Inc. + Copyright 2004 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 cmExtraSublimeTextGenerator_h +#define cmExtraSublimeTextGenerator_h + +#include "cmExternalMakefileProjectGenerator.h" + +class cmLocalGenerator; +class cmMakefile; +class cmTarget; +class cmGeneratedFileStream; + +/** \class cmExtraSublimeTextGenerator + * \brief Write Sublime Text 2 project files for Makefile based projects + */ +class cmExtraSublimeTextGenerator : public cmExternalMakefileProjectGenerator +{ +public: + cmExtraSublimeTextGenerator(); + + virtual const char* GetName() const + { return cmExtraSublimeTextGenerator::GetActualName();} + static const char* GetActualName() + { return "SublimeText2";} + static cmExternalMakefileProjectGenerator* New() + { return new cmExtraSublimeTextGenerator; } + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry, + const char* fullName) const; + + virtual void Generate(); +private: + + void CreateProjectFile(const std::vector<cmLocalGenerator*>& lgs); + + void CreateNewProjectFile(const std::vector<cmLocalGenerator*>& lgs, + const std::string& filename); + + std::string BuildMakeCommand(const std::string& make, const char* makefile, + const char* target); + void AppendTarget(cmGeneratedFileStream& fout, + const char* targetName, + cmTarget* target, + const char* make, + const cmMakefile* makefile, + const char* compiler, + bool firstTarget = true); + +}; + +#endif |