| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /* 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();
- bool IncludeThisTarget();
- std::vector<cmSourceFile*> GetSources() const;
- const char* GetAbsBuildFilePath() const
- {
- return this->AbsBuildFilePath.c_str();
- }
- const char* GetRelBuildFileName() const
- {
- return this->RelBuildFileName.c_str();
- }
- const char* GetAbsBuildFileName() const
- {
- return this->AbsBuildFileName.c_str();
- }
- const char* GetAbsOutputFileName() const
- {
- return this->AbsOutputFileName.c_str();
- }
- static std::string GetRelBuildFilePath(const cmGeneratorTarget* target);
- static std::string GetAbsPathToRoot(const cmGeneratorTarget* target);
- static std::string GetAbsBuildFilePath(const cmGeneratorTarget* target);
- static std::string GetRelBuildFileName(const cmGeneratorTarget* target);
- static std::string GetBuildFileName(const cmGeneratorTarget* target);
- static std::string AddSlashIfNeededToPath(std::string const& input);
- private:
- cmGlobalGhsMultiGenerator* GetGlobalGenerator() const;
- cmGeneratedFileStream* GetFolderBuildStreams()
- {
- return this->FolderBuildStreams[""];
- };
- void GenerateTarget();
- bool IsTargetGroup() const { return this->TargetGroup; }
- void WriteTargetSpecifics(std::ostream& fout, const std::string& config,
- bool notKernel);
- 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,
- bool const notKernel);
- 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);
- static std::map<const cmSourceFile*, std::string> GetObjectNames(
- std::vector<cmSourceFile*>* objectSources,
- cmLocalGhsMultiGenerator* localGhsMultiGenerator,
- cmGeneratorTarget* generatorTarget);
- static void WriteObjectLangOverride(std::ostream* fout,
- const cmSourceFile* sourceFile);
- std::string GetOutputDirectory(const std::string& config) const;
- std::string GetOutputFilename(const std::string& config) const;
- static std::string ComputeLongestObjectDirectory(
- cmLocalGhsMultiGenerator const* localGhsMultiGenerator,
- cmGeneratorTarget* generatorTarget, cmSourceFile* const sourceFile);
- bool IsNotKernel(std::string const& config, const std::string& language);
- static bool DetermineIfTargetGroup(const cmGeneratorTarget* target);
- bool DetermineIfDynamicDownload(std::string const& config,
- const std::string& language);
- cmGeneratorTarget* GeneratorTarget;
- cmLocalGhsMultiGenerator* LocalGenerator;
- cmMakefile* Makefile;
- std::string AbsBuildFilePath;
- std::string RelBuildFilePath;
- std::string AbsBuildFileName;
- std::string RelBuildFileName;
- std::string RelOutputFileName;
- std::string AbsOutputFileName;
- std::map<std::string, cmGeneratedFileStream*> FolderBuildStreams;
- bool TargetGroup;
- bool DynamicDownload;
- static std::string const DDOption;
- 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
|