mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-10-07 04:02:23 +03:00
cmake: Fix '-E copy foo .' to avoid clobbering file
Backport KWSys commit 92334e7670 (SystemTools: CopyFileAlways: avoid copying file over self, 2019-03-25) to the CMake 3.14 release branch. Fixes: #19075
This commit is contained in:
1 parent
bf02d62532
commit
ce180cf810
1 file changed
+4
-4
@@ -2307,10 +2307,6 @@ static bool CloneFileContent(const std::string& source,
|
||||
bool SystemTools::CopyFileAlways(const std::string& source,
|
||||
const std::string& destination)
|
||||
{
|
||||
// If files are the same do not copy
|
||||
if (SystemTools::SameFile(source, destination)) {
|
||||
return true;
|
||||
}
|
||||
mode_t perm = 0;
|
||||
bool perms = SystemTools::GetPermissions(source, perm);
|
||||
std::string real_destination = destination;
|
||||
@@ -2331,6 +2327,10 @@ bool SystemTools::CopyFileAlways(const std::string& source,
|
||||
} else {
|
||||
destination_dir = SystemTools::GetFilenamePath(destination);
|
||||
}
|
||||
// If files are the same do not copy
|
||||
if (SystemTools::SameFile(source, real_destination)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Create destination directory
|
||||
|
||||
|
||||
Reference in new issue
Block a user