diff --git a/source/dub/project.d b/source/dub/project.d index 2afcdd2..f71da6e 100644 --- a/source/dub/project.d +++ b/source/dub/project.d @@ -245,16 +245,18 @@ logDiagnostic("Error getting sub package %s: %s", name, e.msg); continue; } - } else { - if (!m_selections.hasSelectedVersion(basename)) { - logDiagnostic("Version selection for dependency %s (%s) of %s is missing.", - basename, name, pack.name); - continue; - } - + } else if (m_selections.hasSelectedVersion(basename)) { vspec = m_selections.getSelectedVersion(basename); - p = m_packageManager.getBestPackage(name, vspec); + } else if (m_dependencies.canFind!(d => getBasePackageName(d.name) == basename)) { + auto idx = m_dependencies.countUntil!(d => getBasePackageName(d.name) == basename); + auto bp = m_dependencies[idx].basePackage; + vspec = Dependency(bp.path); + p = m_packageManager.getSubPackage(bp, getSubPackageName(name), false); + } else { + logDiagnostic("Version selection for dependency %s (%s) of %s is missing.", + basename, name, pack.name); + continue; } }