Просмотр исходного кода

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.
Brad King 17 лет назад
Родитель
Сommit
3498a8c668
1 измененных файлов с 6 добавлено и 16 удалено
  1. 6 16
      Source/cmLocalGenerator.cxx

+ 6 - 16
Source/cmLocalGenerator.cxx

@@ -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;
-      }
+    cmSystemTools::SplitPath(local, components);
+    std::string result = this->ConvertToRelativePath(components, remotePath);
     return this->ConvertToOutputFormat(result.c_str(), output);
     }
   else