Merge topic 'refactor-computation'
616f0311 cmGlobalGenerator: Move path computation to Compute. 9eea0486 cmGlobalGenerator: Do more computation at compute time. 2eca0559 cmGlobalGenerator: De-virtualize Compute(). 21f428f4 VisualStudio: Replace Compute override with AddExtraIDETargets override. a9588e90 VisualStudio10: Initialize the LongestSource at generate time. 4407eee0 cmGlobalGenerator: Call AddExtraIDETargets as a hook of Compute(). a09c545d Xcode: Extract a AddExtraIDETargets method.
This commit is contained in:
commit
c914d2bda2
@ -1282,12 +1282,7 @@ bool cmGlobalGenerator::Compute()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
this->AddExtraIDETargets();
|
||||||
}
|
|
||||||
|
|
||||||
void cmGlobalGenerator::Generate()
|
|
||||||
{
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
// 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
|
||||||
@ -1307,22 +1302,27 @@ void cmGlobalGenerator::Generate()
|
|||||||
// Compute the inter-target dependencies.
|
// Compute the inter-target dependencies.
|
||||||
if(!this->ComputeTargetDepends())
|
if(!this->ComputeTargetDepends())
|
||||||
{
|
{
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a map from local generator to the complete set of targets
|
|
||||||
// it builds by default.
|
|
||||||
this->InitializeProgressMarks();
|
|
||||||
|
|
||||||
this->ProcessEvaluationFiles();
|
|
||||||
|
|
||||||
for (i = 0; i < this->LocalGenerators.size(); ++i)
|
for (i = 0; i < this->LocalGenerators.size(); ++i)
|
||||||
{
|
{
|
||||||
this->LocalGenerators[i]->ComputeHomeRelativeOutputPath();
|
this->LocalGenerators[i]->ComputeHomeRelativeOutputPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cmGlobalGenerator::Generate()
|
||||||
|
{
|
||||||
|
// Create a map from local generator to the complete set of targets
|
||||||
|
// it builds by default.
|
||||||
|
this->InitializeProgressMarks();
|
||||||
|
|
||||||
|
this->ProcessEvaluationFiles();
|
||||||
|
|
||||||
// Generate project files
|
// Generate project files
|
||||||
for (i = 0; i < this->LocalGenerators.size(); ++i)
|
for (unsigned int i = 0; i < this->LocalGenerators.size(); ++i)
|
||||||
{
|
{
|
||||||
this->SetCurrentMakefile(this->LocalGenerators[i]->GetMakefile());
|
this->SetCurrentMakefile(this->LocalGenerators[i]->GetMakefile());
|
||||||
this->LocalGenerators[i]->Generate();
|
this->LocalGenerators[i]->Generate();
|
||||||
|
@ -83,7 +83,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual void Configure();
|
virtual void Configure();
|
||||||
|
|
||||||
virtual bool Compute();
|
bool Compute();
|
||||||
|
virtual void AddExtraIDETargets() {}
|
||||||
|
|
||||||
enum TargetTypes {
|
enum TargetTypes {
|
||||||
AllTargets,
|
AllTargets,
|
||||||
|
@ -325,19 +325,9 @@ cmLocalGenerator* cmGlobalVisualStudio10Generator::CreateLocalGenerator(
|
|||||||
return new cmLocalVisualStudio10Generator(this, mf);
|
return new cmLocalVisualStudio10Generator(this, mf);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
bool cmGlobalVisualStudio10Generator::Compute()
|
|
||||||
{
|
|
||||||
if (!cmGlobalVisualStudio8Generator::Compute())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
this->LongestSource = LongestSourcePath();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cmGlobalVisualStudio10Generator::Generate()
|
void cmGlobalVisualStudio10Generator::Generate()
|
||||||
{
|
{
|
||||||
|
this->LongestSource = LongestSourcePath();
|
||||||
this->cmGlobalVisualStudio8Generator::Generate();
|
this->cmGlobalVisualStudio8Generator::Generate();
|
||||||
if(this->LongestSource.Length > 0)
|
if(this->LongestSource.Length > 0)
|
||||||
{
|
{
|
||||||
|
@ -45,8 +45,6 @@ public:
|
|||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
virtual bool Compute();
|
|
||||||
|
|
||||||
///! create the correct local generator
|
///! create the correct local generator
|
||||||
virtual cmLocalGenerator *CreateLocalGenerator(cmMakefile* mf);
|
virtual cmLocalGenerator *CreateLocalGenerator(cmMakefile* mf);
|
||||||
|
|
||||||
|
@ -348,13 +348,9 @@ bool cmGlobalVisualStudio8Generator::AddCheckTarget()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
bool cmGlobalVisualStudio8Generator::Compute()
|
void cmGlobalVisualStudio8Generator::AddExtraIDETargets()
|
||||||
{
|
{
|
||||||
if (!cmGlobalVisualStudio7Generator::Compute())
|
cmGlobalVisualStudio7Generator::AddExtraIDETargets();
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this->AddCheckTarget())
|
if(this->AddCheckTarget())
|
||||||
{
|
{
|
||||||
// All targets depend on the build-system check target.
|
// All targets depend on the build-system check target.
|
||||||
@ -368,7 +364,6 @@ bool cmGlobalVisualStudio8Generator::Compute()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -67,7 +67,7 @@ public:
|
|||||||
return !this->WindowsCEVersion.empty(); }
|
return !this->WindowsCEVersion.empty(); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual bool Compute();
|
virtual void AddExtraIDETargets();
|
||||||
virtual const char* GetIDEVersion() { return "8.0"; }
|
virtual const char* GetIDEVersion() { return "8.0"; }
|
||||||
|
|
||||||
virtual std::string FindDevEnvCommand();
|
virtual std::string FindDevEnvCommand();
|
||||||
|
@ -64,13 +64,8 @@ std::string cmGlobalVisualStudioGenerator::GetRegistryBase(
|
|||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
bool cmGlobalVisualStudioGenerator::Compute()
|
void cmGlobalVisualStudioGenerator::AddExtraIDETargets()
|
||||||
{
|
{
|
||||||
if (!cmGlobalGenerator::Compute())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add a special target that depends on ALL projects for easy build
|
// Add a special target that depends on ALL projects for easy build
|
||||||
// of one configuration only.
|
// of one configuration only.
|
||||||
const char* no_working_dir = 0;
|
const char* no_working_dir = 0;
|
||||||
@ -144,7 +139,6 @@ bool cmGlobalVisualStudioGenerator::Compute()
|
|||||||
static_cast<cmLocalVisualStudioGenerator*>(*lgi);
|
static_cast<cmLocalVisualStudioGenerator*>(*lgi);
|
||||||
lg->AddCMakeListsRules();
|
lg->AddCMakeListsRules();
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -111,7 +111,7 @@ public:
|
|||||||
cmGeneratorTarget*, std::vector<cmCustomCommand>& commands,
|
cmGeneratorTarget*, std::vector<cmCustomCommand>& commands,
|
||||||
std::string const& configName);
|
std::string const& configName);
|
||||||
protected:
|
protected:
|
||||||
virtual bool Compute();
|
virtual void AddExtraIDETargets();
|
||||||
|
|
||||||
// Does this VS version link targets to each other if there are
|
// Does this VS version link targets to each other if there are
|
||||||
// dependencies in the SLN file? This was done for VS versions
|
// dependencies in the SLN file? This was done for VS versions
|
||||||
|
@ -376,14 +376,8 @@ cmGlobalXCodeGenerator::CreateLocalGenerator(cmMakefile* mf)
|
|||||||
return new cmLocalXCodeGenerator(this, mf);
|
return new cmLocalXCodeGenerator(this, mf);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
void cmGlobalXCodeGenerator::AddExtraIDETargets()
|
||||||
bool cmGlobalXCodeGenerator::Compute()
|
|
||||||
{
|
{
|
||||||
if (!cmGlobalGenerator::Compute())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::map<std::string, std::vector<cmLocalGenerator*> >::iterator it;
|
std::map<std::string, std::vector<cmLocalGenerator*> >::iterator it;
|
||||||
// make sure extra targets are added before calling
|
// make sure extra targets are added before calling
|
||||||
// the parent generate which will call trace depends
|
// the parent generate which will call trace depends
|
||||||
@ -394,7 +388,6 @@ bool cmGlobalXCodeGenerator::Compute()
|
|||||||
// add ALL_BUILD, INSTALL, etc
|
// add ALL_BUILD, INSTALL, etc
|
||||||
this->AddExtraTargets(root, it->second);
|
this->AddExtraTargets(root, it->second);
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmGlobalXCodeGenerator::Generate()
|
void cmGlobalXCodeGenerator::Generate()
|
||||||
|
@ -87,7 +87,7 @@ public:
|
|||||||
virtual bool SetGeneratorToolset(std::string const& ts, cmMakefile* mf);
|
virtual bool SetGeneratorToolset(std::string const& ts, cmMakefile* mf);
|
||||||
void AppendFlag(std::string& flags, std::string const& flag);
|
void AppendFlag(std::string& flags, std::string const& flag);
|
||||||
protected:
|
protected:
|
||||||
virtual bool Compute();
|
virtual void AddExtraIDETargets();
|
||||||
virtual void Generate();
|
virtual void Generate();
|
||||||
private:
|
private:
|
||||||
cmXCodeObject* CreateOrGetPBXGroup(cmTarget& cmtarget,
|
cmXCodeObject* CreateOrGetPBXGroup(cmTarget& cmtarget,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user