diff --git a/source/dub/generators/visuald.d b/source/dub/generators/visuald.d index 782baa4..5cffe3f 100644 --- a/source/dub/generators/visuald.d +++ b/source/dub/generators/visuald.d @@ -212,7 +212,7 @@ SourceFile sf; sf.pkg = pack.name; sf.filePath = sp.relativeTo(project_file_dir); - sf.structurePath = Path(pack.name) ~ sp.relativeTo(pack.path); + sf.structurePath = Path(getPackageFileName(pack)) ~ sp.relativeTo(pack.path); sourceFiles[sf] = true; } } @@ -236,7 +236,7 @@ } // Create folders and files - ret.formattedWrite("\n ", pack.name); + ret.formattedWrite("\n ", getPackageFileName(pack)); Path lastFolder; foreach(source; sortedSources(sourceFiles.keys)) { logTrace("source looking at %s", source.structurePath); @@ -263,7 +263,7 @@ ret.put("\n "); ret.put("\n \n"); - logTrace("About to write to '%s.visualdproj' file %s bytes", pack.name, ret.data().length); + logTrace("About to write to '%s.visualdproj' file %s bytes", getPackageFileName(pack), ret.data().length); auto proj = openFile(projFileName(pack), FileMode.CreateTrunc); scope(exit) proj.close(); proj.put(ret.data()); @@ -347,7 +347,7 @@ uint ndummy = 0; foreach (i; 0 .. relpackpath.length) if (relpackpath[i] == "..") ndummy++; - string intersubdir = (ndummy*2 > relpackpath.length ? replicate("dummy/", ndummy*2-relpackpath.length) : "") ~ pack.name; + string intersubdir = (ndummy*2 > relpackpath.length ? replicate("dummy/", ndummy*2-relpackpath.length) : "") ~ getPackageFileName(pack); // Not yet dynamic stuff ret.formattedWrite(" @@ -479,14 +479,14 @@ } auto solutionFileName() const { - version(DUBBING) return m_app.mainPackage().name ~ ".dubbed.sln"; - else return m_app.mainPackage().name ~ ".sln"; + version(DUBBING) return getPackageFileName(m_app.mainPackage()) ~ ".dubbed.sln"; + else return getPackageFileName(m_app.mainPackage()) ~ ".sln"; } Path projFileName(ref const Package pack) const { auto basepath = Path(".");//Path(".dub/"); - version(DUBBING) return basepath ~ (pack.name ~ ".dubbed.visualdproj"); - else return basepath ~ (pack.name ~ ".visualdproj"); + version(DUBBING) return basepath ~ (getPackageFileName(pack) ~ ".dubbed.visualdproj"); + else return basepath ~ (getPackageFileName(pack) ~ ".visualdproj"); } } @@ -547,3 +547,8 @@ assert(sortedSfs[5].structurePath == Path("b/file.d"), "6"); } } + +private string getPackageFileName(in Package pack) +{ + return pack.name.replace(":", "_"); +} \ No newline at end of file diff --git a/source/dub/package_.d b/source/dub/package_.d index be1a467..097ce5d 100644 --- a/source/dub/package_.d +++ b/source/dub/package_.d @@ -193,7 +193,7 @@ BuildSettings ret; m_info.buildSettings.getPlatformSettings(ret, platform, this.path); conf.buildSettings.getPlatformSettings(ret, platform, this.path); - if( ret.targetName.empty ) ret.targetName = this.name; + if( ret.targetName.empty ) ret.targetName = this.name.replace(":", "_"); return ret; } assert(false, "Unknown configuration for "~m_info.name~": "~config);