blob: 354d849662e91fd6bb9cd24bbeeed5f0b1b199ef [file] [log] [blame]
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCPackIFWCommon_h
#define cmCPackIFWCommon_h
#include "cmConfigure.h" // IWYU pragma: keep
#include <map>
#include <string>
class cmCPackIFWGenerator;
class cmXMLWriter;
/** \class cmCPackIFWCommon
* \brief A base class for CPack IFW generator implementation subclasses
*/
class cmCPackIFWCommon
{
public:
// Constructor
/**
* Construct Part
*/
cmCPackIFWCommon();
public:
// Internal implementation
const char* GetOption(const std::string& op) const;
bool IsOn(const std::string& op) const;
bool IsSetToOff(const std::string& op) const;
bool IsSetToEmpty(const std::string& op) const;
/**
* Compare \a version with QtIFW framework version
*/
bool IsVersionLess(const char* version);
/**
* Compare \a version with QtIFW framework version
*/
bool IsVersionGreater(const char* version);
/**
* Compare \a version with QtIFW framework version
*/
bool IsVersionEqual(const char* version);
/** Expand the list argument containing the map of the key-value pairs.
* If the number of elements is odd, then the first value is used as the
* default value with an empty key.
* Any values with the same keys will be permanently overwritten.
*/
static void ExpandListArgument(const std::string& arg,
std::map<std::string, std::string>& argsOut);
/** Expand the list argument containing the multimap of the key-value pairs.
* If the number of elements is odd, then the first value is used as the
* default value with an empty key.
*/
static void ExpandListArgument(
const std::string& arg, std::multimap<std::string, std::string>& argsOut);
cmCPackIFWGenerator* Generator;
protected:
void WriteGeneratedByToStrim(cmXMLWriter& xout);
};
#define cmCPackIFWLogger(logType, msg) \
do { \
std::ostringstream cmCPackLog_msg; \
cmCPackLog_msg << msg; \
if (Generator) { \
Generator->Logger->Log(cmCPackLog::LOG_##logType, __FILE__, __LINE__, \
cmCPackLog_msg.str().c_str()); \
} \
} while (false)
#endif // cmCPackIFWCommon_h