summaryrefslogtreecommitdiffstats
path: root/Source/cmGhsMultiTargetGenerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmGhsMultiTargetGenerator.h')
-rw-r--r--Source/cmGhsMultiTargetGenerator.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/Source/cmGhsMultiTargetGenerator.h b/Source/cmGhsMultiTargetGenerator.h
new file mode 100644
index 0000000..a241cc6
--- /dev/null
+++ b/Source/cmGhsMultiTargetGenerator.h
@@ -0,0 +1,72 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#ifndef cmGhsMultiTargetGenerator_h
+#define cmGhsMultiTargetGenerator_h
+
+#include "cmGhsMultiGpj.h"
+
+#include "cmTarget.h"
+
+class cmCustomCommand;
+class cmGeneratedFileStream;
+class cmGeneratorTarget;
+class cmGlobalGhsMultiGenerator;
+class cmLocalGhsMultiGenerator;
+class cmMakefile;
+class cmSourceFile;
+
+class cmGhsMultiTargetGenerator
+{
+public:
+ cmGhsMultiTargetGenerator(cmGeneratorTarget* target);
+
+ virtual ~cmGhsMultiTargetGenerator();
+
+ virtual void Generate();
+
+private:
+ cmGlobalGhsMultiGenerator* GetGlobalGenerator() const;
+
+ void GenerateTarget();
+
+ void WriteTargetSpecifics(std::ostream& fout, const std::string& config);
+
+ void WriteCompilerFlags(std::ostream& fout, const std::string& config,
+ const std::string& language);
+ void WriteCompilerDefinitions(std::ostream& fout, const std::string& config,
+ const std::string& language);
+
+ void SetCompilerFlags(std::string const& config,
+ const std::string& language);
+
+ std::string GetDefines(const std::string& langugae,
+ std::string const& config);
+
+ void WriteIncludes(std::ostream& fout, const std::string& config,
+ const std::string& language);
+ void WriteTargetLinkLine(std::ostream& fout, std::string const& config);
+ void WriteCustomCommands(std::ostream& fout);
+ void WriteCustomCommandsHelper(
+ std::ostream& fout, std::vector<cmCustomCommand> const& commandsSet,
+ cmTarget::CustomCommandType commandType);
+ void WriteSources(std::ostream& fout_proj);
+ void WriteSourceProperty(std::ostream& fout, const cmSourceFile* sf,
+ std::string propName, std::string propFlag);
+ void WriteReferences(std::ostream& fout);
+ static void WriteObjectLangOverride(std::ostream& fout,
+ const cmSourceFile* sourceFile);
+
+ bool DetermineIfIntegrityApp(void);
+ cmGeneratorTarget* GeneratorTarget;
+ cmLocalGhsMultiGenerator* LocalGenerator;
+ cmMakefile* Makefile;
+ std::map<std::string, std::string> FlagsByLanguage;
+ std::map<std::string, std::string> DefinesByLanguage;
+
+ std::string TargetNameReal;
+ GhsMultiGpj::Types TagType;
+ std::string const Name;
+ std::string ConfigName; /* CMAKE_BUILD_TYPE */
+};
+
+#endif // ! cmGhsMultiTargetGenerator_h