Commit d58396b7 authored by Brad King's avatar Brad King
Browse files

Merge branch 'fix-COMPILE_FEATURES-genex' into release

parents 0fcdc57b 45ec182d
......@@ -1373,10 +1373,17 @@ static const struct CompileFeaturesNode : public cmGeneratorExpressionNode
for (LangMap::const_iterator lit = testedFeatures.begin();
lit != testedFeatures.end(); ++lit)
{
std::vector<std::string> const& langAvailable
= availableFeatures[lit->first];
for (std::vector<std::string>::const_iterator it = lit->second.begin();
it != lit->second.end(); ++it)
{
if (!context->Makefile->HaveFeatureAvailable(target,
if (std::find(langAvailable.begin(), langAvailable.end(), *it)
== langAvailable.end())
{
return "0";
}
if (!context->Makefile->HaveStandardAvailable(target,
lit->first, *it))
{
if (evalLL)
......
......@@ -5130,18 +5130,19 @@ CompileFeaturesAvailable(const std::string& lang, std::string *error) const
}
//----------------------------------------------------------------------------
bool cmMakefile::HaveFeatureAvailable(cmTarget const* target,
bool cmMakefile::HaveStandardAvailable(cmTarget const* target,
std::string const& lang,
const std::string& feature) const
{
return lang == "C"
? this->HaveCFeatureAvailable(target, feature)
: this->HaveCxxFeatureAvailable(target, feature);
? this->HaveCStandardAvailable(target, feature)
: this->HaveCxxStandardAvailable(target, feature);
}
//----------------------------------------------------------------------------
bool cmMakefile::
HaveCFeatureAvailable(cmTarget const* target, const std::string& feature) const
HaveCStandardAvailable(cmTarget const* target,
const std::string& feature) const
{
bool needC90 = false;
bool needC99 = false;
......@@ -5218,7 +5219,7 @@ bool cmMakefile::IsLaterStandard(std::string const& lang,
}
//----------------------------------------------------------------------------
bool cmMakefile::HaveCxxFeatureAvailable(cmTarget const* target,
bool cmMakefile::HaveCxxStandardAvailable(cmTarget const* target,
const std::string& feature) const
{
bool needCxx98 = false;
......
......@@ -935,7 +935,7 @@ public:
const char* CompileFeaturesAvailable(const std::string& lang,
std::string *error) const;
bool HaveFeatureAvailable(cmTarget const* target, std::string const& lang,
bool HaveStandardAvailable(cmTarget const* target, std::string const& lang,
const std::string& feature) const;
bool IsLaterStandard(std::string const& lang,
......@@ -1158,9 +1158,9 @@ private:
void CheckNeededCxxLanguage(const std::string& feature, bool& needCxx98,
bool& needCxx11, bool& needCxx14) const;
bool HaveCFeatureAvailable(cmTarget const* target,
bool HaveCStandardAvailable(cmTarget const* target,
const std::string& feature) const;
bool HaveCxxFeatureAvailable(cmTarget const* target,
bool HaveCxxStandardAvailable(cmTarget const* target,
const std::string& feature) const;
mutable bool SuppressWatches;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment