diff options
Diffstat (limited to 'Source/cmQtAutoRcc.h')
-rw-r--r-- | Source/cmQtAutoRcc.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Source/cmQtAutoRcc.h b/Source/cmQtAutoRcc.h new file mode 100644 index 0000000..636a667 --- /dev/null +++ b/Source/cmQtAutoRcc.h @@ -0,0 +1,81 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmQtAutoRcc_h +#define cmQtAutoRcc_h + +#include "cmConfigure.h" // IWYU pragma: keep + +#include "cmFileLock.h" +#include "cmFileTime.h" +#include "cmQtAutoGenerator.h" + +#include <string> +#include <vector> + +class cmMakefile; + +// @brief AUTORCC generator +class cmQtAutoRcc : public cmQtAutoGenerator +{ +public: + cmQtAutoRcc(); + ~cmQtAutoRcc() override; + + cmQtAutoRcc(cmQtAutoRcc const&) = delete; + cmQtAutoRcc& operator=(cmQtAutoRcc const&) = delete; + +private: + // -- Utility + Logger const& Log() const { return Logger_; } + bool IsMultiConfig() const { return MultiConfig_; } + std::string MultiConfigOutput() const; + + // -- Abstract processing interface + bool Init(cmMakefile* makefile) override; + bool Process() override; + // -- Settings file + bool SettingsFileRead(); + bool SettingsFileWrite(); + // -- Tests + bool TestQrcRccFiles(bool& generate); + bool TestResources(bool& generate); + bool TestInfoFile(); + // -- Generation + bool GenerateRcc(); + bool GenerateWrapper(); + +private: + // -- Logging + Logger Logger_; + // -- Config settings + bool MultiConfig_ = false; + // -- Directories + std::string AutogenBuildDir_; + std::string IncludeDir_; + // -- Qt environment + std::string RccExecutable_; + cmFileTime RccExecutableTime_; + std::vector<std::string> RccListOptions_; + // -- Job + std::string LockFile_; + cmFileLock LockFileLock_; + std::string QrcFile_; + std::string QrcFileName_; + std::string QrcFileDir_; + cmFileTime QrcFileTime_; + std::string RccPathChecksum_; + std::string RccFileName_; + std::string RccFileOutput_; + std::string RccFilePublic_; + cmFileTime RccFileTime_; + std::string Reason; + std::vector<std::string> Options_; + std::vector<std::string> Inputs_; + // -- Settings file + std::string SettingsFile_; + std::string SettingsString_; + bool SettingsChanged_ = false; + bool BuildFileChanged_ = false; +}; + +#endif |