mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-01 03:29:18 -05:00
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
This commit is contained in:
@@ -63,15 +63,6 @@ bool rootIsPrefix(const std::string& root,
|
|||||||
return true;
|
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(
|
std::vector<std::string> prepareFilesPathsForTree(
|
||||||
const std::vector<std::string>& filesPaths,
|
const std::vector<std::string>& filesPaths,
|
||||||
const std::string& currentSourceDir)
|
const std::string& currentSourceDir)
|
||||||
@@ -80,9 +71,11 @@ std::vector<std::string> prepareFilesPathsForTree(
|
|||||||
prepared.reserve(filesPaths.size());
|
prepared.reserve(filesPaths.size());
|
||||||
|
|
||||||
for (auto const& filePath : filesPaths) {
|
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 provided file path is actually not a file, silently ignore it.
|
||||||
if (cmSystemTools::FileExists(filePath, /*isFile=*/true)) {
|
if (cmSystemTools::FileExists(fullPath, /*isFile=*/true)) {
|
||||||
prepared.push_back(prepareFilePathForTree(filePath, currentSourceDir));
|
prepared.emplace_back(std::move(fullPath));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user