diff options
Diffstat (limited to 'Source/cmGeneratorTarget.h')
| -rw-r--r-- | Source/cmGeneratorTarget.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 25e6a81..7fa662d 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -26,6 +26,7 @@ enum class cmBuildStep; class cmComputeLinkInformation; class cmCustomCommand; +class cmFileSet; class cmGlobalGenerator; class cmLocalGenerator; class cmMakefile; @@ -489,6 +490,20 @@ public: std::string GetCreateRuleVariable(std::string const& lang, std::string const& config) const; + std::string GetClangTidyExportFixesDirectory(const std::string& lang) const; + +private: + using ConfigAndLanguage = std::pair<std::string, std::string>; + using ConfigAndLanguageToBTStrings = + std::map<ConfigAndLanguage, std::vector<BT<std::string>>>; + mutable ConfigAndLanguageToBTStrings IncludeDirectoriesCache; + mutable ConfigAndLanguageToBTStrings CompileOptionsCache; + mutable ConfigAndLanguageToBTStrings CompileDefinitionsCache; + mutable ConfigAndLanguageToBTStrings PrecompileHeadersCache; + mutable ConfigAndLanguageToBTStrings LinkOptionsCache; + mutable ConfigAndLanguageToBTStrings LinkDirectoriesCache; + +public: /** Get the include directories for this target. */ std::vector<BT<std::string>> GetIncludeDirectories( const std::string& config, const std::string& lang) const; @@ -1229,4 +1244,21 @@ public: // Check C++ module status for the target. void CheckCxxModuleStatus(std::string const& config) const; + + bool NeedCxxModuleSupport(std::string const& lang, + std::string const& config) const; + bool NeedDyndep(std::string const& lang, std::string const& config) const; + cmFileSet const* GetFileSetForSource(std::string const& config, + cmSourceFile const* sf) const; + bool NeedDyndepForSource(std::string const& lang, std::string const& config, + cmSourceFile const* sf) const; + +private: + void BuildFileSetInfoCache(std::string const& config) const; + struct InfoByConfig + { + bool BuiltFileSetCache = false; + std::map<std::string, cmFileSet const*> FileSetCache; + }; + mutable std::map<std::string, InfoByConfig> Configs; }; |
