in Sharpmake.Application/Program.cs [558:619]
public static void LogWriteGenerateResults(IDictionary<Type, GenerationOutput> outputs)
{
var projects = outputs.Where(o => typeof(Project).IsAssignableFrom(o.Key));
var solutions = outputs.Where(o => typeof(Solution).IsAssignableFrom(o.Key));
var others = outputs.Where(o => ((!typeof(Project).IsAssignableFrom(o.Key)) && (!typeof(Solution).IsAssignableFrom(o.Key))));
var generatedProjectFiles = new List<string>(projects.SelectMany(o => o.Value.Generated));
var skippedProjectFiles = new List<string>(projects.SelectMany(o => o.Value.Skipped));
var generatedSolutionFiles = new List<string>(solutions.SelectMany(o => o.Value.Generated));
var skippedSolutionFiles = new List<string>(solutions.SelectMany(o => o.Value.Skipped));
var generatedOtherFiles = new List<string>(others.SelectMany(o => o.Value.Generated));
var skippedOtherFiles = new List<string>(others.SelectMany(o => o.Value.Skipped));
if (generatedProjectFiles.Count != 0)
{
LogWriteLine(" " + generatedProjectFiles.Count + " project" + (generatedProjectFiles.Count > 1 ? "s" : "") + " generated:");
generatedProjectFiles.Sort();
foreach (string file in generatedProjectFiles)
LogWriteLine(" {0}", file);
}
if (generatedSolutionFiles.Count != 0)
{
LogWriteLine(" " + generatedSolutionFiles.Count + " solution" + (generatedSolutionFiles.Count > 1 ? "s" : "") + " generated:");
generatedSolutionFiles.Sort();
foreach (string file in generatedSolutionFiles)
LogWriteLine(" {0}", file);
}
if (Project.FastBuildMasterGeneratedFiles.Count > 0)
{
LogWriteLine(" " + Project.FastBuildMasterGeneratedFiles.Count + " fastbuild master bff generated:");
Project.FastBuildMasterGeneratedFiles.Sort();
foreach (string file in Project.FastBuildMasterGeneratedFiles)
LogWriteLine(" {0}", file);
}
if (generatedOtherFiles.Count != 0)
{
LogWriteLine(" " + generatedOtherFiles.Count + " other file" + (generatedOtherFiles.Count > 1 ? "s" : "") + " generated:");
generatedOtherFiles.Sort();
foreach (string file in generatedOtherFiles)
LogWriteLine(" {0}", file);
}
LogWriteLine(" Results:");
if (generatedProjectFiles.Count > 0 || skippedProjectFiles.Count > 0)
{
LogWriteLine(" projects ({0,5} configurations) {1,5} generated, {2,5} up-to-date", Project.Configuration.Count, generatedProjectFiles.Count, skippedProjectFiles.Count);
if (Project.FastBuildGeneratedFileCount > 0 || Project.FastBuildUpToDateFileCount > 0)
LogWriteLine(" fastbuild {0,5} generated, {1,5} up-to-date", Project.FastBuildGeneratedFileCount, Project.FastBuildUpToDateFileCount);
}
if (generatedSolutionFiles.Count > 0 || skippedSolutionFiles.Count > 0)
LogWriteLine(" solutions ({0,5} configurations) {1,5} generated, {2,5} up-to-date", Solution.Configuration.Count, generatedSolutionFiles.Count, skippedSolutionFiles.Count);
if (Project.BlobGenerated > 0 || Project.BlobUpdateToDate > 0)
LogWriteLine(" blobs {0,5} generated, {1,5} up-to-date", Project.BlobGenerated, Project.BlobUpdateToDate);
if (generatedOtherFiles.Count > 0 || skippedOtherFiles.Count > 0)
LogWriteLine(" other files {0,5} generated, {1,5} up-to-date", generatedOtherFiles.Count, skippedOtherFiles.Count);
}