summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Scharrer <daniel@constexpr.org>2019-06-22 22:22:39 +0200
committerDaniel Scharrer <daniel@constexpr.org>2019-06-22 23:09:17 +0200
commitd88b38d05d5bc7528667ed4f86842ab8f7ff2ba2 (patch)
treec6b3570f0c65baa353128d896a4210ab274dda3b
parentf2bce265b7dd64f5c7ae7f62a962ceea367bd0f6 (diff)
downloadcmake-d88b38d05d5bc7528667ed4f86842ab8f7ff2ba2.tar.gz
Normalize paths when checking for implicit include dirs
GCC replaces implicit include directories with user-supplied ones if they point to the same directory, even if the path strings differ.
-rw-r--r--Source/cmLocalGenerator.cxx8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 3abf2ddda6..801f0e87d8 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1017,7 +1017,7 @@ std::vector<BT<std::string>> cmLocalGenerator::GetIncludeDirectoriesImplicit(
}
for (std::string const& i : impDirVec) {
- if (implicitSet.insert(i).second) {
+ if (implicitSet.insert(cmSystemTools::GetRealPath(i)).second) {
implicitDirs.emplace_back(i);
}
}
@@ -1028,7 +1028,8 @@ std::vector<BT<std::string>> cmLocalGenerator::GetIncludeDirectoriesImplicit(
&lang](std::string const& dir) {
return (
// Do not exclude directories that are not in an excluded set.
- ((implicitSet.find(dir) == implicitSet.end()) &&
+ ((implicitSet.find(cmSystemTools::GetRealPath(dir)) ==
+ implicitSet.end()) &&
(implicitExclude.find(dir) == implicitExclude.end()))
// Do not exclude entries of the CPATH environment variable even though
// they are implicitly searched by the compiler. They are meant to be
@@ -1082,7 +1083,8 @@ std::vector<BT<std::string>> cmLocalGenerator::GetIncludeDirectoriesImplicit(
if (!stripImplicitDirs) {
// Append implicit directories that were requested by the user only
for (BT<std::string> const& udr : userDirs) {
- if (implicitSet.find(udr.Value) != implicitSet.end()) {
+ if (implicitSet.find(cmSystemTools::GetRealPath(udr.Value)) !=
+ implicitSet.end()) {
emitBT(udr);
}
}