private static Project[] BuildProjects(out FileVersionInfo apiVersion, out Project[] allProjects)
{
CommandLine.WriteLine("{{white}} =======================================");
CommandLine.WriteLine("{{white}} Building the Projects");
CommandLine.WriteLine("{{white}} =======================================");
var projects = new List<Project>();
Project baseApi = new Project(Default.Combine("Src", "GoogleApis", "GoogleApis.csproj"));
Project baseApiSilverlight = new Project(Default.Combine("Src", "GoogleApis", "GoogleApis.Silverlight.csproj"));
Project codegen = new Project(Default.Combine("Src", "GoogleApis.Tools.CodeGen", "GoogleApis.Tools.CodeGen.csproj"));
Project oauth2 = new Project(Default.Combine("Src", "GoogleApis.Authentication.OAuth2", "GoogleApis.Authentication.OAuth2.csproj"));
Project generator = new Project(Default.Combine("GoogleApis.Tools.ServiceGenerator", "GoogleApis.Tools.ServiceGenerator.csproj"));
var releaseProjects = new[] { baseApi, baseApiSilverlight, codegen, oauth2, generator };
projects.AddRange(releaseProjects);
projects.Add(new Project(Default.Combine("Src", "GoogleApis.Tests.Utility", "GoogleApis.Tests.Utility.csproj")));
projects.Add(new Project(Default.Combine("Src", "GoogleApis.Tests", "GoogleApis.Tests.csproj")));
projects.Add(new Project(Default.Combine("Src", "GoogleApis.Tools.CodeGen.Tests", "GoogleApis.Tools.CodeGen.Tests.csproj")));
projects.Add(new Project(Default.Combine("Src", "GoogleApis.Authentication.OAuth2.Tests", "GoogleApis.Authentication.OAuth2.Tests.csproj")));
projects.Add(new Project(Default.Combine("GoogleApis.Tools.CodeGen.IntegrationTests", "GoogleApis.Tools.CodeGen.IntegrationTests.csproj")));
foreach (Project proj in projects)
{
proj.RunBuildTask();
if (!releaseProjects.Contains(proj)) // If this assembly may contain tests, then run them.
{
RunUnitTest(proj.BinaryFile);
}
}
CommandLine.WriteLine();
apiVersion = FileVersionInfo.GetVersionInfo(baseApi.BinaryFile);
allProjects = projects.ToArray();
return releaseProjects;
}