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:
Brad King 2013-11-01 16:52:22 -04:00
parent 0d8552c459
commit 4c383b52d0
1 changed files with 8 additions and 0 deletions

View File

@ -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(): ",