You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.5 KiB
82 lines
2.5 KiB
/* 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
|