Introduce "generator expressions" to add_test()
[cmake.git] / Source / cmExtraCodeBlocksGenerator.h
blob962d08e65b71f8d9ec0ca1871a7cfbcc22404bfe
1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmExtraCodeBlocksGenerator.h,v $
5 Language: C++
6 Date: $Date: 2007-11-25 12:45:18 $
7 Version: $Revision: 1.5 $
9 Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10 Copyright (c) 2004 Alexander Neundorf, neundorf@kde.org. All rights reserved.
11 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*/
18 #ifndef cmExtraCodeBlocksGenerator_h
19 #define cmExtraCodeBlocksGenerator_h
21 #include "cmExternalMakefileProjectGenerator.h"
23 class cmLocalGenerator;
24 class cmMakefile;
25 class cmTarget;
26 class cmGeneratedFileStream;
28 /** \class cmExtraCodeBlocksGenerator
29 * \brief Write CodeBlocks project files for Makefile based projects
31 * This generator is in early alpha stage.
33 class cmExtraCodeBlocksGenerator : public cmExternalMakefileProjectGenerator
35 public:
36 cmExtraCodeBlocksGenerator();
37 virtual void SetGlobalGenerator(cmGlobalGenerator* generator);
39 virtual const char* GetName() const
40 { return cmExtraCodeBlocksGenerator::GetActualName();}
41 static const char* GetActualName() { return "CodeBlocks";}
42 static cmExternalMakefileProjectGenerator* New()
43 { return new cmExtraCodeBlocksGenerator; }
44 /** Get the documentation entry for this generator. */
45 virtual void GetDocumentation(cmDocumentationEntry& entry,
46 const char* fullName) const;
48 virtual void Generate();
49 private:
51 void CreateProjectFile(const std::vector<cmLocalGenerator*>& lgs);
53 void CreateNewProjectFile(const std::vector<cmLocalGenerator*>& lgs,
54 const std::string& filename);
55 std::string GetCBCompilerId(const cmMakefile* mf);
56 int GetCBTargetType(cmTarget* target);
57 std::string BuildMakeCommand(const std::string& make, const char* makefile,
58 const char* target);
59 void AppendTarget(cmGeneratedFileStream& fout,
60 const char* targetName,
61 cmTarget* target,
62 const char* make,
63 const cmMakefile* makefile,
64 const char* compiler);
68 #endif