mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-01 03:29:18 -05:00
Merge topic 'autogen_single_entry'
87e7904c91 Autogen: Use a single AUTOGEN setup function in cmGlobalGenerator
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2260
This commit is contained in:
@@ -1313,16 +1313,10 @@ bool cmGlobalGenerator::Compute()
|
||||
// so create the map from project name to vector of local generators
|
||||
this->FillProjectMap();
|
||||
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
// Iterate through all targets and set up automoc for those which have
|
||||
// the AUTOMOC, AUTOUIC or AUTORCC property set
|
||||
auto autogenInits = this->CreateQtAutoGenInitializers();
|
||||
for (auto& autoGen : autogenInits) {
|
||||
if (!autoGen->InitCustomTargets()) {
|
||||
return false;
|
||||
}
|
||||
// Iterate through all targets and set up AUTOMOC, AUTOUIC and AUTORCC
|
||||
if (!this->QtAutoGen()) {
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Add generator specific helper commands
|
||||
for (cmLocalGenerator* localGen : this->LocalGenerators) {
|
||||
@@ -1341,16 +1335,6 @@ bool cmGlobalGenerator::Compute()
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
for (auto& autoGen : autogenInits) {
|
||||
if (!autoGen->SetupCustomTargets()) {
|
||||
return false;
|
||||
}
|
||||
autoGen.reset(nullptr);
|
||||
}
|
||||
autogenInits.clear();
|
||||
#endif
|
||||
|
||||
for (cmLocalGenerator* localGen : this->LocalGenerators) {
|
||||
cmMakefile* mf = localGen->GetMakefile();
|
||||
for (cmInstallGenerator* g : mf->GetInstallGenerators()) {
|
||||
@@ -1480,12 +1464,11 @@ bool cmGlobalGenerator::ComputeTargetDepends()
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<cmQtAutoGenInitializer>>
|
||||
cmGlobalGenerator::CreateQtAutoGenInitializers()
|
||||
bool cmGlobalGenerator::QtAutoGen()
|
||||
{
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
std::vector<std::unique_ptr<cmQtAutoGenInitializer>> autogenInits;
|
||||
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
for (cmLocalGenerator* localGen : this->LocalGenerators) {
|
||||
const std::vector<cmGeneratorTarget*>& targets =
|
||||
localGen->GetGeneratorTargets();
|
||||
@@ -1519,12 +1502,30 @@ cmGlobalGenerator::CreateQtAutoGenInitializers()
|
||||
continue;
|
||||
}
|
||||
|
||||
autogenInits.emplace_back(new cmQtAutoGenInitializer(
|
||||
autogenInits.emplace_back(cm::make_unique<cmQtAutoGenInitializer>(
|
||||
target, mocEnabled, uicEnabled, rccEnabled, qtVersionMajor));
|
||||
}
|
||||
}
|
||||
|
||||
if (!autogenInits.empty()) {
|
||||
// Initialize custom targets
|
||||
for (auto& autoGen : autogenInits) {
|
||||
if (!autoGen->InitCustomTargets()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Setup custom targets
|
||||
for (auto& autoGen : autogenInits) {
|
||||
if (!autoGen->SetupCustomTargets()) {
|
||||
return false;
|
||||
}
|
||||
autoGen.reset(nullptr);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return autogenInits;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
cmLinkLineComputer* cmGlobalGenerator::CreateLinkLineComputer(
|
||||
|
||||
@@ -33,7 +33,6 @@ class cmLinkLineComputer;
|
||||
class cmLocalGenerator;
|
||||
class cmMakefile;
|
||||
class cmOutputConverter;
|
||||
class cmQtAutoGenInitializer;
|
||||
class cmSourceFile;
|
||||
class cmStateDirectory;
|
||||
class cmake;
|
||||
@@ -443,9 +442,9 @@ protected:
|
||||
|
||||
virtual bool CheckALLOW_DUPLICATE_CUSTOM_TARGETS() const;
|
||||
|
||||
// Qt auto generators
|
||||
std::vector<std::unique_ptr<cmQtAutoGenInitializer>>
|
||||
CreateQtAutoGenInitializers();
|
||||
/// @brief Qt AUTOMOC/UIC/RCC target generation
|
||||
/// @return true on success
|
||||
bool QtAutoGen();
|
||||
|
||||
std::string SelectMakeProgram(const std::string& makeProgram,
|
||||
const std::string& makeDefault = "") const;
|
||||
|
||||
Reference in New Issue
Block a user