diff options
author | Brad King <brad.king@kitware.com> | 2019-07-30 15:26:02 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-07-30 15:29:58 (GMT) |
commit | 93af8a2583e2ec8d067a2e8eda544dfc5d3d3b4f (patch) | |
tree | e6c0d0494fe973276f0a22deb6160afa60083376 | |
parent | f43a7d76c737c5bb9b903a2b1be5186c081ec21e (diff) | |
download | CMake-93af8a2583e2ec8d067a2e8eda544dfc5d3d3b4f.zip CMake-93af8a2583e2ec8d067a2e8eda544dfc5d3d3b4f.tar.gz CMake-93af8a2583e2ec8d067a2e8eda544dfc5d3d3b4f.tar.bz2 |
source_group: Fix regression in relative FILES
Fix the check added in commit 8d93815d20 (source_group command ensures
that FILES arguments are actually files, 2019-04-25, v3.15.0-rc1~195^2)
to convert to an absolute path before checking for existence.
Also simplify the conversion to an absolute path.
Fixes: #19454
-rw-r--r-- | Source/cmSourceGroupCommand.cxx | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/Source/cmSourceGroupCommand.cxx b/Source/cmSourceGroupCommand.cxx index 5cdacaa..04b4d72 100644 --- a/Source/cmSourceGroupCommand.cxx +++ b/Source/cmSourceGroupCommand.cxx @@ -63,15 +63,6 @@ bool rootIsPrefix(const std::string& root, return true; } -std::string prepareFilePathForTree(const std::string& path, - const std::string& currentSourceDir) -{ - if (!cmSystemTools::FileIsFullPath(path)) { - return cmSystemTools::CollapseFullPath(currentSourceDir + "/" + path); - } - return cmSystemTools::CollapseFullPath(path); -} - std::vector<std::string> prepareFilesPathsForTree( const std::vector<std::string>& filesPaths, const std::string& currentSourceDir) @@ -80,9 +71,11 @@ std::vector<std::string> prepareFilesPathsForTree( prepared.reserve(filesPaths.size()); for (auto const& filePath : filesPaths) { + std::string fullPath = + cmSystemTools::CollapseFullPath(filePath, currentSourceDir); // If provided file path is actually not a file, silently ignore it. - if (cmSystemTools::FileExists(filePath, /*isFile=*/true)) { - prepared.push_back(prepareFilePathForTree(filePath, currentSourceDir)); + if (cmSystemTools::FileExists(fullPath, /*isFile=*/true)) { + prepared.emplace_back(std::move(fullPath)); } } |