* Rebuildt Prebuild.exe to fix vs2008 not creating Solution
* Wrapped solution streamwrites in using for great justice0.6.0-stable
parent
0fc57de7de
commit
c0d69d0ec7
|
@ -719,98 +719,99 @@ namespace Prebuild.Core.Targets
|
||||||
|
|
||||||
kernel.Log.Write("");
|
kernel.Log.Write("");
|
||||||
string solutionFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
|
string solutionFile = Helper.MakeFilePath(solution.FullPath, solution.Name, "sln");
|
||||||
StreamWriter ss = new StreamWriter(solutionFile);
|
using (StreamWriter ss = new StreamWriter(solutionFile))
|
||||||
|
|
||||||
kernel.CurrentWorkingDirectory.Push();
|
|
||||||
Helper.SetCurrentDir(Path.GetDirectoryName(solutionFile));
|
|
||||||
|
|
||||||
using (ss)
|
|
||||||
{
|
{
|
||||||
ss.WriteLine("Microsoft Visual Studio Solution File, Format Version {0}", this.SolutionVersion);
|
kernel.CurrentWorkingDirectory.Push();
|
||||||
ss.WriteLine(SolutionTag);
|
Helper.SetCurrentDir(Path.GetDirectoryName(solutionFile));
|
||||||
foreach (ProjectNode project in solution.Projects)
|
|
||||||
|
using (ss)
|
||||||
{
|
{
|
||||||
if (!tools.ContainsKey(project.Language))
|
ss.WriteLine("Microsoft Visual Studio Solution File, Format Version {0}", this.SolutionVersion);
|
||||||
|
ss.WriteLine(SolutionTag);
|
||||||
|
foreach (ProjectNode project in solution.Projects)
|
||||||
{
|
{
|
||||||
throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
|
if (!tools.ContainsKey(project.Language))
|
||||||
}
|
|
||||||
|
|
||||||
ToolInfo toolInfo = (ToolInfo)tools[project.Language];
|
|
||||||
|
|
||||||
string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
|
|
||||||
ss.WriteLine("Project(\"{0}\") = \"{1}\", \"{2}\", \"{{{3}}}\"",
|
|
||||||
toolInfo.Guid, project.Name, Helper.MakeFilePath(path, project.Name,
|
|
||||||
toolInfo.FileExtension), project.Guid.ToString().ToUpper());
|
|
||||||
|
|
||||||
//ss.WriteLine(" ProjectSection(ProjectDependencies) = postProject");
|
|
||||||
//ss.WriteLine(" EndProjectSection");
|
|
||||||
|
|
||||||
ss.WriteLine("EndProject");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (solution.Files != null)
|
|
||||||
{
|
|
||||||
ss.WriteLine("Project(\"{0}\") = \"Solution Items\", \"Solution Items\", \"{1}\"", "{2150E333-8FDC-42A3-9474-1A3956D46DE8}", "{468F1D07-AD17-4CC3-ABD0-2CA268E4E1A6}");
|
|
||||||
ss.WriteLine("\tProjectSection(SolutionItems) = preProject");
|
|
||||||
foreach (string file in solution.Files)
|
|
||||||
ss.WriteLine("\t\t{0} = {0}", file);
|
|
||||||
ss.WriteLine("\tEndProjectSection");
|
|
||||||
ss.WriteLine("EndProject");
|
|
||||||
}
|
|
||||||
|
|
||||||
ss.WriteLine("Global");
|
|
||||||
|
|
||||||
ss.WriteLine(" GlobalSection(SolutionConfigurationPlatforms) = preSolution");
|
|
||||||
foreach (ConfigurationNode conf in solution.Configurations)
|
|
||||||
{
|
|
||||||
ss.WriteLine(" {0}|Any CPU = {0}|Any CPU", conf.Name);
|
|
||||||
}
|
|
||||||
ss.WriteLine(" EndGlobalSection");
|
|
||||||
|
|
||||||
if (solution.Projects.Count > 1)
|
|
||||||
{
|
|
||||||
ss.WriteLine(" GlobalSection(ProjectDependencies) = postSolution");
|
|
||||||
}
|
|
||||||
foreach (ProjectNode project in solution.Projects)
|
|
||||||
{
|
|
||||||
for (int i = 0; i < project.References.Count; i++)
|
|
||||||
{
|
|
||||||
ReferenceNode refr = (ReferenceNode)project.References[i];
|
|
||||||
if (solution.ProjectsTable.ContainsKey(refr.Name))
|
|
||||||
{
|
{
|
||||||
ProjectNode refProject = (ProjectNode)solution.ProjectsTable[refr.Name];
|
throw new UnknownLanguageException("Unknown .NET language: " + project.Language);
|
||||||
ss.WriteLine(" ({{{0}}}).{1} = ({{{2}}})",
|
|
||||||
project.Guid.ToString().ToUpper()
|
|
||||||
, i,
|
|
||||||
refProject.Guid.ToString().ToUpper()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ToolInfo toolInfo = (ToolInfo)tools[project.Language];
|
||||||
|
|
||||||
|
string path = Helper.MakePathRelativeTo(solution.FullPath, project.FullPath);
|
||||||
|
ss.WriteLine("Project(\"{0}\") = \"{1}\", \"{2}\", \"{{{3}}}\"",
|
||||||
|
toolInfo.Guid, project.Name, Helper.MakeFilePath(path, project.Name,
|
||||||
|
toolInfo.FileExtension), project.Guid.ToString().ToUpper());
|
||||||
|
|
||||||
|
//ss.WriteLine(" ProjectSection(ProjectDependencies) = postProject");
|
||||||
|
//ss.WriteLine(" EndProjectSection");
|
||||||
|
|
||||||
|
ss.WriteLine("EndProject");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (solution.Projects.Count > 1)
|
if (solution.Files != null)
|
||||||
{
|
{
|
||||||
ss.WriteLine(" EndGlobalSection");
|
ss.WriteLine("Project(\"{0}\") = \"Solution Items\", \"Solution Items\", \"{1}\"", "{2150E333-8FDC-42A3-9474-1A3956D46DE8}", "{468F1D07-AD17-4CC3-ABD0-2CA268E4E1A6}");
|
||||||
}
|
ss.WriteLine("\tProjectSection(SolutionItems) = preProject");
|
||||||
ss.WriteLine(" GlobalSection(ProjectConfigurationPlatforms) = postSolution");
|
foreach (string file in solution.Files)
|
||||||
foreach (ProjectNode project in solution.Projects)
|
ss.WriteLine("\t\t{0} = {0}", file);
|
||||||
{
|
ss.WriteLine("\tEndProjectSection");
|
||||||
|
ss.WriteLine("EndProject");
|
||||||
|
}
|
||||||
|
|
||||||
|
ss.WriteLine("Global");
|
||||||
|
|
||||||
|
ss.WriteLine(" GlobalSection(SolutionConfigurationPlatforms) = preSolution");
|
||||||
foreach (ConfigurationNode conf in solution.Configurations)
|
foreach (ConfigurationNode conf in solution.Configurations)
|
||||||
{
|
{
|
||||||
ss.WriteLine(" {{{0}}}.{1}|Any CPU.ActiveCfg = {1}|Any CPU",
|
ss.WriteLine(" {0}|Any CPU = {0}|Any CPU", conf.Name);
|
||||||
project.Guid.ToString().ToUpper(),
|
|
||||||
conf.Name);
|
|
||||||
|
|
||||||
ss.WriteLine(" {{{0}}}.{1}|Any CPU.Build.0 = {1}|Any CPU",
|
|
||||||
project.Guid.ToString().ToUpper(),
|
|
||||||
conf.Name);
|
|
||||||
}
|
}
|
||||||
}
|
ss.WriteLine(" EndGlobalSection");
|
||||||
ss.WriteLine(" EndGlobalSection");
|
|
||||||
ss.WriteLine(" GlobalSection(SolutionProperties) = preSolution");
|
|
||||||
ss.WriteLine(" HideSolutionNode = FALSE");
|
|
||||||
ss.WriteLine(" EndGlobalSection");
|
|
||||||
|
|
||||||
ss.WriteLine("EndGlobal");
|
if (solution.Projects.Count > 1)
|
||||||
|
{
|
||||||
|
ss.WriteLine(" GlobalSection(ProjectDependencies) = postSolution");
|
||||||
|
}
|
||||||
|
foreach (ProjectNode project in solution.Projects)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < project.References.Count; i++)
|
||||||
|
{
|
||||||
|
ReferenceNode refr = (ReferenceNode)project.References[i];
|
||||||
|
if (solution.ProjectsTable.ContainsKey(refr.Name))
|
||||||
|
{
|
||||||
|
ProjectNode refProject = (ProjectNode)solution.ProjectsTable[refr.Name];
|
||||||
|
ss.WriteLine(" ({{{0}}}).{1} = ({{{2}}})",
|
||||||
|
project.Guid.ToString().ToUpper()
|
||||||
|
, i,
|
||||||
|
refProject.Guid.ToString().ToUpper()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (solution.Projects.Count > 1)
|
||||||
|
{
|
||||||
|
ss.WriteLine(" EndGlobalSection");
|
||||||
|
}
|
||||||
|
ss.WriteLine(" GlobalSection(ProjectConfigurationPlatforms) = postSolution");
|
||||||
|
foreach (ProjectNode project in solution.Projects)
|
||||||
|
{
|
||||||
|
foreach (ConfigurationNode conf in solution.Configurations)
|
||||||
|
{
|
||||||
|
ss.WriteLine(" {{{0}}}.{1}|Any CPU.ActiveCfg = {1}|Any CPU",
|
||||||
|
project.Guid.ToString().ToUpper(),
|
||||||
|
conf.Name);
|
||||||
|
|
||||||
|
ss.WriteLine(" {{{0}}}.{1}|Any CPU.Build.0 = {1}|Any CPU",
|
||||||
|
project.Guid.ToString().ToUpper(),
|
||||||
|
conf.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ss.WriteLine(" EndGlobalSection");
|
||||||
|
ss.WriteLine(" GlobalSection(SolutionProperties) = preSolution");
|
||||||
|
ss.WriteLine(" HideSolutionNode = FALSE");
|
||||||
|
ss.WriteLine(" EndGlobalSection");
|
||||||
|
|
||||||
|
ss.WriteLine("EndGlobal");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kernel.CurrentWorkingDirectory.Pop();
|
kernel.CurrentWorkingDirectory.Pop();
|
||||||
|
|
BIN
bin/Prebuild.exe
BIN
bin/Prebuild.exe
Binary file not shown.
Loading…
Reference in New Issue