Changed project dependencies for solution files
Reorganized project dependency output in solution files for vc 2005+ Task-number: QTBUG-30993 Change-Id: I4764f3d98be40b3e217130522bb89a43bbf3669e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
parent
76d75fd7df
commit
f36374727e
@ -200,8 +200,9 @@ const char _slnSolutionConf[] = "\n\tGlobalSection(SolutionConfiguration) = pr
|
|||||||
"\n\t\tConfigName.0 = Debug|Win32"
|
"\n\t\tConfigName.0 = Debug|Win32"
|
||||||
"\n\t\tConfigName.1 = Release|Win32"
|
"\n\t\tConfigName.1 = Release|Win32"
|
||||||
"\n\tEndGlobalSection";
|
"\n\tEndGlobalSection";
|
||||||
const char _slnProjDepBeg[] = "\n\tGlobalSection(ProjectDependencies) = postSolution";
|
|
||||||
const char _slnProjDepEnd[] = "\n\tEndGlobalSection";
|
const char _slnProjDepBeg[] = "\n\tProjectSection(ProjectDependencies) = postProject";
|
||||||
|
const char _slnProjDepEnd[] = "\n\tEndProjectSection";
|
||||||
const char _slnProjConfBeg[] = "\n\tGlobalSection(ProjectConfiguration) = postSolution";
|
const char _slnProjConfBeg[] = "\n\tGlobalSection(ProjectConfiguration) = postSolution";
|
||||||
const char _slnProjRelConfTag1[]= ".Release|%1.ActiveCfg = Release|";
|
const char _slnProjRelConfTag1[]= ".Release|%1.ActiveCfg = Release|";
|
||||||
const char _slnProjRelConfTag2[]= ".Release|%1.Build.0 = Release|";
|
const char _slnProjRelConfTag2[]= ".Release|%1.Build.0 = Release|";
|
||||||
@ -571,10 +572,6 @@ ProStringList VcprojGenerator::collectDependencies(QMakeProject *proj, QHash<QSt
|
|||||||
#endif
|
#endif
|
||||||
solution_cleanup.append(newDep);
|
solution_cleanup.append(newDep);
|
||||||
solution_depends.insert(newDep->target, newDep);
|
solution_depends.insert(newDep->target, newDep);
|
||||||
t << _slnProjectBeg << _slnMSVCvcprojGUID << _slnProjectMid
|
|
||||||
<< "\"" << newDep->orig_target << "\", \"" << newDep->vcprojFile
|
|
||||||
<< "\", \"" << newDep->uuid << "\"";
|
|
||||||
t << _slnProjectEnd;
|
|
||||||
}
|
}
|
||||||
nextfile:
|
nextfile:
|
||||||
qmake_setpwd(oldpwd);
|
qmake_setpwd(oldpwd);
|
||||||
@ -634,6 +631,30 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
|
|||||||
QHash<QString, ProStringList> subdirProjectLookup;
|
QHash<QString, ProStringList> subdirProjectLookup;
|
||||||
collectDependencies(project, profileLookup, projGuids, extraSubdirs, solution_depends, solution_cleanup, t, subdirProjectLookup);
|
collectDependencies(project, profileLookup, projGuids, extraSubdirs, solution_depends, solution_cleanup, t, subdirProjectLookup);
|
||||||
|
|
||||||
|
// write out projects
|
||||||
|
for (QList<VcsolutionDepend*>::Iterator it = solution_cleanup.begin(); it != solution_cleanup.end(); ++it) {
|
||||||
|
t << _slnProjectBeg << _slnMSVCvcprojGUID << _slnProjectMid
|
||||||
|
<< "\"" << (*it)->orig_target << "\", \"" << (*it)->vcprojFile
|
||||||
|
<< "\", \"" << (*it)->uuid << "\"";
|
||||||
|
|
||||||
|
debug_msg(1, "Project %s has dependencies: %s", (*it)->target.toLatin1().constData(), (*it)->dependencies.join(" ").toLatin1().constData());
|
||||||
|
|
||||||
|
bool hasDependency = false;
|
||||||
|
for (QStringList::iterator dit = (*it)->dependencies.begin(); dit != (*it)->dependencies.end(); ++dit) {
|
||||||
|
if (VcsolutionDepend *vc = solution_depends[*dit]) {
|
||||||
|
if (!hasDependency) {
|
||||||
|
hasDependency = true;
|
||||||
|
t << _slnProjDepBeg;
|
||||||
|
}
|
||||||
|
t << "\n\t\t" << vc->uuid << " = " << vc->uuid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (hasDependency)
|
||||||
|
t << _slnProjDepEnd;
|
||||||
|
|
||||||
|
t << _slnProjectEnd;
|
||||||
|
}
|
||||||
|
|
||||||
t << _slnGlobalBeg;
|
t << _slnGlobalBeg;
|
||||||
|
|
||||||
QHashIterator<VcsolutionDepend *, QStringList> extraIt(extraSubdirs);
|
QHashIterator<VcsolutionDepend *, QStringList> extraIt(extraSubdirs);
|
||||||
@ -657,20 +678,9 @@ void VcprojGenerator::writeSubDirs(QTextStream &t)
|
|||||||
}
|
}
|
||||||
t << slnConf;
|
t << slnConf;
|
||||||
|
|
||||||
t << _slnProjDepBeg;
|
|
||||||
|
|
||||||
// Restore previous after_user_var options
|
// Restore previous after_user_var options
|
||||||
Option::globals->postcmds = old_after_vars;
|
Option::globals->postcmds = old_after_vars;
|
||||||
|
|
||||||
// Figure out dependencies
|
|
||||||
for(QList<VcsolutionDepend*>::Iterator it = solution_cleanup.begin(); it != solution_cleanup.end(); ++it) {
|
|
||||||
int cnt = 0;
|
|
||||||
for(QStringList::iterator dit = (*it)->dependencies.begin(); dit != (*it)->dependencies.end(); ++dit) {
|
|
||||||
if(VcsolutionDepend *vc = solution_depends[*dit])
|
|
||||||
t << "\n\t\t" << (*it)->uuid << "." << cnt++ << " = " << vc->uuid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
t << _slnProjDepEnd;
|
|
||||||
t << _slnProjConfBeg;
|
t << _slnProjConfBeg;
|
||||||
for(QList<VcsolutionDepend*>::Iterator it = solution_cleanup.begin(); it != solution_cleanup.end(); ++it) {
|
for(QList<VcsolutionDepend*>::Iterator it = solution_cleanup.begin(); it != solution_cleanup.end(); ++it) {
|
||||||
QString platform = is64Bit ? "x64" : "Win32";
|
QString platform = is64Bit ? "x64" : "Win32";
|
||||||
|
Loading…
Reference in New Issue
Block a user