diff --git a/source/dub/project.d b/source/dub/project.d index a6a6ba31e1..eb59e8ee30 100644 --- a/source/dub/project.d +++ b/source/dub/project.d @@ -162,12 +162,12 @@ class Project { auto cfg = configs.get(p.name, null); PackageDependency[] deps; - if (!configs) deps = p.getAllDependencies(); + if (!cfg.length) deps = p.getAllDependencies(); else { auto depmap = p.getDependencies(cfg); deps = depmap.keys.map!(k => PackageDependency(k, depmap[k])).array; - deps.sort!((a, b) => a.name < b.name); } + deps.sort!((a, b) => a.name < b.name); foreach (d; deps) { auto dependency = getDependency(d.name, true); @@ -301,14 +301,14 @@ class Project { p = m_rootPackage.basePackage; } else if (basename == m_rootPackage.basePackage.name) { vspec = Dependency(m_rootPackage.version_); - try p = m_packageManager.getSubPackage(m_rootPackage.basePackage, getSubPackageName(name), false); + try p = m_packageManager.getSubPackage(m_rootPackage.basePackage, getSubPackageName(dep.name), false); catch (Exception e) { - logDiagnostic("%sError getting sub package %s: %s", indent, name, e.msg); + logDiagnostic("%sError getting sub package %s: %s", indent, dep.name, e.msg); continue; } } else if (m_selections.hasSelectedVersion(basename)) { vspec = m_selections.getSelectedVersion(basename); - if (vspec.path.empty) p = m_packageManager.getBestPackage(name, vspec); + if (vspec.path.empty) p = m_packageManager.getBestPackage(dep.name, vspec); else { auto path = vspec.path; if (!path.absolute) path = m_rootPackage.path ~ path; @@ -318,10 +318,10 @@ class Project { 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); + p = m_packageManager.getSubPackage(bp, getSubPackageName(dep.name), false); } else { logDiagnostic("%sVersion selection for dependency %s (%s) of %s is missing.", - indent, basename, name, pack.name); + indent, basename, dep.name, pack.name); } if (!p && !vspec.path.empty) { @@ -330,29 +330,29 @@ class Project { logDiagnostic("%sAdding local %s", indent, path); p = m_packageManager.getOrLoadPackage(path, Path.init, true); if (p.parentPackage !is null) { - logWarn("%sSub package %s must be referenced using the path to it's parent package.", indent, name); + logWarn("%sSub package %s must be referenced using the path to it's parent package.", indent, dep.name); p = p.parentPackage; } - if (name.canFind(':')) p = m_packageManager.getSubPackage(p, getSubPackageName(name), false); - enforce(p.name == name, + if (dep.name.canFind(':')) p = m_packageManager.getSubPackage(p, getSubPackageName(dep.name), false); + enforce(p.name == dep.name, format("Path based dependency %s is referenced with a wrong name: %s vs. %s", - path.toNativeString(), name, p.name)); + path.toNativeString(), dep.name, p.name)); } if (!p) { - logDiagnostic("%sMissing dependency %s %s of %s", indent, name, vspec, pack.name); + logDiagnostic("%sMissing dependency %s %s of %s", indent, dep.name, vspec, pack.name); continue; } if (!m_dependencies.canFind(p)) { - logDiagnostic("%sFound dependency %s %s", indent, name, vspec.toString()); + logDiagnostic("%sFound dependency %s %s", indent, dep.name, vspec.toString()); m_dependencies ~= p; p.warnOnSpecialCompilerFlags(); collectDependenciesRec(p, depth+1); } m_dependees[p] ~= pack; - //enforce(p !is null, "Failed to resolve dependency "~name~" "~vspec.toString()); + //enforce(p !is null, "Failed to resolve dependency "~dep.name~" "~vspec.toString()); } } collectDependenciesRec(m_rootPackage);