Simplify VS generator ZERO_CHECK dependency
The VS generators use a ZERO_CHECK target on which all other targets depend to check whether CMake needs to re-run. This commit simplifies the addition of a dependency on the target to all other targets. We also move addition of dependencies to the beginning of the Generate step. This allows the dependency on ZERO_CHECK to be included in the global inter-target dependency analysis.
This commit is contained in:
parent
7f9a0f508f
commit
524bb1e36e
@ -242,46 +242,19 @@ void cmGlobalVisualStudio8Generator::Generate()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now perform the main generation.
|
// All targets depend on the build-system check target.
|
||||||
this->cmGlobalVisualStudio7Generator::Generate();
|
for(std::map<cmStdString,cmTarget *>::const_iterator
|
||||||
}
|
ti = this->TotalTargets.begin();
|
||||||
|
ti != this->TotalTargets.end(); ++ti)
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
void cmGlobalVisualStudio8Generator::WriteSLNFile(
|
|
||||||
std::ostream& fout, cmLocalGenerator* root,
|
|
||||||
std::vector<cmLocalGenerator*>& generators)
|
|
||||||
{
|
|
||||||
// Make all targets depend on their respective project's build
|
|
||||||
// system check target.
|
|
||||||
unsigned int i;
|
|
||||||
for(i = 0; i < generators.size(); ++i)
|
|
||||||
{
|
{
|
||||||
if(this->IsExcluded(root, generators[i]))
|
if(ti->first != CMAKE_CHECK_BUILD_SYSTEM_TARGET)
|
||||||
{
|
{
|
||||||
continue;
|
ti->second->AddUtility(CMAKE_CHECK_BUILD_SYSTEM_TARGET);
|
||||||
}
|
|
||||||
cmMakefile* mf = generators[i]->GetMakefile();
|
|
||||||
cmTargets& tgts = mf->GetTargets();
|
|
||||||
for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l)
|
|
||||||
{
|
|
||||||
if(l->first == CMAKE_CHECK_BUILD_SYSTEM_TARGET)
|
|
||||||
{
|
|
||||||
for(unsigned int j = 0; j < generators.size(); ++j)
|
|
||||||
{
|
|
||||||
// Every target in all generators should depend on this target.
|
|
||||||
cmMakefile* lmf = generators[j]->GetMakefile();
|
|
||||||
cmTargets &atgts = lmf->GetTargets();
|
|
||||||
for(cmTargets::iterator al = atgts.begin(); al != atgts.end(); ++al)
|
|
||||||
{
|
|
||||||
al->second.AddUtility(l->first.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now write the solution file.
|
// Now perform the main generation.
|
||||||
this->cmGlobalVisualStudio71Generator::WriteSLNFile(fout, root, generators);
|
this->cmGlobalVisualStudio7Generator::Generate();
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -69,8 +69,6 @@ protected:
|
|||||||
|
|
||||||
static cmIDEFlagTable const* GetExtraFlagTableVS8();
|
static cmIDEFlagTable const* GetExtraFlagTableVS8();
|
||||||
virtual void AddPlatformDefinitions(cmMakefile* mf);
|
virtual void AddPlatformDefinitions(cmMakefile* mf);
|
||||||
virtual void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root,
|
|
||||||
std::vector<cmLocalGenerator*>& generators);
|
|
||||||
virtual void WriteSLNHeader(std::ostream& fout);
|
virtual void WriteSLNHeader(std::ostream& fout);
|
||||||
virtual void WriteSolutionConfigurations(std::ostream& fout);
|
virtual void WriteSolutionConfigurations(std::ostream& fout);
|
||||||
virtual void WriteProjectConfigurations(std::ostream& fout,
|
virtual void WriteProjectConfigurations(std::ostream& fout,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user