diff options
author | Sebastian Holtermann <sebholt@xwmw.org> | 2019-09-20 20:39:13 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-09-25 14:07:09 (GMT) |
commit | d867e058924d348ee5ec5bba867965e8f1f276e2 (patch) | |
tree | 630f67b2bcce99327a769ef591b1f1698cf76742 /Source/cmQtAutoMocUic.h | |
parent | 881e3cfbf96c7b4f48304d3dfc07899c2e6703de (diff) | |
download | CMake-d867e058924d348ee5ec5bba867965e8f1f276e2.zip CMake-d867e058924d348ee5ec5bba867965e8f1f276e2.tar.gz CMake-d867e058924d348ee5ec5bba867965e8f1f276e2.tar.bz2 |
Autogen: Use JSON instead of CMake script for info files
We used to store information for the _autogen target in a CMake script
file AutogenInfo.cmake, which was imported by a temporary cmake instance in
the _autogen target. This introduced the overhead of creating a temporary
cmake instance and inherited the limitations of the CMake language which
only supports lists.
This patch introduces JSON files to pass information to AUTORCC and
autogen_ targets. JSON files are more flexible for passing data, e.g. they
support nested lists.
The patch has the side effects that
- AutogenInfo.cmake is renamed to AutogenInfo.json
- AutogenOldSettings.txt is renamed to AutogenUsed.txt
- RCC<qrcBaseName><checksum>Info.cmake is renamed to
AutoRcc_<qrcBaseName>_<checksum>_Info.json
- RCC<qrcBaseName><checksum>.lock is renamed to
AutoRcc_<qrcBaseName>_<checksum>_Lock.lock
- RCC<qrcBaseName><checksum>Settings.txt is renamed to
AutoRcc_<qrcBaseName>_<checksum>_Used.txt
Diffstat (limited to 'Source/cmQtAutoMocUic.h')
-rw-r--r-- | Source/cmQtAutoMocUic.h | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/Source/cmQtAutoMocUic.h b/Source/cmQtAutoMocUic.h index f37d923..7101b8f 100644 --- a/Source/cmQtAutoMocUic.h +++ b/Source/cmQtAutoMocUic.h @@ -25,8 +25,6 @@ #include <utility> #include <vector> -class cmMakefile; - /** \class cmQtAutoMocUic * \brief AUTOMOC and AUTOUIC generator */ @@ -42,17 +40,21 @@ public: public: // -- Types + /** Include string with sub parts. */ + struct IncludeKeyT + { + IncludeKeyT(std::string const& key, std::size_t basePrefixLength); + + std::string Key; // Full include string + std::string Dir; // Include directory + std::string Base; // Base part of the include file name + }; + /** Search key plus regular expression pair. */ struct KeyExpT { KeyExpT() = default; - KeyExpT(const char* key, const char* exp) - : Key(key) - , Exp(exp) - { - } - KeyExpT(std::string key, std::string const& exp) : Key(std::move(key)) , Exp(exp) @@ -63,16 +65,6 @@ public: cmsys::RegularExpression Exp; }; - /** Include string with sub parts. */ - struct IncludeKeyT - { - IncludeKeyT(std::string const& key, std::size_t basePrefixLength); - - std::string Key; // Full include string - std::string Dir; // Include directory - std::string Base; // Base part of the include file name - }; - /** Source file parsing cache. */ class ParseCacheT { @@ -169,6 +161,7 @@ public: // - Config bool MultiConfig = false; unsigned int QtVersionMajor = 4; + unsigned int ThreadCount = 0; // - Directories std::string AutogenBuildDir; std::string AutogenIncludeDir; @@ -252,6 +245,12 @@ public: class UicSettingsT { public: + struct UiFile + { + std::vector<std::string> Options; + }; + + public: UicSettingsT(); ~UicSettingsT(); @@ -267,8 +266,8 @@ public: cmFileTime ExecutableTime; std::string Executable; std::unordered_set<std::string> SkipList; - std::vector<std::string> TargetOptions; - std::map<std::string, std::vector<std::string>> Options; + std::vector<std::string> Options; + std::unordered_map<std::string, UiFile> UiFiles; std::vector<std::string> SearchPaths; cmsys::RegularExpression RegExpInclude; }; @@ -523,10 +522,8 @@ public: std::string CollapseFullPathTS(std::string const& path) const; private: - // -- Utility accessors - Logger const& Log() const { return Logger_; } // -- Abstract processing interface - bool Init(cmMakefile* makefile) override; + bool InitFromInfo() override; void InitJobs(); bool Process() override; // -- Settings file @@ -541,8 +538,6 @@ private: bool CreateDirectories(); private: - // -- Utility - Logger Logger_; // -- Settings BaseSettingsT BaseConst_; BaseEvalT BaseEval_; |