BUG: Overwrite the symlink if it already exists. Close Bug #4418 - cmake -create-symlink doesn't overwrite existing symlinks

This commit is contained in:
Andy Cedilnik 2007-02-15 15:07:16 -05:00
parent 7c72e03c25
commit ffc0b5e4de
1 changed files with 16 additions and 0 deletions

View File

@ -1072,6 +1072,22 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
// supporting them.
else if (args[1] == "create_symlink" && args.size() == 4)
{
const char* destinationFileName = args[3].c_str();
if ( cmSystemTools::FileExists(destinationFileName) )
{
if ( cmSystemTools::FileIsSymlink(destinationFileName) )
{
if ( !cmSystemTools::RemoveFile(destinationFileName) ||
cmSystemTools::FileExists(destinationFileName) )
{
return 0;
}
}
else
{
return 0;
}
}
return cmSystemTools::CreateSymlink(args[2].c_str(),
args[3].c_str())? 0:1;
}