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?" */
|
i.e. "Can I build Debug and Release in the same tree?" */
|
||||||
virtual bool IsMultiConfig() { return true; }
|
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
|
struct TargetCompare
|
||||||
{
|
{
|
||||||
bool operator()(cmTarget const* l, cmTarget const* r) const;
|
bool operator()(cmTarget const* l, cmTarget const* r) const;
|
||||||
|
@ -87,6 +79,14 @@ protected:
|
||||||
OrderedTargetDependSet(cmGlobalGenerator::TargetDependSet const&);
|
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();
|
virtual bool ComputeTargetDepends();
|
||||||
class VSDependSet: public std::set<cmStdString> {};
|
class VSDependSet: public std::set<cmStdString> {};
|
||||||
class VSDependMap: public std::map<cmTarget*, VSDependSet> {};
|
class VSDependMap: public std::map<cmTarget*, VSDependSet> {};
|
||||||
|
|
|
@ -1479,10 +1479,13 @@ void cmVisualStudio10TargetGenerator::WriteEvent(
|
||||||
|
|
||||||
void cmVisualStudio10TargetGenerator::WriteProjectReferences()
|
void cmVisualStudio10TargetGenerator::WriteProjectReferences()
|
||||||
{
|
{
|
||||||
cmGlobalGenerator::TargetDependSet const& depends
|
cmGlobalGenerator::TargetDependSet const& unordered
|
||||||
= this->GlobalGenerator->GetTargetDirectDepends(*this->Target);
|
= this->GlobalGenerator->GetTargetDirectDepends(*this->Target);
|
||||||
|
typedef cmGlobalVisualStudioGenerator::OrderedTargetDependSet
|
||||||
|
OrderedTargetDependSet;
|
||||||
|
OrderedTargetDependSet depends(unordered);
|
||||||
this->WriteString("<ItemGroup>\n", 1);
|
this->WriteString("<ItemGroup>\n", 1);
|
||||||
for( cmGlobalGenerator::TargetDependSet::const_iterator i = depends.begin();
|
for( OrderedTargetDependSet::const_iterator i = depends.begin();
|
||||||
i != depends.end(); ++i)
|
i != depends.end(); ++i)
|
||||||
{
|
{
|
||||||
cmTarget* dt = *i;
|
cmTarget* dt = *i;
|
||||||
|
|
Loading…
Reference in New Issue