cmAutogen: Gather tool arguments after creating generator targets.
This change causes the GetLinkInterfaceDependentStringProperty method, called in SetupAutoGenerateTarget, after the creation of generator targets. In CMake 4.0, the GetLinkInterfaceDependentStringProperty will move to the cmGeneratorTarget class, and this patch is a necessary prerequisite to that.
This commit is contained in:
parent
d2f4b1e3cf
commit
944277d09e
|
@ -1105,9 +1105,12 @@ void cmGlobalGenerator::Generate()
|
||||||
|
|
||||||
this->FinalizeTargetCompileDefinitions();
|
this->FinalizeTargetCompileDefinitions();
|
||||||
|
|
||||||
|
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||||
// Iterate through all targets and set up automoc for those which have
|
// Iterate through all targets and set up automoc for those which have
|
||||||
// the AUTOMOC, AUTOUIC or AUTORCC property set
|
// the AUTOMOC, AUTOUIC or AUTORCC property set
|
||||||
this->CreateQtAutoGeneratorsTargets();
|
AutogensType autogens;
|
||||||
|
this->CreateQtAutoGeneratorsTargets(autogens);
|
||||||
|
#endif
|
||||||
|
|
||||||
// For each existing cmLocalGenerator
|
// For each existing cmLocalGenerator
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
@ -1141,6 +1144,14 @@ void cmGlobalGenerator::Generate()
|
||||||
// Create per-target generator information.
|
// Create per-target generator information.
|
||||||
this->CreateGeneratorTargets();
|
this->CreateGeneratorTargets();
|
||||||
|
|
||||||
|
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||||
|
for (AutogensType::iterator it = autogens.begin(); it != autogens.end();
|
||||||
|
++it)
|
||||||
|
{
|
||||||
|
it->first.SetupAutoGenerateTarget(it->second);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Trace the dependencies, after that no custom commands should be added
|
// Trace the dependencies, after that no custom commands should be added
|
||||||
// because their dependencies might not be handled correctly
|
// because their dependencies might not be handled correctly
|
||||||
for (i = 0; i < this->LocalGenerators.size(); ++i)
|
for (i = 0; i < this->LocalGenerators.size(); ++i)
|
||||||
|
@ -1266,11 +1277,9 @@ bool cmGlobalGenerator::CheckTargets()
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void cmGlobalGenerator::CreateQtAutoGeneratorsTargets()
|
void cmGlobalGenerator::CreateQtAutoGeneratorsTargets(AutogensType &autogens)
|
||||||
{
|
{
|
||||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||||
typedef std::vector<std::pair<cmQtAutoGenerators, cmTarget*> > Autogens;
|
|
||||||
Autogens autogens;
|
|
||||||
for(unsigned int i=0; i < this->LocalGenerators.size(); ++i)
|
for(unsigned int i=0; i < this->LocalGenerators.size(); ++i)
|
||||||
{
|
{
|
||||||
cmTargets& targets =
|
cmTargets& targets =
|
||||||
|
@ -1299,11 +1308,8 @@ void cmGlobalGenerator::CreateQtAutoGeneratorsTargets()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Autogens::iterator it = autogens.begin(); it != autogens.end();
|
#else
|
||||||
++it)
|
(void)autogens;
|
||||||
{
|
|
||||||
it->first.SetupAutoGenerateTarget(it->second);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ class cmTarget;
|
||||||
class cmInstallTargetGenerator;
|
class cmInstallTargetGenerator;
|
||||||
class cmInstallFilesGenerator;
|
class cmInstallFilesGenerator;
|
||||||
class cmExportBuildFileGenerator;
|
class cmExportBuildFileGenerator;
|
||||||
|
class cmQtAutoGenerators;
|
||||||
|
|
||||||
/** \class cmGlobalGenerator
|
/** \class cmGlobalGenerator
|
||||||
* \brief Responable for overseeing the generation process for the entire tree
|
* \brief Responable for overseeing the generation process for the entire tree
|
||||||
|
@ -323,7 +324,8 @@ protected:
|
||||||
virtual bool CheckALLOW_DUPLICATE_CUSTOM_TARGETS();
|
virtual bool CheckALLOW_DUPLICATE_CUSTOM_TARGETS();
|
||||||
|
|
||||||
bool CheckTargets();
|
bool CheckTargets();
|
||||||
void CreateQtAutoGeneratorsTargets();
|
typedef std::vector<std::pair<cmQtAutoGenerators, cmTarget*> > AutogensType;
|
||||||
|
void CreateQtAutoGeneratorsTargets(AutogensType& autogens);
|
||||||
|
|
||||||
|
|
||||||
// Fill the ProjectMap, this must be called after LocalGenerators
|
// Fill the ProjectMap, this must be called after LocalGenerators
|
||||||
|
|
Loading…
Reference in New Issue