diff options
author | Jarek Kobus <jaroslaw.kobus@theqtcompany.com> | 2015-04-20 17:53:23 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@theqtcompany.com> | 2015-04-24 12:52:50 +0000 |
commit | 930cc36e499205c28f66f6fcae6ddc8946c4f697 (patch) | |
tree | 866167b307edd1bddd294f56db4281070032fca0 | |
parent | f80d02863a3da43ce4a5c37b2c187f21e4645a23 (diff) |
Add a missing warning about auto dependency on component with children
Change-Id: Ib17fb2d48059ecc5b7f3b466661aad8e9d6b4b33
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
-rw-r--r-- | src/libs/installer/componentchecker.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/libs/installer/componentchecker.cpp b/src/libs/installer/componentchecker.cpp index 381d0d1f5..0f4ec20e7 100644 --- a/src/libs/installer/componentchecker.cpp +++ b/src/libs/installer/componentchecker.cpp @@ -55,6 +55,7 @@ QStringList ComponentChecker::checkComponent(Component *component) const bool defaultPropertyScriptValue = component->variables().value(scDefault).compare(scScript, Qt::CaseInsensitive) == 0; const bool defaultPropertyValue = component->variables().value(scDefault).compare(scTrue, Qt::CaseInsensitive) == 0; const QStringList autoDependencies = component->autoDependencies(); + const QList<Component *> allComponents = core->components(PackageManagerCore::ComponentType::All); if (!autoDependencies.isEmpty()) { if (component->forcedInstallation()) { checkResult << QString::fromLatin1("Component %1 specifies \"ForcedInstallation\" property " @@ -77,7 +78,6 @@ QStringList ComponentChecker::checkComponent(Component *component) .arg(component->name()); } const QStringList dependencies = component->dependencies(); - const QList<Component *> allComponents = core->components(PackageManagerCore::ComponentType::All); foreach (const QString &dependency, dependencies) { Component *dependencyComponent = PackageManagerCore::componentByName( dependency, allComponents); @@ -114,16 +114,12 @@ QStringList ComponentChecker::checkComponent(Component *component) } } if (component->childCount()) { - const QStringList autoDependencies = component->autoDependencies(); if (!autoDependencies.isEmpty()) { checkResult << QString::fromLatin1("Component %1 auto depends on other components " "while having children components. This will not work properly.") .arg(component->name()); } - // TODO: search also for components which autodepend on "component" - // (something like core->autodependees(component)) - if (!component->dependencies().isEmpty()) { checkResult << QString::fromLatin1("Component %1 depends on other components " "while having children components. This will not work properly.") @@ -136,6 +132,15 @@ QStringList ComponentChecker::checkComponent(Component *component) .arg(component->name()); } } + foreach (const QString &autoDependency, autoDependencies) { + Component *autoDependencyComponent = PackageManagerCore::componentByName( + autoDependency, allComponents); + if (autoDependencyComponent && autoDependencyComponent->childCount()) { + checkResult << QString::fromLatin1("Component %1 auto depends on component %2 " + "which has children components. This will not work properly.") + .arg(component->name(), autoDependencyComponent->name()); + } + } } return checkResult; |