diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2003-12-29 19:55:43 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2003-12-29 19:55:43 (GMT) |
commit | b753a6794b6b96acb2499a4a9e67cb8bc16afdc6 (patch) | |
tree | 50b89d4d291b25e6850068f164e2696c74fec881 /Source/cmLocalGenerator.cxx | |
parent | 46aaf2dae8440f8dcd5fada61368b5b29c263085 (diff) | |
download | CMake-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.cxx | 17 |
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; } |