diff --git a/Source/Tools/Flax.Build/Build/Builder.Projects.cs b/Source/Tools/Flax.Build/Build/Builder.Projects.cs index 87c5b4d89..c4aac04f1 100644 --- a/Source/Tools/Flax.Build/Build/Builder.Projects.cs +++ b/Source/Tools/Flax.Build/Build/Builder.Projects.cs @@ -559,7 +559,7 @@ namespace Flax.Build foreach (var project in projects) { Log.Verbose(project.Name + " -> " + project.Path); - project.Generate(solutionPath); + project.Generate(solutionPath, project == mainSolutionProject); } } @@ -638,7 +638,7 @@ namespace Flax.Build using (new ProfileEventScope("GenerateProject")) { Log.Verbose("Project " + rulesProjectName + " -> " + project.Path); - dotNetProjectGenerator.GenerateProject(project, solutionPath); + dotNetProjectGenerator.GenerateProject(project, solutionPath, project == mainSolutionProject); } projects.Add(project); diff --git a/Source/Tools/Flax.Build/Projects/Project.cs b/Source/Tools/Flax.Build/Projects/Project.cs index 7cfe097b9..0f52ae7f5 100644 --- a/Source/Tools/Flax.Build/Projects/Project.cs +++ b/Source/Tools/Flax.Build/Projects/Project.cs @@ -253,9 +253,9 @@ namespace Flax.Build.Projects /// /// Generates the project. /// - public virtual void Generate(string solutionPath) + public virtual void Generate(string solutionPath, bool isMainProject) { - Generator.GenerateProject(this, solutionPath); + Generator.GenerateProject(this, solutionPath, isMainProject); } /// diff --git a/Source/Tools/Flax.Build/Projects/ProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/ProjectGenerator.cs index 673f2e7d6..fbbeca14d 100644 --- a/Source/Tools/Flax.Build/Projects/ProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/ProjectGenerator.cs @@ -52,7 +52,7 @@ namespace Flax.Build.Projects /// Generates the project. /// /// The project. - public abstract void GenerateProject(Project project, string solutionPath); + public abstract void GenerateProject(Project project, string solutionPath, bool isMainProject); /// /// Generates the solution. diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/CSProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/CSProjectGenerator.cs index c5359f66e..9aba45d75 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudio/CSProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudio/CSProjectGenerator.cs @@ -26,7 +26,7 @@ namespace Flax.Build.Projects.VisualStudio public override TargetType? Type => TargetType.DotNet; /// - public override void GenerateProject(Project project, string solutionPath) + public override void GenerateProject(Project project, string solutionPath, bool isMainProject) { var csProjectFileContent = new StringBuilder(); diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs index 9059cda94..4058f9cf1 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudio/CSSDKProjectGenerator.cs @@ -26,7 +26,7 @@ namespace Flax.Build.Projects.VisualStudio public override TargetType? Type => TargetType.DotNetCore; /// - public override void GenerateProject(Project project, string solutionPath) + public override void GenerateProject(Project project, string solutionPath, bool isMainProject) { var dotnetSdk = DotNetSdk.Instance; var csProjectFileContent = new StringBuilder(); @@ -109,8 +109,7 @@ namespace Flax.Build.Projects.VisualStudio //csProjectFileContent.AppendLine(" false"); // TODO: use it to reduce burden of framework libs - // Custom .targets file for overriding MSBuild build tasks, only invoke Flax.Build once per Flax project - bool isMainProject = Globals.Project.IsCSharpOnlyProject && Globals.Project.ProjectFolderPath == project.WorkspaceRootPath && project.Name != "BuildScripts" && (Globals.Project.Name != "Flax" || project.Name != "FlaxEngine"); + // Custom .targets file for overriding MSBuild build tasks, only invoke Flax.Build once per Flax project var flaxBuildTargetsFilename = isMainProject ? "Flax.Build.CSharp.targets" : "Flax.Build.CSharp.SkipBuild.targets"; var cacheProjectsPath = Utilities.MakePathRelativeTo(Path.Combine(Globals.Root, "Cache", "Projects"), projectDirectory); var flaxBuildTargetsPath = !string.IsNullOrEmpty(cacheProjectsPath) ? Path.Combine(cacheProjectsPath, flaxBuildTargetsFilename) : flaxBuildTargetsFilename; diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs index fabae2b86..6196ef6b5 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudio/VCProjectGenerator.cs @@ -55,7 +55,7 @@ namespace Flax.Build.Projects.VisualStudio } /// - public override void GenerateProject(Project project, string solutionPath) + public override void GenerateProject(Project project, string solutionPath, bool isMainProject) { var vcProjectFileContent = new StringBuilder(); var vcFiltersFileContent = new StringBuilder(); diff --git a/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs index cfc249a98..2ce66dfff 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudio/VisualStudioProjectGenerator.cs @@ -22,7 +22,7 @@ namespace Flax.Build.Projects.VisualStudio public override Guid ProjectTypeGuid => ProjectTypeGuids.Android; /// - public override void Generate(string solutionPath) + public override void Generate(string solutionPath, bool isMainProject) { // Try to reuse the existing project guid from existing files ProjectGuid = GetProjectGuid(Path, Name); diff --git a/Source/Tools/Flax.Build/Projects/VisualStudioCode/VisualStudioCodeProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/VisualStudioCode/VisualStudioCodeProjectGenerator.cs index 268bb87e1..367a081e3 100644 --- a/Source/Tools/Flax.Build/Projects/VisualStudioCode/VisualStudioCodeProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/VisualStudioCode/VisualStudioCodeProjectGenerator.cs @@ -38,7 +38,7 @@ namespace Flax.Build.Projects.VisualStudioCode } /// - public override void GenerateProject(Project project, string solutionPath) + public override void GenerateProject(Project project, string solutionPath, bool isMainProject) { // Not used, solution contains all projects definitions } diff --git a/Source/Tools/Flax.Build/Projects/XCodeProjectGenerator.cs b/Source/Tools/Flax.Build/Projects/XCodeProjectGenerator.cs index b8c31b252..5dba0cba1 100644 --- a/Source/Tools/Flax.Build/Projects/XCodeProjectGenerator.cs +++ b/Source/Tools/Flax.Build/Projects/XCodeProjectGenerator.cs @@ -42,7 +42,7 @@ namespace Flax.Build.Projects } /// - public override void GenerateProject(Project project, string solutionPath) + public override void GenerateProject(Project project, string solutionPath, bool isMainProject) { }