123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmExtraCodeBlocksGenerator_h
- #define cmExtraCodeBlocksGenerator_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include "cmExternalMakefileProjectGenerator.h"
- #include <string>
- #include <vector>
- class cmGeneratorTarget;
- class cmLocalGenerator;
- class cmMakefile;
- class cmXMLWriter;
- /** \class cmExtraCodeBlocksGenerator
- * \brief Write CodeBlocks project files for Makefile based projects
- */
- class cmExtraCodeBlocksGenerator : public cmExternalMakefileProjectGenerator
- {
- public:
- cmExtraCodeBlocksGenerator();
- static cmExternalMakefileProjectGeneratorFactory* GetFactory();
- void Generate() override;
- private:
- struct CbpUnit
- {
- std::vector<const cmGeneratorTarget*> Targets;
- };
- void CreateProjectFile(const std::vector<cmLocalGenerator*>& lgs);
- void CreateNewProjectFile(const std::vector<cmLocalGenerator*>& lgs,
- const std::string& filename);
- std::string CreateDummyTargetFile(cmLocalGenerator* lg,
- cmGeneratorTarget* target) const;
- std::string GetCBCompilerId(const cmMakefile* mf);
- int GetCBTargetType(cmGeneratorTarget* target);
- std::string BuildMakeCommand(const std::string& make, const char* makefile,
- const std::string& target,
- const std::string& makeFlags);
- void AppendTarget(cmXMLWriter& xml, const std::string& targetName,
- cmGeneratorTarget* target, const char* make,
- const cmLocalGenerator* lg, const char* compiler,
- const std::string& makeFlags);
- };
- #endif
|