public override async Task<IProject> Generate(ISolution solution, string name)
{
var shell = IoC.Get<IShell>();
var project = await base.Generate(solution, name);
project.ToolChain = shell.ToolChains.FirstOrDefault(tc => tc is LocalGCCToolchain);
project.ToolChain.ProvisionSettings(project);
project.Debugger = shell.Debuggers.FirstOrDefault(db => db is LocalDebugAdaptor);
var code = new StringBuilder();
code.AppendLine("#include <stdio.h>");
code.AppendLine();
code.AppendLine("int main (void)");
code.AppendLine("{");
code.AppendLine(" printf(\"Hello World\");");
code.AppendLine(" return 0;");
code.AppendLine("}");
code.AppendLine();
await SourceFile.Create(project, "main.cpp", code.ToString());
project.Save();
return project;
}
}