cmake: Avoid '-E tar' failure to extract symlinks on Windows (#13251)
If a symlink fails to extract and the host system is Windows then report a warning and skip the entry instead of failing. This will allow archives containing symbolic links to be extracted on Windows with somewhat gracefully degraded behavior.
This commit is contained in:
parent
0d8552c459
commit
4c383b52d0
|
@ -1660,6 +1660,14 @@ bool extract_tar(const char* outFileName, bool verbose,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef _WIN32
|
||||||
|
else if(const char* linktext = archive_entry_symlink(entry))
|
||||||
|
{
|
||||||
|
std::cerr << "cmake -E tar: warning: skipping symbolic link \""
|
||||||
|
<< archive_entry_pathname(entry) << "\" -> \""
|
||||||
|
<< linktext << "\"." << std::endl;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cmSystemTools::Error("Problem with archive_write_header(): ",
|
cmSystemTools::Error("Problem with archive_write_header(): ",
|
||||||
|
|
Loading…
Reference in New Issue