BUG: Overwrite the symlink if it already exists. Close Bug #4418 - cmake -create-symlink doesn't overwrite existing symlinks
This commit is contained in:
parent
7c72e03c25
commit
ffc0b5e4de
|
@ -1072,6 +1072,22 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
|
||||||
// supporting them.
|
// supporting them.
|
||||||
else if (args[1] == "create_symlink" && args.size() == 4)
|
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(),
|
return cmSystemTools::CreateSymlink(args[2].c_str(),
|
||||||
args[3].c_str())? 0:1;
|
args[3].c_str())? 0:1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue