From 8ccb4f58579e2ef381ab9f23ee8ff111a24df855 Mon Sep 17 00:00:00 2001 From: GoaLitiuM Date: Tue, 2 Mar 2021 17:35:52 +0200 Subject: [PATCH] Support generating multiple project formats at once --- .../Flax.Build/Build/Builder.Projects.cs | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/Source/Tools/Flax.Build/Build/Builder.Projects.cs b/Source/Tools/Flax.Build/Build/Builder.Projects.cs index 2055e698d..b9ae1e319 100644 --- a/Source/Tools/Flax.Build/Build/Builder.Projects.cs +++ b/Source/Tools/Flax.Build/Build/Builder.Projects.cs @@ -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 projectFormats = new List(); + 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); + } + } + + /// + /// Generates project files for the specified format. + /// + public static void GenerateProject(ProjectFormat projectFormat) + { + using (new ProfileEventScope("GenerateProject" + projectFormat.ToString())) + { // Setup var rules = GenerateRulesAssembly(); var rootProject = Globals.Project;