diff --git a/source/dub/package_.d b/source/dub/package_.d index 239c881..b5d7de5 100644 --- a/source/dub/package_.d +++ b/source/dub/package_.d @@ -119,7 +119,10 @@ } // parse the JSON description - m_info.parseJson(packageInfo); + { + scope(failure) logError("Failed to parse package description in %s", root.toNativeString()); + m_info.parseJson(packageInfo); + } // generate default configurations if none are defined if( m_info.configurations.length == 0 ){ diff --git a/source/dub/project.d b/source/dub/project.d index cdc0fe2..d9159ca 100644 --- a/source/dub/project.d +++ b/source/dub/project.d @@ -139,8 +139,8 @@ /// Rereads the applications state. void reinit() { scope(failure){ - logDebug("Failed to parse package.json. Assuming defaults."); - m_main = new Package(serializeToJson(["name": ""]), InstallLocation.local, m_root); + logDebug("Failed to initialize project. Assuming defaults."); + m_main = new Package(serializeToJson(["name": "unknown"]), InstallLocation.local, m_root); } m_dependencies = null; @@ -207,7 +207,7 @@ auto pconf = configs[p.name]; foreach(dn; p.dependencies.byKey){ auto dep = getDependency(dn); - auto conf = p.getSubConfiguration(config, dep, platform); + auto conf = p.getSubConfiguration(pconf, dep, platform); if( !conf.empty ){ if( auto pc = dn in configs ){ enforce(*pc == conf, format("Conflicting configurations detected for %s: %s vs. %s", dn, *pc, conf));