CMake/Source/cmQtAutoGenGlobalInitializer.h
Kitware Robot 1772622772 LICENSE: Replace references to Copyright.txt with LICENSE.rst
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
  while IFS= read -r -d $'\0' f ; do
    sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
              s/Copyright.txt/LICENSE.rst/
            }' "$f" ; done
```
2025-03-03 10:43:35 -05:00

83 lines
2.3 KiB
C++

/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst or https://cmake.org/licensing for details. */
#pragma once
#include "cmConfigure.h" // IWYU pragma: keep
#include <map>
#include <memory>
#include <string>
#include <unordered_map>
#include <vector>
#include "cmQtAutoGen.h"
class cmLocalGenerator;
class cmQtAutoGenInitializer;
/// @brief Initializes the QtAutoGen generators
class cmQtAutoGenGlobalInitializer
{
public:
/// @brief Collection of QtAutogen related keywords
class Keywords
{
public:
Keywords();
std::string AUTOMOC;
std::string AUTOUIC;
std::string AUTORCC;
std::string AUTOMOC_EXECUTABLE;
std::string AUTOUIC_EXECUTABLE;
std::string AUTORCC_EXECUTABLE;
std::string SKIP_AUTOGEN;
std::string SKIP_AUTOMOC;
std::string SKIP_AUTOUIC;
std::string SKIP_AUTORCC;
std::string AUTOUIC_OPTIONS;
std::string AUTORCC_OPTIONS;
std::string qrc;
std::string ui;
};
cmQtAutoGenGlobalInitializer(
std::vector<std::unique_ptr<cmLocalGenerator>> const& localGenerators);
~cmQtAutoGenGlobalInitializer();
Keywords const& kw() const { return this->Keywords_; }
bool InitializeCustomTargets();
bool SetupCustomTargets();
private:
friend class cmQtAutoGenInitializer;
void GetOrCreateGlobalTarget(cmLocalGenerator* localGen,
std::string const& name,
std::string const& comment);
void AddToGlobalAutoGen(cmLocalGenerator* localGen,
std::string const& targetName);
void AddToGlobalAutoRcc(cmLocalGenerator* localGen,
std::string const& targetName);
cmQtAutoGen::ConfigStrings<cmQtAutoGen::CompilerFeaturesHandle>
GetCompilerFeatures(std::string const& generator,
cmQtAutoGen::ConfigString const& executable,
std::string& error, bool isMultiConfig,
bool UseBetterGraph);
std::vector<std::unique_ptr<cmQtAutoGenInitializer>> Initializers_;
std::map<cmLocalGenerator*, std::string> GlobalAutoGenTargets_;
std::map<cmLocalGenerator*, std::string> GlobalAutoRccTargets_;
cmQtAutoGen::ConfigStrings<
std::unordered_map<std::string, cmQtAutoGen::CompilerFeaturesHandle>>
CompilerFeatures_;
Keywords const Keywords_;
};