diff --git a/Source/cmGeneratedFileStream.cxx b/Source/cmGeneratedFileStream.cxx index d0f2cc0b4..63a0384aa 100644 --- a/Source/cmGeneratedFileStream.cxx +++ b/Source/cmGeneratedFileStream.cxx @@ -107,13 +107,20 @@ void cmGeneratedFileStream::SetCompression(bool compression) m_Compress = compression; } +//---------------------------------------------------------------------------- +void cmGeneratedFileStream::SetCompressionExtraExtension(bool ext) +{ + m_CompressExtraExtension = ext; +} + //---------------------------------------------------------------------------- cmGeneratedFileStreamBase::cmGeneratedFileStreamBase(): m_Name(), m_TempName(), m_CopyIfDifferent(false), m_Okay(false), - m_Compress(false) + m_Compress(false), + m_CompressExtraExtension(true) { } @@ -123,7 +130,8 @@ cmGeneratedFileStreamBase::cmGeneratedFileStreamBase(const char* name): m_TempName(), m_CopyIfDifferent(false), m_Okay(false), - m_Compress(false) + m_Compress(false), + m_CompressExtraExtension(true) { this->Open(name); } @@ -155,7 +163,7 @@ void cmGeneratedFileStreamBase::Open(const char* name) void cmGeneratedFileStreamBase::Close() { std::string resname = m_Name; - if ( m_Compress ) + if ( m_CompressExtraExtension ) { resname += ".gz"; } diff --git a/Source/cmGeneratedFileStream.h b/Source/cmGeneratedFileStream.h index cb81d1d14..6d0637c0b 100644 --- a/Source/cmGeneratedFileStream.h +++ b/Source/cmGeneratedFileStream.h @@ -66,6 +66,9 @@ protected: // Whether the destionation file is compressed bool m_Compress; + + // Whether the destionation file is compressed + bool m_CompressExtraExtension; }; /** \class cmGeneratedFileStream @@ -131,6 +134,11 @@ public: */ void SetCompression(bool compression); + /** + * Set whether compression has extra extension + */ + void SetCompressionExtraExtension(bool ext); + /** * Set name of the file that will hold the actual output. This method allows * the output file to be changed during the use of cmGeneratedFileStream.