|
@@ -387,14 +387,15 @@ static void handleSystemIncludesDep(
|
|
|
cmLocalGenerator* lg, cmGeneratorTarget const* depTgt,
|
|
cmLocalGenerator* lg, cmGeneratorTarget const* depTgt,
|
|
|
const std::string& config, cmGeneratorTarget const* headTarget,
|
|
const std::string& config, cmGeneratorTarget const* headTarget,
|
|
|
cmGeneratorExpressionDAGChecker* dagChecker,
|
|
cmGeneratorExpressionDAGChecker* dagChecker,
|
|
|
- std::vector<std::string>& result, bool excludeImported)
|
|
|
|
|
|
|
+ std::vector<std::string>& result, bool excludeImported,
|
|
|
|
|
+ std::string const& language)
|
|
|
{
|
|
{
|
|
|
if (const char* dirs =
|
|
if (const char* dirs =
|
|
|
depTgt->GetProperty("INTERFACE_SYSTEM_INCLUDE_DIRECTORIES")) {
|
|
depTgt->GetProperty("INTERFACE_SYSTEM_INCLUDE_DIRECTORIES")) {
|
|
|
cmGeneratorExpression ge;
|
|
cmGeneratorExpression ge;
|
|
|
cmSystemTools::ExpandListArgument(
|
|
cmSystemTools::ExpandListArgument(
|
|
|
ge.Parse(dirs)->Evaluate(lg, config, false, headTarget, depTgt,
|
|
ge.Parse(dirs)->Evaluate(lg, config, false, headTarget, depTgt,
|
|
|
- dagChecker),
|
|
|
|
|
|
|
+ dagChecker, language),
|
|
|
result);
|
|
result);
|
|
|
}
|
|
}
|
|
|
if (!depTgt->IsImported() || excludeImported) {
|
|
if (!depTgt->IsImported() || excludeImported) {
|
|
@@ -406,7 +407,7 @@ static void handleSystemIncludesDep(
|
|
|
cmGeneratorExpression ge;
|
|
cmGeneratorExpression ge;
|
|
|
cmSystemTools::ExpandListArgument(
|
|
cmSystemTools::ExpandListArgument(
|
|
|
ge.Parse(dirs)->Evaluate(lg, config, false, headTarget, depTgt,
|
|
ge.Parse(dirs)->Evaluate(lg, config, false, headTarget, depTgt,
|
|
|
- dagChecker),
|
|
|
|
|
|
|
+ dagChecker, language),
|
|
|
result);
|
|
result);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -738,7 +739,8 @@ const char* cmGeneratorTarget::GetLocationForBuild() const
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bool cmGeneratorTarget::IsSystemIncludeDirectory(
|
|
bool cmGeneratorTarget::IsSystemIncludeDirectory(
|
|
|
- const std::string& dir, const std::string& config) const
|
|
|
|
|
|
|
+ const std::string& dir, const std::string& config,
|
|
|
|
|
+ const std::string& language) const
|
|
|
{
|
|
{
|
|
|
assert(this->GetType() != cmStateEnums::INTERFACE_LIBRARY);
|
|
assert(this->GetType() != cmStateEnums::INTERFACE_LIBRARY);
|
|
|
std::string config_upper;
|
|
std::string config_upper;
|
|
@@ -761,7 +763,7 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(
|
|
|
cmGeneratorExpression ge;
|
|
cmGeneratorExpression ge;
|
|
|
cmSystemTools::ExpandListArgument(
|
|
cmSystemTools::ExpandListArgument(
|
|
|
ge.Parse(it)->Evaluate(this->LocalGenerator, config, false, this,
|
|
ge.Parse(it)->Evaluate(this->LocalGenerator, config, false, this,
|
|
|
- &dagChecker),
|
|
|
|
|
|
|
+ &dagChecker, language),
|
|
|
result);
|
|
result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -769,7 +771,7 @@ bool cmGeneratorTarget::IsSystemIncludeDirectory(
|
|
|
this->GetLinkImplementationClosure(config);
|
|
this->GetLinkImplementationClosure(config);
|
|
|
for (cmGeneratorTarget const* dep : deps) {
|
|
for (cmGeneratorTarget const* dep : deps) {
|
|
|
handleSystemIncludesDep(this->LocalGenerator, dep, config, this,
|
|
handleSystemIncludesDep(this->LocalGenerator, dep, config, this,
|
|
|
- &dagChecker, result, excludeImported);
|
|
|
|
|
|
|
+ &dagChecker, result, excludeImported, language);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
std::for_each(result.begin(), result.end(),
|
|
std::for_each(result.begin(), result.end(),
|