BUG: CopyFileIfDifferent should return success if the files did not differ or if the copy succeeded. It should return failure only if the files were different and the copy failed.
This commit is contained in:
parent
f9a3f74d87
commit
49bd89fe31
|
@ -660,15 +660,26 @@ int cmake::CMakeCommand(std::vector<std::string>& args)
|
|||
// Copy file
|
||||
if (args[1] == "copy" && args.size() == 4)
|
||||
{
|
||||
cmSystemTools::cmCopyFile(args[2].c_str(), args[3].c_str());
|
||||
return cmSystemTools::GetErrorOccuredFlag();
|
||||
if(!cmSystemTools::cmCopyFile(args[2].c_str(), args[3].c_str()))
|
||||
{
|
||||
std::cerr << "Error copying file \"" << args[2].c_str()
|
||||
<< "\" to \"" << args[3].c_str() << "\".\n";
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Copy file if different.
|
||||
if (args[1] == "copy_if_different" && args.size() == 4)
|
||||
{
|
||||
cmSystemTools::CopyFileIfDifferent(args[2].c_str(), args[3].c_str());
|
||||
return cmSystemTools::GetErrorOccuredFlag();
|
||||
if(!cmSystemTools::CopyFileIfDifferent(args[2].c_str(), args[3].c_str()))
|
||||
{
|
||||
std::cerr << "Error copying file (if different) from \""
|
||||
<< args[2].c_str() << "\" to \"" << args[3].c_str()
|
||||
<< "\".\n";
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Echo string
|
||||
|
|
|
@ -816,14 +816,13 @@ kwsys_stl::string SystemTools::ConvertToWindowsOutputPath(const char* path)
|
|||
}
|
||||
|
||||
bool SystemTools::CopyFileIfDifferent(const char* source,
|
||||
const char* destination)
|
||||
const char* destination)
|
||||
{
|
||||
if(SystemTools::FilesDiffer(source, destination))
|
||||
{
|
||||
SystemTools::CopyFileAlways(source, destination);
|
||||
return true;
|
||||
return SystemTools::CopyFileAlways(source, destination);
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue