summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;