cmGeneratorTarget: add HasLanguage() as wrapper for GetLanguages()

This commit is contained in:
Michael Stürmer
2018-04-05 06:35:01 +02:00
parent 3201e4c156
commit 6c517a9f8d
2 changed files with 18 additions and 0 deletions
+12
View File
@@ -5195,6 +5195,18 @@ void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
}
}
bool cmGeneratorTarget::HasLanguage(std::string const& language,
std::string const& config,
bool exclusive) const
{
std::set<std::string> languages;
this->GetLanguages(languages, config);
// add linker language (if it is different from compiler languages)
languages.insert(this->GetLinkerLanguage(config));
return (languages.size() == 1 || !exclusive) &&
languages.count(language) > 0;
}
void cmGeneratorTarget::ComputeLinkImplementationLanguages(
const std::string& config, cmOptionalLinkImplementation& impl) const
{
+6
View File
@@ -364,6 +364,12 @@ public:
void GetLanguages(std::set<std::string>& languages,
std::string const& config) const;
// Evaluate if the target uses the given language for compilation
// and/or linking. If 'exclusive' is true, 'language' is expected
// to be the only language used for the target.
bool HasLanguage(std::string const& language, std::string const& config,
bool exclusive = true) const;
void GetObjectLibrariesCMP0026(
std::vector<cmGeneratorTarget*>& objlibs) const;