summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/componentchecker.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@theqtcompany.com>2015-04-20 17:53:23 +0200
committerJarek Kobus <jaroslaw.kobus@theqtcompany.com>2015-04-24 12:52:50 +0000
commit930cc36e499205c28f66f6fcae6ddc8946c4f697 (patch)
tree866167b307edd1bddd294f56db4281070032fca0 /src/libs/installer/componentchecker.cpp
parentf80d02863a3da43ce4a5c37b2c187f21e4645a23 (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>
Diffstat (limited to 'src/libs/installer/componentchecker.cpp')
-rw-r--r--src/libs/installer/componentchecker.cpp15
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;