diff options
author | biao716.wang <biao716.wang@samsung.com> | 2020-03-19 01:04:30 +0900 |
---|---|---|
committer | biao716.wang <biao716.wang@samsung.com> | 2020-03-19 01:04:30 +0900 |
commit | 1d6613f4446f69f63beddf2d97c201154fb35e33 (patch) | |
tree | f32eae75900a0df14ab8fa1e2bd436af159ef91d /Source/cmFilePathChecksum.cxx | |
parent | aabcd8e66e3268a232efe2e416635d5b6bf84ad5 (diff) | |
download | cmake-1d6613f4446f69f63beddf2d97c201154fb35e33.tar.gz cmake-1d6613f4446f69f63beddf2d97c201154fb35e33.tar.bz2 cmake-1d6613f4446f69f63beddf2d97c201154fb35e33.zip |
Imported Upstream version 3.16.4upstream/3.16.4
Change-Id: Ic5262ea6c0872b353ea2dc35fe1e944063ae8409
Signed-off-by: biao716.wang <biao716.wang@samsung.com>
Diffstat (limited to 'Source/cmFilePathChecksum.cxx')
-rw-r--r-- | Source/cmFilePathChecksum.cxx | 59 |
1 files changed, 28 insertions, 31 deletions
diff --git a/Source/cmFilePathChecksum.cxx b/Source/cmFilePathChecksum.cxx index 62f52e590..bb3f610d1 100644 --- a/Source/cmFilePathChecksum.cxx +++ b/Source/cmFilePathChecksum.cxx @@ -2,21 +2,19 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFilePathChecksum.h" +#include <vector> + #include "cmBase32.h" #include "cmCryptoHash.h" #include "cmMakefile.h" #include "cmSystemTools.h" -#include <vector> - -cmFilePathChecksum::cmFilePathChecksum() -{ -} +cmFilePathChecksum::cmFilePathChecksum() = default; -cmFilePathChecksum::cmFilePathChecksum(const std::string& currentSrcDir, - const std::string& currentBinDir, - const std::string& projectSrcDir, - const std::string& projectBinDir) +cmFilePathChecksum::cmFilePathChecksum(std::string const& currentSrcDir, + std::string const& currentBinDir, + std::string const& projectSrcDir, + std::string const& projectBinDir) { setupParentDirs(currentSrcDir, currentBinDir, projectSrcDir, projectBinDir); } @@ -29,36 +27,35 @@ cmFilePathChecksum::cmFilePathChecksum(cmMakefile* makefile) makefile->GetHomeOutputDirectory()); } -void cmFilePathChecksum::setupParentDirs(const std::string& currentSrcDir, - const std::string& currentBinDir, - const std::string& projectSrcDir, - const std::string& projectBinDir) +void cmFilePathChecksum::setupParentDirs(std::string const& currentSrcDir, + std::string const& currentBinDir, + std::string const& projectSrcDir, + std::string const& projectBinDir) { - parentDirs[0].first = cmsys::SystemTools::GetRealPath(currentSrcDir); - parentDirs[1].first = cmsys::SystemTools::GetRealPath(currentBinDir); - parentDirs[2].first = cmsys::SystemTools::GetRealPath(projectSrcDir); - parentDirs[3].first = cmsys::SystemTools::GetRealPath(projectBinDir); + this->parentDirs[0].first = cmSystemTools::GetRealPath(currentSrcDir); + this->parentDirs[1].first = cmSystemTools::GetRealPath(currentBinDir); + this->parentDirs[2].first = cmSystemTools::GetRealPath(projectSrcDir); + this->parentDirs[3].first = cmSystemTools::GetRealPath(projectBinDir); - parentDirs[0].second = "CurrentSource"; - parentDirs[1].second = "CurrentBinary"; - parentDirs[2].second = "ProjectSource"; - parentDirs[3].second = "ProjectBinary"; + this->parentDirs[0].second = "CurrentSource"; + this->parentDirs[1].second = "CurrentBinary"; + this->parentDirs[2].second = "ProjectSource"; + this->parentDirs[3].second = "ProjectBinary"; } -std::string cmFilePathChecksum::get(const std::string& filePath) const +std::string cmFilePathChecksum::get(std::string const& filePath) const { std::string relPath; std::string relSeed; { - const std::string fileReal = cmsys::SystemTools::GetRealPath(filePath); + std::string const fileReal = cmSystemTools::GetRealPath(filePath); std::string parentDir; // Find closest project parent directory - for (size_t ii = 0; ii != numParentDirs; ++ii) { - const std::string& pDir = parentDirs[ii].first; - if (!pDir.empty() && - cmsys::SystemTools::IsSubDirectory(fileReal, pDir)) { - relSeed = parentDirs[ii].second; - parentDir = pDir; + for (auto const& pDir : this->parentDirs) { + if (!pDir.first.empty() && + cmsys::SystemTools::IsSubDirectory(fileReal, pDir.first)) { + parentDir = pDir.first; + relSeed = pDir.second; break; } } @@ -77,11 +74,11 @@ std::string cmFilePathChecksum::get(const std::string& filePath) const cmCryptoHash(cmCryptoHash::AlgoSHA256).ByteHashString(relSeed + relPath); // Convert binary checksum to string - return cmBase32Encoder().encodeString(&hashBytes[0], hashBytes.size(), + return cmBase32Encoder().encodeString(hashBytes.data(), hashBytes.size(), false); } -std::string cmFilePathChecksum::getPart(const std::string& filePath, +std::string cmFilePathChecksum::getPart(std::string const& filePath, size_t length) const { return get(filePath).substr(0, length); |