BUG: Fixed cmake -E remove return code.

This commit is contained in:
Brad King 2006-05-30 11:15:27 -04:00
parent 1d93480780
commit d9e060e062
1 changed files with 11 additions and 4 deletions

View File

@ -899,15 +899,22 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
// Remove file // Remove file
else if (args[1] == "remove" && args.size() > 2) else if (args[1] == "remove" && args.size() > 2)
{ {
bool force = false;
for (std::string::size_type cc = 2; cc < args.size(); cc ++) for (std::string::size_type cc = 2; cc < args.size(); cc ++)
{ {
if(args[cc] != "-f") if(args[cc] == "\\-f" || args[cc] == "-f")
{ {
if(args[cc] == "\\-f") force = true;
}
else
{
// Complain if the file could not be removed, still exists,
// and the -f option was not given.
if(!cmSystemTools::RemoveFile(args[cc].c_str()) && !force &&
cmSystemTools::FileExists(args[cc].c_str()))
{ {
args[cc] = "-f"; return 1;
} }
cmSystemTools::RemoveFile(args[cc].c_str());
} }
} }
return 0; return 0;