Support generating multiple project formats at once

This commit is contained in:
GoaLitiuM
2021-03-02 17:35:52 +02:00
parent 9c80354acf
commit 8ccb4f5857

View File

@@ -156,18 +156,34 @@ namespace Flax.Build
using (new ProfileEventScope("GenerateProjects"))
{
// Pick the project format
ProjectFormat projectFormat = Platform.BuildPlatform.DefaultProjectFormat;
if (Configuration.ProjectFormatVS2019)
projectFormat = ProjectFormat.VisualStudio2019;
else if (Configuration.ProjectFormatVS2017)
projectFormat = ProjectFormat.VisualStudio2017;
else if (Configuration.ProjectFormatVS2015)
projectFormat = ProjectFormat.VisualStudio2015;
else if (Configuration.ProjectFormatVSCode)
projectFormat = ProjectFormat.VisualStudioCode;
else if (!string.IsNullOrEmpty(Configuration.ProjectFormatCustom))
projectFormat = ProjectFormat.Custom;
List<ProjectFormat> projectFormats = new List<ProjectFormat>();
if (Configuration.ProjectFormatVS2019)
projectFormats.Add(ProjectFormat.VisualStudio2019);
if (Configuration.ProjectFormatVS2017)
projectFormats.Add(ProjectFormat.VisualStudio2017);
if (Configuration.ProjectFormatVS2015)
projectFormats.Add(ProjectFormat.VisualStudio2015);
if (Configuration.ProjectFormatVSCode)
projectFormats.Add(ProjectFormat.VisualStudioCode);
if (!string.IsNullOrEmpty(Configuration.ProjectFormatCustom))
projectFormats.Add(ProjectFormat.Custom);
if (projectFormats.Count == 0)
projectFormats.Add(Platform.BuildPlatform.DefaultProjectFormat);
foreach (ProjectFormat projectFormat in projectFormats)
GenerateProject(projectFormat);
}
}
/// <summary>
/// Generates project files for the specified format.
/// </summary>
public static void GenerateProject(ProjectFormat projectFormat)
{
using (new ProfileEventScope("GenerateProject" + projectFormat.ToString()))
{
// Setup
var rules = GenerateRulesAssembly();
var rootProject = Globals.Project;