diff options
Diffstat (limited to 'Source/CPack/cmCPackDragNDropGenerator.h')
-rw-r--r-- | Source/CPack/cmCPackDragNDropGenerator.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h new file mode 100644 index 0000000..1392b21 --- /dev/null +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -0,0 +1,60 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc. + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef cmCPackDragNDropGenerator_h +#define cmCPackDragNDropGenerator_h + +#include "cmCPackGenerator.h" + +class cmGeneratedFileStream; + +/** \class cmCPackDragNDropGenerator + * \brief A generator for OSX drag-n-drop installs + */ +class cmCPackDragNDropGenerator : public cmCPackGenerator +{ +public: + cmCPackTypeMacro(cmCPackDragNDropGenerator, cmCPackGenerator); + + cmCPackDragNDropGenerator(); + virtual ~cmCPackDragNDropGenerator(); + +protected: + virtual int InitializeInternal(); + virtual const char* GetOutputExtension(); + int PackageFiles(); + bool SupportsComponentInstallation() const; + + bool CopyFile(std::ostringstream& source, std::ostringstream& target); + bool CreateEmptyFile(std::ostringstream& target, size_t size); + bool RunCommand(std::ostringstream& command, std::string* output = 0); + + std::string GetComponentInstallDirNameSuffix( + const std::string& componentName); + + int CreateDMG(const std::string& src_dir, const std::string& output_file); + + std::string InstallPrefix; + +private: + std::string slaDirectory; + bool singleLicense; + + bool WriteLicense(cmGeneratedFileStream& outputStream, int licenseNumber, + std::string licenseLanguage, std::string licenseFile, + std::string* error); + bool BreakLongLine(const std::string& line, std::vector<std::string>& lines, + std::string* error); + void EscapeQuotesAndBackslashes(std::string& line); +}; + +#endif |