/* 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 #include 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 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 Options_; std::vector Inputs_; // -- Settings file std::string SettingsFile_; std::string SettingsString_; bool SettingsChanged_ = false; bool BuildFileChanged_ = false; }; #endif