From ad86d31cd2b8ed279c79106e4143424facea0622 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 2 May 2018 11:35:38 +0200 Subject: When using Depends.productTypes, skip disabled products Obviously, when using such "wildcard" dependencies, we are only interested in matching products that are actually present. This amends 704b5fa7e8. Change-Id: I9e5c26a5eb32b4a714a28140077e58b24181a6ab Reviewed-by: Joerg Bornemann --- src/lib/corelib/language/moduleloader.cpp | 7 +++++-- .../product-dependencies-by-type/product-dependencies-by-type.qbs | 6 ++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index 466707a79..b1ecbebf6 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -2387,9 +2387,12 @@ void ModuleLoader::resolveDependsItem(DependsContext *dependsContext, Item *pare } Item::Module result; + bool productTypesIsSet; + m_evaluator->stringValue(dependsItem, StringConstants::productTypesProperty(), + QString(), &productTypesIsSet); for (const QualifiedId &moduleName : qAsConst(moduleNames)) { - const bool isRequired = m_evaluator->boolValue(dependsItem, - StringConstants::requiredProperty()) + const bool isRequired = !productTypesIsSet + && m_evaluator->boolValue(dependsItem, StringConstants::requiredProperty()) && !contains(m_requiredChain, false); const Version minVersion = Version::fromString( m_evaluator->stringValue(dependsItem, diff --git a/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs b/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs index d6cba15dd..73c9c695d 100644 --- a/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs +++ b/tests/auto/blackbox/testdata/product-dependencies-by-type/product-dependencies-by-type.qbs @@ -24,6 +24,12 @@ Project { name: "app3" files: "main.cpp" } + CppApplication { + condition: false + consoleApplication: true + name: "disabled-app" + files: "main.cpp" + } DynamicLibrary { Depends { name: "cpp" } -- cgit v1.2.3