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:
Brad King
2018-08-06 12:43:46 +00:00
committed by Kitware Robot
2 changed files with 28 additions and 28 deletions
+25 -24
View File
@@ -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(
+3 -4
View File
@@ -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;