From dcec7de1ff005306e1560e1b78e6a4b1fbb8024f Mon Sep 17 00:00:00 2001 From: goat Date: Sat, 29 Jun 2024 15:29:57 +0200 Subject: [PATCH] Reapply "emit compiler generated files for docs builds" This reverts commit 51e3db55b3b0bed4541d34f208726b2f2a97b3ef. --- .nuke/build.schema.json | 4 ++++ build/DalamudBuild.cs | 28 +++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index c19388eea..497f2b89a 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -43,6 +43,10 @@ "VSCode" ] }, + "IsDocsBuild": { + "type": "boolean", + "description": "Whether we are building for documentation - emits generated files" + }, "NoLogo": { "type": "boolean", "description": "Disables displaying the NUKE logo" diff --git a/build/DalamudBuild.cs b/build/DalamudBuild.cs index c8c118c31..d704d54e0 100644 --- a/build/DalamudBuild.cs +++ b/build/DalamudBuild.cs @@ -7,6 +7,7 @@ using Nuke.Common.IO; using Nuke.Common.ProjectModel; using Nuke.Common.Tools.DotNet; using Nuke.Common.Tools.MSBuild; +using Serilog; [UnsetVisualStudioEnvironmentVariables] public class DalamudBuild : NukeBuild @@ -22,6 +23,9 @@ public class DalamudBuild : NukeBuild [Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")] readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release; + [Parameter("Whether we are building for documentation - emits generated files")] + readonly bool IsDocsBuild = false; + [Solution] Solution Solution; [GitRepository] GitRepository GitRepository; @@ -55,15 +59,29 @@ public class DalamudBuild : NukeBuild DotNetTasks.DotNetRestore(s => s .SetProjectFile(Solution)); }); - + Target CompileDalamud => _ => _ .DependsOn(Restore) .Executes(() => { - DotNetTasks.DotNetBuild(s => s - .SetProjectFile(DalamudProjectFile) - .SetConfiguration(Configuration) - .EnableNoRestore()); + DotNetTasks.DotNetBuild(s => + { + s = s + .SetProjectFile(DalamudProjectFile) + .SetConfiguration(Configuration) + .EnableNoRestore(); + + // We need to emit compiler generated files for the docs build, since docfx can't run generators directly + // TODO: This fails every build after this because of redefinitions... + if (IsDocsBuild) + { + Log.Warning("Building for documentation, emitting compiler generated files. This can cause issues on Windows due to path-length limitations"); + s = s + .SetProperty("IsDocsBuild", "true"); + } + + return s; + }); }); Target CompileDalamudBoot => _ => _