Browse Source

BUG: Bail out on generator initialization failure

Andy Cedilnik 19 years ago
parent
commit
b0d7f6999b
1 changed files with 32 additions and 29 deletions
  1. 32 29
      Source/CPack/cpack.cxx

+ 32 - 29
Source/CPack/cpack.cxx

@@ -372,38 +372,41 @@ int main (int argc, char *argv[])
                 << std::endl);
               parsed = 0;
               }
+            if ( parsed )
+              {
 #ifdef _WIN32
-            std::string comspec = "cmw9xcom.exe";
-            cmSystemTools::SetWindows9xComspecSubstitute(comspec.c_str());
+              std::string comspec = "cmw9xcom.exe";
+              cmSystemTools::SetWindows9xComspecSubstitute(comspec.c_str());
 #endif
 
-            const char* projName = mf->GetDefinition("CPACK_PACKAGE_NAME");
-            cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, "Use generator: "
-              << cpackGenerator->GetNameOfClass() << std::endl);
-            cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, "For project: "
-              << projName << std::endl);
-
-            const char* projVersion = mf->GetDefinition("CPACK_PACKAGE_VERSION");
-            if ( !projVersion )
-              {
-              const char* projVersionMajor
-                = mf->GetDefinition("CPACK_PACKAGE_VERSION_MAJOR");
-              const char* projVersionMinor
-                = mf->GetDefinition("CPACK_PACKAGE_VERSION_MINOR");
-              const char* projVersionPatch
-                = mf->GetDefinition("CPACK_PACKAGE_VERSION_PATCH");
-              cmOStringStream ostr;
-              ostr << projVersionMajor << "." << projVersionMinor << "."
-                << projVersionPatch;
-              mf->AddDefinition("CPACK_PACKAGE_VERSION", ostr.str().c_str());
-              }
-
-            int res = cpackGenerator->ProcessGenerator();
-            if ( !res )
-              {
-              cmCPack_Log(&log, cmCPackLog::LOG_ERROR,
-                "Error when generating package: " << projName << std::endl);
-              return 1;
+              const char* projName = mf->GetDefinition("CPACK_PACKAGE_NAME");
+              cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, "Use generator: "
+                << cpackGenerator->GetNameOfClass() << std::endl);
+              cmCPack_Log(&log, cmCPackLog::LOG_VERBOSE, "For project: "
+                << projName << std::endl);
+  
+              const char* projVersion = mf->GetDefinition("CPACK_PACKAGE_VERSION");
+              if ( !projVersion )
+                {
+                const char* projVersionMajor
+                  = mf->GetDefinition("CPACK_PACKAGE_VERSION_MAJOR");
+                const char* projVersionMinor
+                  = mf->GetDefinition("CPACK_PACKAGE_VERSION_MINOR");
+                const char* projVersionPatch
+                  = mf->GetDefinition("CPACK_PACKAGE_VERSION_PATCH");
+                cmOStringStream ostr;
+                ostr << projVersionMajor << "." << projVersionMinor << "."
+                  << projVersionPatch;
+                mf->AddDefinition("CPACK_PACKAGE_VERSION", ostr.str().c_str());
+                }
+  
+              int res = cpackGenerator->ProcessGenerator();
+              if ( !res )
+                {
+                cmCPack_Log(&log, cmCPackLog::LOG_ERROR,
+                  "Error when generating package: " << projName << std::endl);
+                return 1;
+                }
               }
             }
           }