瀏覽代碼

CPack fix CPackDeb crash when CPackDeb.cmake ends with a FATAL_ERROR

Eric NOULARD 14 年之前
父節點
當前提交
21007f8989
共有 2 個文件被更改,包括 14 次插入5 次删除
  1. 9 4
      Source/CPack/cmCPackDebGenerator.cxx
  2. 5 1
      Source/CPack/cmCPackGenerator.cxx

+ 9 - 4
Source/CPack/cmCPackDebGenerator.cxx

@@ -96,6 +96,7 @@ int cmCPackDebGenerator::PackageComponents(bool ignoreGroup)
         cmCPackLogger(cmCPackLog::LOG_ERROR,
             "Error while execution CPackDeb.cmake" << std::endl);
         retval = 0;
+        return retval;
         }
 
       cmsys::Glob gl;
@@ -105,7 +106,7 @@ int cmCPackDebGenerator::PackageComponents(bool ignoreGroup)
       if ( !gl.FindFiles(findExpr) )
         {
         cmCPackLogger(cmCPackLog::LOG_ERROR,
-          "Cannot find any files in the installed directory" << std::endl);
+            "Cannot find any files in the installed directory" << std::endl);
         return 0;
         }
       packageFiles = gl.GetFiles();
@@ -152,8 +153,8 @@ int cmCPackDebGenerator::PackageComponents(bool ignoreGroup)
         cmCPackLogger(cmCPackLog::LOG_ERROR,
                       "Error while execution CPackDeb.cmake" << std::endl);
         retval = 0;
+        return retval;
         }
-
       cmsys::Glob gl;
       std::string findExpr(this->GetOption("WDIR"));
       findExpr += "/*";
@@ -230,6 +231,7 @@ int cmCPackDebGenerator::PackageComponentsAllInOne(bool allComponent)
     cmCPackLogger(cmCPackLog::LOG_ERROR,
         "Error while execution CPackDeb.cmake" << std::endl);
     retval = 0;
+    return retval;
     }
 
   cmsys::Glob gl;
@@ -288,8 +290,11 @@ int cmCPackDebGenerator::PackageFiles()
                     "Error while execution CPackDeb.cmake" << std::endl);
       retval = 0;
       }
-    packageFiles = files;
-    return createDeb();
+    else
+      {
+      packageFiles = files;
+      return createDeb();
+      }
     }
   return retval;
 }

+ 5 - 1
Source/CPack/cmCPackGenerator.cxx

@@ -885,8 +885,12 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
 //----------------------------------------------------------------------
 bool cmCPackGenerator::ReadListFile(const char* moduleName)
 {
+  bool retval;
   std::string fullPath = this->MakefileMap->GetModulesFile(moduleName);
-  return this->MakefileMap->ReadListFile(0, fullPath.c_str());
+  retval = this->MakefileMap->ReadListFile(0, fullPath.c_str());
+  // include FATAL_ERROR and ERROR in the return status
+  retval = retval && (! cmSystemTools::GetErrorOccuredFlag());
+  return retval;
 }
 
 //----------------------------------------------------------------------