|
|
@@ -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
|