ENH: Simplify reverse cmLocalGenerator::Convert

It does not make sense to call the reverse Convert signature (for remote
paths corresponding to CMake-managed directories) with NONE or FULL
since they have no path.  Patch from Modestas Vainius.  See issue #7779.
This commit is contained in:
Brad King 2009-02-26 08:49:10 -05:00
parent 338d37ee5a
commit 3498a8c668
1 changed files with 6 additions and 16 deletions

View File

@ -2200,25 +2200,15 @@ std::string cmLocalGenerator::Convert(RelativeRoot remote,
bool optional)
{
const char* remotePath = this->GetRelativeRootPath(remote);
// The relative root must have a path (i.e. not FULL or NONE)
assert(remotePath != 0);
if(local && (!optional || this->UseRelativePaths))
{
std::vector<std::string> components;
std::string result;
switch(remote)
{
case HOME:
case HOME_OUTPUT:
case START:
case START_OUTPUT:
cmSystemTools::SplitPath(local, components);
result = this->ConvertToRelativePath(components, remotePath);
break;
case FULL:
result = remotePath;
break;
case NONE:
break;
}
std::string result = this->ConvertToRelativePath(components, remotePath);
return this->ConvertToOutputFormat(result.c_str(), output);
}
else