mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
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.
This commit is contained in:
61
Source/cmExtraSublimeTextGenerator.h
Normal file
61
Source/cmExtraSublimeTextGenerator.h
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user