summaryrefslogtreecommitdiff
path: root/Source/cmGeneratorTarget.cxx
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-01-08 00:38:54 +0100
committerStephen Kelly <steveire@gmail.com>2014-01-08 16:06:41 +0100
commit590d238914ff1b8652c0074e6715f51cad5eb7db (patch)
treecb1702341ebc8caa061305ddd1405b33571e8963 /Source/cmGeneratorTarget.cxx
parentbeb9cfae1798ef3e25be8d1cec7ce9ae33abec7b (diff)
downloadcmake-590d238914ff1b8652c0074e6715f51cad5eb7db.tar.gz
cmTarget: Handle NO_SYSTEM_FROM_IMPORTED.
This handling was lost in commit faedd2be (cmTarget: Fix system include annotation propagation., 2014-01-01).
Diffstat (limited to 'Source/cmGeneratorTarget.cxx')
-rw-r--r--Source/cmGeneratorTarget.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 6894cfcca6..2c976cd310 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -65,7 +65,8 @@ cmGeneratorTarget::GetSourceDepends(cmSourceFile* sf) const
static void handleSystemIncludesDep(cmMakefile *mf, const std::string &name,
const char *config, cmTarget *headTarget,
cmGeneratorExpressionDAGChecker *dagChecker,
- std::vector<std::string>& result)
+ std::vector<std::string>& result,
+ bool excludeImported)
{
cmTarget* depTgt = mf->FindTargetToUse(name.c_str());
@@ -85,7 +86,7 @@ static void handleSystemIncludesDep(cmMakefile *mf, const std::string &name,
config, false, headTarget,
depTgt, dagChecker), result);
}
- if (!depTgt->IsImported())
+ if (!depTgt->IsImported() || excludeImported)
{
return;
}
@@ -130,6 +131,9 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(const char *dir,
this->GetName(),
"SYSTEM_INCLUDE_DIRECTORIES", 0, 0);
+ bool excludeImported
+ = this->Target->GetPropertyAsBool("NO_SYSTEM_FROM_IMPORTED");
+
std::vector<std::string> result;
for (std::set<cmStdString>::const_iterator
it = this->Target->GetSystemIncludeDirectories().begin();
@@ -156,7 +160,7 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(const char *dir,
}
handleSystemIncludesDep(this->Makefile, *li, config, this->Target,
- &dagChecker, result);
+ &dagChecker, result, excludeImported);
std::vector<std::string> deps;
tgt->GetTransitivePropertyLinkLibraries(config, this->Target, deps);
@@ -167,7 +171,7 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(const char *dir,
if (uniqueDeps.insert(*di).second)
{
handleSystemIncludesDep(this->Makefile, *di, config, this->Target,
- &dagChecker, result);
+ &dagChecker, result, excludeImported);
}
}
}