diff --git a/source/dub/packagemanager.d b/source/dub/packagemanager.d index e2473a3..427742b 100644 --- a/source/dub/packagemanager.d +++ b/source/dub/packagemanager.d @@ -108,6 +108,16 @@ return null; } + Package getPackage(Path path) + { + foreach (p; getPackageIterator()) + if (!p.basePackage && p.path == path) + return p; + auto p = new Package(path); + m_temporaryPackages ~= p; + return p; + } + Package getBestPackage(string name, string version_spec) { return getBestPackage(name, new Dependency(version_spec)); diff --git a/source/dub/project.d b/source/dub/project.d index 76abe55..aa1b7db 100644 --- a/source/dub/project.d +++ b/source/dub/project.d @@ -168,7 +168,7 @@ return; } - m_main = new Package(m_root); + m_main = m_packageManager.getPackage(m_root); m_main.warnOnSpecialCompilerFlags(); if (m_main.name != m_main.name.toLower()) { logWarn(`DUB package names should always be lower case, please change to {"name": "%s"}. You can use {"targetName": "%s"} to keep the current executable name.`,