Procházet zdrojové kódy

CPack STGZ put execute permission on all packages files (component case)

Eric NOULARD před 13 roky
rodič
revize
4576f40ee0
1 změnil soubory, kde provedl 18 přidání a 7 odebrání
  1. 18 7
      Source/CPack/cmCPackSTGZGenerator.cxx

+ 18 - 7
Source/CPack/cmCPackSTGZGenerator.cxx

@@ -54,21 +54,32 @@ int cmCPackSTGZGenerator::InitializeInternal()
 //----------------------------------------------------------------------
 int cmCPackSTGZGenerator::PackageFiles()
 {
+ bool retval = true;
   if ( !this->Superclass::PackageFiles() )
     {
     return 0;
     }
-  return cmSystemTools::SetPermissions(packageFileNames[0].c_str(),
+
+  /* TGZ generator (our Superclass) may
+   * have generated several packages (component packaging)
+   * so we must iterate over generated packages.
+   */
+  for (std::vector<std::string>::iterator it=packageFileNames.begin();
+       it != packageFileNames.end(); ++it)
+  {
+    retval &= cmSystemTools::SetPermissions((*it).c_str(),
 #if defined( _MSC_VER ) || defined( __MINGW32__ )
-    S_IREAD | S_IWRITE | S_IEXEC
+      S_IREAD | S_IWRITE | S_IEXEC
 #elif defined( __BORLANDC__ )
-    S_IRUSR | S_IWUSR | S_IXUSR
+      S_IRUSR | S_IWUSR | S_IXUSR
 #else
-    S_IRUSR | S_IWUSR | S_IXUSR |
-    S_IRGRP | S_IWGRP | S_IXGRP |
-    S_IROTH | S_IWOTH | S_IXOTH
+      S_IRUSR | S_IWUSR | S_IXUSR |
+      S_IRGRP | S_IWGRP | S_IXGRP |
+      S_IROTH | S_IWOTH | S_IXOTH
 #endif
-  );
+    );
+  }
+  return retval;
 }
 
 //----------------------------------------------------------------------