浏览代码

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.
Brad King 12 年之前
父节点
当前提交
4c383b52d0
共有 1 个文件被更改,包括 8 次插入0 次删除
  1. 8 0
      Source/cmSystemTools.cxx

+ 8 - 0
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(): ",