Store direct dependencies in solutions for VS >= 8
Since commit bc43b0f2
(Do not link library dependencies in VS solutions,
2009-10-20) CMake disables for VS >= 8 linking of a target to libraries
that happen to be listed as solution-level dependencies. Therefore we
can list the direct dependencies of each target in the solution file and
let VS handle transitive dependencies automatically.
This commit is contained in:
parent
f2b4a46677
commit
1a0c166a26
|
@ -699,9 +699,8 @@ bool cmGlobalGenerator::IsDependedOn(const char* project,
|
|||
l != targets.end(); l++)
|
||||
{
|
||||
cmTarget& target = l->second;
|
||||
std::set<cmStdString>::const_iterator pos =
|
||||
target.GetUtilities().find(targetIn->GetName());
|
||||
if(pos != target.GetUtilities().end())
|
||||
TargetDependSet const& tgtdeps = this->GetTargetDirectDepends(target);
|
||||
if(tgtdeps.count(targetIn))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -288,6 +288,20 @@ cmGlobalVisualStudio8Generator
|
|||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmGlobalVisualStudio8Generator::WriteProjectDepends(
|
||||
std::ostream& fout, const char*, const char*, cmTarget& t)
|
||||
{
|
||||
TargetDependSet const& unordered = this->GetTargetDirectDepends(t);
|
||||
OrderedTargetDependSet depends(unordered);
|
||||
for(OrderedTargetDependSet::const_iterator i = depends.begin();
|
||||
i != depends.end(); ++i)
|
||||
{
|
||||
std::string guid = this->GetGUID((*i)->GetName());
|
||||
fout << "\t\t{" << guid << "} = {" << guid << "}\n";
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool cmGlobalVisualStudio8Generator::NeedLinkLibraryDependencies(
|
||||
cmTarget& target)
|
||||
|
|
|
@ -78,6 +78,8 @@ protected:
|
|||
virtual void WriteProjectConfigurations(std::ostream& fout,
|
||||
const char* name,
|
||||
bool partOfDefaultBuild);
|
||||
virtual void WriteProjectDepends(std::ostream& fout, const char* name,
|
||||
const char* path, cmTarget &t);
|
||||
|
||||
const char* ArchitectureId;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue