diff options
-rw-r--r-- | Source/cmOutputConverter.cxx | 18 | ||||
-rw-r--r-- | Source/cmOutputConverter.h | 4 |
2 files changed, 17 insertions, 5 deletions
diff --git a/Source/cmOutputConverter.cxx b/Source/cmOutputConverter.cxx index 5d31f02..dfc1610 100644 --- a/Source/cmOutputConverter.cxx +++ b/Source/cmOutputConverter.cxx @@ -76,13 +76,14 @@ static bool cmOutputConverterNotAbove(const char* a, const char* b) cmSystemTools::IsSubDirectory(a, b)); } -std::string cmOutputConverter::ConvertToRelativePath( - std::string const& local_path, std::string const& remote_path) const +bool cmOutputConverter::ContainedInDirectory(std::string const& local_path, + std::string const& remote_path, + cmState::Directory directory) { const std::string relativePathTopBinary = - this->StateSnapshot.GetDirectory().GetRelativePathTopBinary(); + directory.GetRelativePathTopBinary(); const std::string relativePathTopSource = - this->StateSnapshot.GetDirectory().GetRelativePathTopSource(); + directory.GetRelativePathTopSource(); const bool bothInBinary = cmOutputConverterNotAbove(local_path.c_str(), @@ -96,7 +97,14 @@ std::string cmOutputConverter::ConvertToRelativePath( cmOutputConverterNotAbove(remote_path.c_str(), relativePathTopSource.c_str()); - if (!(bothInSource || bothInBinary)) { + return bothInSource || bothInBinary; +} + +std::string cmOutputConverter::ConvertToRelativePath( + std::string const& local_path, std::string const& remote_path) const +{ + if (!ContainedInDirectory(local_path, remote_path, + this->StateSnapshot.GetDirectory())) { return remote_path; } diff --git a/Source/cmOutputConverter.h b/Source/cmOutputConverter.h index fd887ae..745686b 100644 --- a/Source/cmOutputConverter.h +++ b/Source/cmOutputConverter.h @@ -99,6 +99,10 @@ public: }; static FortranFormat GetFortranFormat(const char* value); + static bool ContainedInDirectory(std::string const& local_path, + std::string const& remote_path, + cmState::Directory directory); + /** * Convert the given remote path to a relative path with respect to * the given local path. Both paths must use forward slashes and not |