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
else if (args[1] == "remove" && args.size() > 2)
{
bool force = false;
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")
{
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()))
{
return 1;
}
cmSystemTools::RemoveFile(args[cc].c_str());
}
}
return 0;