summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2003-12-29 19:55:43 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2003-12-29 19:55:43 (GMT)
commitb753a6794b6b96acb2499a4a9e67cb8bc16afdc6 (patch)
tree50b89d4d291b25e6850068f164e2696c74fec881 /Source/cmLocalGenerator.cxx
parent46aaf2dae8440f8dcd5fada61368b5b29c263085 (diff)
downloadCMake-b753a6794b6b96acb2499a4a9e67cb8bc16afdc6.zip
CMake-b753a6794b6b96acb2499a4a9e67cb8bc16afdc6.tar.gz
CMake-b753a6794b6b96acb2499a4a9e67cb8bc16afdc6.tar.bz2
BUG: use ./ infront of the current directory
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r--Source/cmLocalGenerator.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index df90dea..32f0952 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -65,12 +65,15 @@ void cmLocalGenerator::ConfigureFinalPass()
std::string cmLocalGenerator::ConvertToRelativeOutputPath(const char* p)
{
+ // do not use relative paths for network build trees
+ // the network paths do not work
const char* outputDirectory = m_Makefile->GetHomeOutputDirectory();
if ( outputDirectory && *outputDirectory && *(outputDirectory+1) &&
outputDirectory[0] == '/' && outputDirectory[1] == '/' )
{
return cmSystemTools::ConvertToOutputPath(p);
}
+
// The first time this is called, initialize all
// the path ivars that are used. This can not
// be moved to the constructor because all the paths are not set yet.
@@ -103,6 +106,13 @@ std::string cmLocalGenerator::ConvertToRelativeOutputPath(const char* p)
// Do the work of converting to a relative path
std::string pathIn = p;
+ bool ispath = false;
+ if(pathIn.find('/') == pathIn.npos)
+ {
+ return pathIn;
+ }
+
+
std::string ret = pathIn;
if(m_CurrentOutputDirectory.size() <= ret.size())
{
@@ -170,6 +180,13 @@ std::string cmLocalGenerator::ConvertToRelativeOutputPath(const char* p)
{
ret = relpath;
}
+ if(ret.size() && ret[0] != '/' && ret[0] != '.')
+ {
+ if(ret.size() > 1 && ret[1] != ':')
+ {
+ ret = std::string("./") + ret;
+ }
+ }
ret = cmSystemTools::ConvertToOutputPath(ret.c_str());
return ret;
}