From ce180cf810841ccc813ba7becc8043dd426fc966 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 25 Mar 2019 14:24:41 -0400 Subject: 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 --- Source/kwsys/SystemTools.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx index cbdfe11..d8904fe 100644 --- a/Source/kwsys/SystemTools.cxx +++ b/Source/kwsys/SystemTools.cxx @@ -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 -- cgit v0.12