瀏覽代碼

BUG: Fix get_filename_component ABSOLUTE mode

This teaches the command to recognize full windows paths when built on
UNIX.  CollapseFullPath knows when the input path is relative better
than FileIsFullPath because the latter is only meant for paths from the
host platform.
Brad King 16 年之前
父節點
當前提交
f10c258167
共有 1 個文件被更改,包括 3 次插入13 次删除
  1. 3 13
      Source/cmGetFilenameComponentCommand.cxx

+ 3 - 13
Source/cmGetFilenameComponentCommand.cxx

@@ -78,21 +78,11 @@ bool cmGetFilenameComponentCommand
   else if (args[2] == "ABSOLUTE" ||
            args[2] == "REALPATH")
     {
+    // Collapse the path to its simplest form.
     // If the path given is relative evaluate it relative to the
     // current source directory.
-    if(!cmSystemTools::FileIsFullPath(filename.c_str()))
-      {
-      std::string fname = this->Makefile->GetCurrentDirectory();
-      if(!fname.empty())
-        {
-        fname += "/";
-        fname += filename;
-        filename = fname;
-        }
-      }
-
-    // Collapse the path to its simplest form.
-    result = cmSystemTools::CollapseFullPath(filename.c_str());
+    result = cmSystemTools::CollapseFullPath(
+      filename.c_str(), this->Makefile->GetCurrentDirectory());
     if(args[2] == "REALPATH")
       {
       // Resolve symlinks if possible