Merge topic 'automoc-append-implicit-dirs'

753b905 Automoc: append implicit includes after user-specified dirs
This commit is contained in:
Brad King 2013-03-19 19:37:49 -04:00 committed by CMake Topic Stage
commit 3efede0ccc

View File

@ -1407,20 +1407,22 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
return; return;
} }
if (stripImplicitInclDirs) std::vector<std::string> implicitDirs;
// Load implicit include directories for this language.
std::string impDirVar = "CMAKE_";
impDirVar += lang;
impDirVar += "_IMPLICIT_INCLUDE_DIRECTORIES";
if(const char* value = this->Makefile->GetDefinition(impDirVar.c_str()))
{ {
// Load implicit include directories for this language. std::vector<std::string> impDirVec;
std::string impDirVar = "CMAKE_"; cmSystemTools::ExpandListArgument(value, impDirVec);
impDirVar += lang; for(std::vector<std::string>::const_iterator i = impDirVec.begin();
impDirVar += "_IMPLICIT_INCLUDE_DIRECTORIES"; i != impDirVec.end(); ++i)
if(const char* value = this->Makefile->GetDefinition(impDirVar.c_str()))
{ {
std::vector<std::string> impDirVec; emitted.insert(*i);
cmSystemTools::ExpandListArgument(value, impDirVec); if (!stripImplicitInclDirs)
for(std::vector<std::string>::const_iterator i = impDirVec.begin();
i != impDirVec.end(); ++i)
{ {
emitted.insert(*i); implicitDirs.push_back(*i);
} }
} }
} }
@ -1463,6 +1465,15 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
dirs.push_back(*i); dirs.push_back(*i);
} }
} }
for(std::vector<std::string>::const_iterator i = implicitDirs.begin();
i != implicitDirs.end(); ++i)
{
if(std::find(includes.begin(), includes.end(), *i) != includes.end())
{
dirs.push_back(*i);
}
}
} }
void cmLocalGenerator::GetTargetFlags(std::string& linkLibs, void cmLocalGenerator::GetTargetFlags(std::string& linkLibs,