Merge topic 'implicit-includes'

5990ecb741 Compute implicit include directories from compiler output
d751d2d2ed CMakeDetermineCompilerABI: set locale to C for try_compile()
c765ae495a CMakeDetermineCompilerABI: pass verbose flag during compilation
8c5221fb1f try_compile: Preserve special characters in COMPILE_DEFINITIONS
15ad830062 Refactor exclusion of -I/usr/include to avoid per-language values

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2716
This commit is contained in:
Brad King
2019-01-22 16:37:12 +00:00
committed by Kitware Robot
65 changed files with 1721 additions and 9 deletions

View File

@@ -947,21 +947,29 @@ std::vector<BT<std::string>> cmLocalGenerator::GetIncludeDirectories(
rootPath = this->Makefile->GetSafeDefinition("CMAKE_SYSROOT");
}
std::vector<std::string> impDirVec;
// Get platform-wide implicit directories.
if (const char* implicitIncludes = (this->Makefile->GetDefinition(
"CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES"))) {
cmSystemTools::ExpandListArgument(implicitIncludes, impDirVec);
}
// Load implicit include directories for this language.
std::string key = "CMAKE_";
key += lang;
key += "_IMPLICIT_INCLUDE_DIRECTORIES";
if (const char* value = this->Makefile->GetDefinition(key)) {
std::vector<std::string> impDirVec;
cmSystemTools::ExpandListArgument(value, impDirVec);
for (std::string const& i : impDirVec) {
{
std::string d = rootPath + i;
cmSystemTools::ConvertToUnixSlashes(d);
emitted.insert(std::move(d));
}
implicitDirs.push_back(i);
}
for (std::string const& i : impDirVec) {
{
std::string d = rootPath + i;
cmSystemTools::ConvertToUnixSlashes(d);
emitted.insert(std::move(d));
}
implicitDirs.push_back(i);
}
}