Selaa lähdekoodia

BUG: ABSOLUTE option should evaluate relative paths with respect to CMAKE_CURRENT_SOURCE_DIR. This addresses bug#2797.

Brad King 20 vuotta sitten
vanhempi
sitoutus
0dbe4edcfc
1 muutettua tiedostoa jossa 14 lisäystä ja 0 poistoa
  1. 14 0
      Source/cmGetFilenameComponentCommand.cxx

+ 14 - 0
Source/cmGetFilenameComponentCommand.cxx

@@ -75,6 +75,20 @@ bool cmGetFilenameComponentCommand::InitialPass(std::vector<std::string> const&
     }
   else if (args[2] == "ABSOLUTE")
     {
+    // If the path given is relative evaluate it relative to the
+    // current source directory.
+    if(!cmSystemTools::FileIsFullPath(filename.c_str()))
+      {
+      std::string fname = m_Makefile->GetCurrentDirectory();
+      if(!fname.empty())
+        {
+        fname += "/";
+        fname += filename;
+        filename = fname;
+        }
+      }
+
+    // Collapse the path to its simplest form.
     result = cmSystemTools::CollapseFullPath(filename.c_str());
     }
   else