From 4c383b52d0611c56679f96cbc99fc1d6683b5ca9 Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 1 Nov 2013 16:52:22 -0400 Subject: 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. --- Source/cmSystemTools.cxx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 34a1216..1ecda88 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1660,6 +1660,14 @@ bool extract_tar(const char* outFileName, bool verbose, 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 { cmSystemTools::Error("Problem with archive_write_header(): ", -- cgit v0.12