diff options
author | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-01-02 04:21:05 (GMT) |
---|---|---|
committer | Andy Cedilnik <andy.cedilnik@kitware.com> | 2006-01-02 04:21:05 (GMT) |
commit | d0329919dacdbbfd518340340c0918b0a95e15a5 (patch) | |
tree | bbf4091d46d3e847fb76a0432d612d089e637920 /Source/CPack/cmCPackTGZGenerator.h | |
parent | 74680f1bf427bde968a2836baf1932760b7591cb (diff) | |
download | CMake-d0329919dacdbbfd518340340c0918b0a95e15a5.zip CMake-d0329919dacdbbfd518340340c0918b0a95e15a5.tar.gz CMake-d0329919dacdbbfd518340340c0918b0a95e15a5.tar.bz2 |
ENH: Merge from the cpack branch
Diffstat (limited to 'Source/CPack/cmCPackTGZGenerator.h')
-rw-r--r-- | Source/CPack/cmCPackTGZGenerator.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackTGZGenerator.h b/Source/CPack/cmCPackTGZGenerator.h new file mode 100644 index 0000000..1dd8608 --- /dev/null +++ b/Source/CPack/cmCPackTGZGenerator.h @@ -0,0 +1,64 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef cmCPackTGZGenerator_h +#define cmCPackTGZGenerator_h + + +#include "cmCPackGenericGenerator.h" +#include "CPack/cmCPackConfigure.h" // for ssize_t + +/** \class cmCPackTGZGenerator + * \brief A generator for TGZ files + * + * http://people.freebsd.org/~kientzle/libarchive/ + */ +class cmCPackTGZGenerator : public cmCPackGenericGenerator +{ +public: + cmCPackTypeMacro(cmCPackTGZGenerator, cmCPackGenericGenerator); + + /** + * Do the actual processing. Subclass has to override it. + * Return < 0 if error. + */ + virtual int ProcessGenerator(); + + /** + * Initialize generator + */ + virtual int Initialize(const char* name); + + /** + * Construct generator + */ + cmCPackTGZGenerator(); + virtual ~cmCPackTGZGenerator(); + +protected: + static int TGZ_Open(struct archive *a, void *client_data); + static ssize_t TGZ_Write(struct archive *a, void *client_data, void *buff, size_t n); + static int TGZ_Close(struct archive *a, void *client_data); + + int CompressFiles(const char* outFileName, const char* toplevel, + const std::vector<std::string>& files); + virtual const char* GetOutputExtension() { return "tar.gz"; } +}; + +#endif + + |