1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
10 #include <unordered_map>
13 #include "cmQtAutoGen.h"
15 class cmLocalGenerator
;
16 class cmQtAutoGenInitializer
;
18 /// @brief Initializes the QtAutoGen generators
19 class cmQtAutoGenGlobalInitializer
22 /// @brief Collection of QtAutogen related keywords
32 std::string AUTOMOC_EXECUTABLE
;
33 std::string AUTOUIC_EXECUTABLE
;
34 std::string AUTORCC_EXECUTABLE
;
36 std::string SKIP_AUTOGEN
;
37 std::string SKIP_AUTOMOC
;
38 std::string SKIP_AUTOUIC
;
39 std::string SKIP_AUTORCC
;
41 std::string AUTOUIC_OPTIONS
;
42 std::string AUTORCC_OPTIONS
;
48 cmQtAutoGenGlobalInitializer(
49 std::vector
<std::unique_ptr
<cmLocalGenerator
>> const& localGenerators
);
50 ~cmQtAutoGenGlobalInitializer();
52 Keywords
const& kw() const { return this->Keywords_
; }
54 bool InitializeCustomTargets();
55 bool SetupCustomTargets();
58 friend class cmQtAutoGenInitializer
;
60 void GetOrCreateGlobalTarget(cmLocalGenerator
* localGen
,
61 std::string
const& name
,
62 std::string
const& comment
);
64 void AddToGlobalAutoGen(cmLocalGenerator
* localGen
,
65 std::string
const& targetName
);
66 void AddToGlobalAutoRcc(cmLocalGenerator
* localGen
,
67 std::string
const& targetName
);
69 cmQtAutoGen::ConfigStrings
<cmQtAutoGen::CompilerFeaturesHandle
>
70 GetCompilerFeatures(std::string
const& generator
,
71 cmQtAutoGen::ConfigString
const& executable
,
72 std::string
& error
, bool isMultiConfig
,
75 std::vector
<std::unique_ptr
<cmQtAutoGenInitializer
>> Initializers_
;
76 std::map
<cmLocalGenerator
*, std::string
> GlobalAutoGenTargets_
;
77 std::map
<cmLocalGenerator
*, std::string
> GlobalAutoRccTargets_
;
78 cmQtAutoGen::ConfigStrings
<
79 std::unordered_map
<std::string
, cmQtAutoGen::CompilerFeaturesHandle
>>
81 Keywords
const Keywords_
;