diff --git a/source/dub/dub.d b/source/dub/dub.d index d9eface..3976a9a 100644 --- a/source/dub/dub.d +++ b/source/dub/dub.d @@ -1160,28 +1160,28 @@ } auto basepack = pack.basePackage; - foreach (dname, dspec; pack.dependencies) { - auto dbasename = getBasePackageName(dname); + foreach (d; pack.getAllDependencies()) { + auto dbasename = getBasePackageName(d.name); // detect dependencies to the root package (or sub packages thereof) if (dbasename == basepack.name) { - auto absdeppath = dspec.mapToPath(pack.path).path; + auto absdeppath = d.spec.mapToPath(pack.path).path; absdeppath.endsWithSlash = true; - auto subpack = m_dub.m_packageManager.getSubPackage(basepack, getSubPackageName(dname), true); + auto subpack = m_dub.m_packageManager.getSubPackage(basepack, getSubPackageName(d.name), true); if (subpack) { - auto desireddeppath = dname == dbasename ? basepack.path : subpack.path; + auto desireddeppath = d.name == dbasename ? basepack.path : subpack.path; desireddeppath.endsWithSlash = true; - enforce(dspec.path.empty || absdeppath == desireddeppath, + enforce(d.spec.path.empty || absdeppath == desireddeppath, format("Dependency from %s to root package references wrong path: %s vs. %s", node.pack, absdeppath.toNativeString(), desireddeppath.toNativeString())); } - ret ~= TreeNodes(dname, node.config); + ret ~= TreeNodes(d.name, node.config); continue; } DependencyType dt; - if (dspec.optional) { - if (dspec.default_) dt = DependencyType.optionalDefault; + if (d.spec.optional) { + if (d.spec.default_) dt = DependencyType.optionalDefault; else dt = DependencyType.optional; } else dt = DependencyType.required; @@ -1189,11 +1189,11 @@ // keep deselected dependencies deselected by default if (m_selectedVersions && !m_selectedVersions.bare && dt == DependencyType.optionalDefault) dt = DependencyType.optional; - ret ~= TreeNodes(dname, dspec.mapToPath(pack.path), dt); + ret ~= TreeNodes(d.name, d.spec.mapToPath(pack.path), dt); } else { // keep already selected optional dependencies if possible if (dt == DependencyType.optional) dt = DependencyType.optionalDefault; - ret ~= TreeNodes(dname, m_selectedVersions.getSelectedVersion(dbasename), dt); + ret ~= TreeNodes(d.name, m_selectedVersions.getSelectedVersion(dbasename), dt); } } return ret.data; diff --git a/source/dub/generators/visuald.d b/source/dub/generators/visuald.d index 6d6fbab..a7ace29 100644 --- a/source/dub/generators/visuald.d +++ b/source/dub/generators/visuald.d @@ -45,7 +45,7 @@ override void generateTargets(GeneratorSettings settings, in TargetInfo[string] targets) { - logDebug("About to generate projects for %s, with %s direct dependencies.", m_project.rootPackage.name, m_project.rootPackage.dependencies.length); + logDebug("About to generate projects for %s, with %s direct dependencies.", m_project.rootPackage.name, m_project.rootPackage.getAllDependencies().length); generateProjectFiles(settings, targets); generateSolutionFile(settings, targets); }