| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmQtAutoGen_h
- #define cmQtAutoGen_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <string>
- #include <vector>
- /** \class cmQtAutoGen
- * \brief Common base class for QtAutoGen classes
- */
- class cmQtAutoGen
- {
- public:
- /// @brief Nested lists separator
- static std::string const ListSep;
- /// @brief Maximum number of parallel threads/processes in a generator
- static unsigned int const ParallelMax;
- /// @brief AutoGen generator type
- enum class GeneratorT
- {
- GEN, // General
- MOC,
- UIC,
- RCC
- };
- /// @brief Integer version
- struct IntegerVersion
- {
- unsigned int Major = 0;
- unsigned int Minor = 0;
- IntegerVersion() = default;
- IntegerVersion(unsigned int major, unsigned int minor)
- : Major(major)
- , Minor(minor)
- {
- }
- bool operator>(IntegerVersion const version)
- {
- return (this->Major > version.Major) ||
- ((this->Major == version.Major) && (this->Minor > version.Minor));
- }
- bool operator>=(IntegerVersion const version)
- {
- return (this->Major > version.Major) ||
- ((this->Major == version.Major) && (this->Minor >= version.Minor));
- }
- };
- public:
- /// @brief Returns the generator name
- static std::string const& GeneratorName(GeneratorT genType);
- /// @brief Returns the generator name in upper case
- static std::string GeneratorNameUpper(GeneratorT genType);
- /// @brief Returns a string with the requested tool names
- static std::string Tools(bool moc, bool uic, bool rcc);
- /// @brief Returns the string escaped and enclosed in quotes
- static std::string Quoted(std::string const& text);
- static std::string QuotedCommand(std::vector<std::string> const& command);
- /// @brief Returns the parent directory of the file with a "/" suffix
- static std::string SubDirPrefix(std::string const& filename);
- /// @brief Appends the suffix to the filename before the last dot
- static std::string AppendFilenameSuffix(std::string const& filename,
- std::string const& suffix);
- /// @brief Merges newOpts into baseOpts
- static void UicMergeOptions(std::vector<std::string>& baseOpts,
- std::vector<std::string> const& newOpts,
- bool isQt5);
- /// @brief Merges newOpts into baseOpts
- static void RccMergeOptions(std::vector<std::string>& baseOpts,
- std::vector<std::string> const& newOpts,
- bool isQt5);
- /// @brief Parses the content of a qrc file
- ///
- /// Use when rcc does not support the "--list" option
- static void RccListParseContent(std::string const& content,
- std::vector<std::string>& files);
- /// @brief Parses the output of the "rcc --list ..." command
- static bool RccListParseOutput(std::string const& rccStdOut,
- std::string const& rccStdErr,
- std::vector<std::string>& files,
- std::string& error);
- /// @brief Converts relative qrc entry paths to full paths
- static void RccListConvertFullPath(std::string const& qrcFileDir,
- std::vector<std::string>& files);
- };
- #endif
|