VS10: Order .vcxproj dependencies deterministically (#10502)
This avoids needless modification of the project files during regeneration.
This commit is contained in:
parent
ba3064b584
commit
973df7c0e9
|
@ -69,14 +69,6 @@ public:
|
|||
i.e. "Can I build Debug and Release in the same tree?" */
|
||||
virtual bool IsMultiConfig() { return true; }
|
||||
|
||||
protected:
|
||||
// Does this VS version link targets to each other if there are
|
||||
// dependencies in the SLN file? This was done for VS versions
|
||||
// below 8.
|
||||
virtual bool VSLinksDependencies() const { return true; }
|
||||
|
||||
virtual const char* GetIDEVersion() = 0;
|
||||
|
||||
struct TargetCompare
|
||||
{
|
||||
bool operator()(cmTarget const* l, cmTarget const* r) const;
|
||||
|
@ -87,6 +79,14 @@ protected:
|
|||
OrderedTargetDependSet(cmGlobalGenerator::TargetDependSet const&);
|
||||
};
|
||||
|
||||
protected:
|
||||
// Does this VS version link targets to each other if there are
|
||||
// dependencies in the SLN file? This was done for VS versions
|
||||
// below 8.
|
||||
virtual bool VSLinksDependencies() const { return true; }
|
||||
|
||||
virtual const char* GetIDEVersion() = 0;
|
||||
|
||||
virtual bool ComputeTargetDepends();
|
||||
class VSDependSet: public std::set<cmStdString> {};
|
||||
class VSDependMap: public std::map<cmTarget*, VSDependSet> {};
|
||||
|
|
|
@ -1479,10 +1479,13 @@ void cmVisualStudio10TargetGenerator::WriteEvent(
|
|||
|
||||
void cmVisualStudio10TargetGenerator::WriteProjectReferences()
|
||||
{
|
||||
cmGlobalGenerator::TargetDependSet const& depends
|
||||
cmGlobalGenerator::TargetDependSet const& unordered
|
||||
= this->GlobalGenerator->GetTargetDirectDepends(*this->Target);
|
||||
typedef cmGlobalVisualStudioGenerator::OrderedTargetDependSet
|
||||
OrderedTargetDependSet;
|
||||
OrderedTargetDependSet depends(unordered);
|
||||
this->WriteString("<ItemGroup>\n", 1);
|
||||
for( cmGlobalGenerator::TargetDependSet::const_iterator i = depends.begin();
|
||||
for( OrderedTargetDependSet::const_iterator i = depends.begin();
|
||||
i != depends.end(); ++i)
|
||||
{
|
||||
cmTarget* dt = *i;
|
||||
|
|
Loading…
Reference in New Issue