diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2006-05-11 14:33:21 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2006-05-11 14:33:21 (GMT) |
commit | 0c4f1e3f80a2faafc2f22576f5e8fdf5f6033564 (patch) | |
tree | 4e20d4b94aa8502bd7f64d809995874757af8467 /Source | |
parent | e2c41d8436f8c82bd269ee831b23b98aafd9bb5a (diff) | |
download | CMake-0c4f1e3f80a2faafc2f22576f5e8fdf5f6033564.zip CMake-0c4f1e3f80a2faafc2f22576f5e8fdf5f6033564.tar.gz CMake-0c4f1e3f80a2faafc2f22576f5e8fdf5f6033564.tar.bz2 |
ENH: merge changes from main tree
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CPack/cmCPackZIPGenerator.cxx | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Source/CPack/cmCPackZIPGenerator.cxx b/Source/CPack/cmCPackZIPGenerator.cxx index d8ad47f..3d46f80 100644 --- a/Source/CPack/cmCPackZIPGenerator.cxx +++ b/Source/CPack/cmCPackZIPGenerator.cxx @@ -90,13 +90,16 @@ int cmCPackZIPGenerator::InitializeInternal() int cmCPackZIPGenerator::CompressFiles(const char* outFileName, const char* toplevel, const std::vector<std::string>& files) { + std::string tempFileName; cmOStringStream dmgCmd; switch ( this->ZipStyle ) { case cmCPackZIPGenerator::StyleWinZip: + tempFileName = toplevel; + tempFileName += "/winZip.filelist"; dmgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM") << "\" -P \"" << outFileName - << "\""; + << "\" @\"" << tempFileName.c_str() << "\""; break; case cmCPackZIPGenerator::StyleUnixZip: dmgCmd << "\"" << this->GetOption("CPACK_INSTALLER_PROGRAM") @@ -108,12 +111,26 @@ int cmCPackZIPGenerator::CompressFiles(const char* outFileName, << std::endl); return 0; } + if(tempFileName.size()) + { + cmGeneratedFileStream out(tempFileName.c_str()); + std::vector<std::string>::const_iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt ) + { + out << "\"" + << cmSystemTools::RelativePath(toplevel, fileIt->c_str()) + << "\"" << std::endl; + } + } + else + { std::vector<std::string>::const_iterator fileIt; for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt ) { dmgCmd << " \"" << cmSystemTools::RelativePath(toplevel, fileIt->c_str()) << "\""; + } } std::string output; int retVal = -1; |