diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 497f2b89a..e7e1a446a 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -78,9 +78,13 @@ "enum": [ "Clean", "Compile", + "CompileCImGui", + "CompileCImGuizmo", + "CompileCImPlot", "CompileDalamud", "CompileDalamudBoot", "CompileDalamudCrashHandler", + "CompileImGuiNatives", "CompileInjector", "CompileInjectorBoot", "Restore", @@ -100,9 +104,13 @@ "enum": [ "Clean", "Compile", + "CompileCImGui", + "CompileCImGuizmo", + "CompileCImPlot", "CompileDalamud", "CompileDalamudBoot", "CompileDalamudCrashHandler", + "CompileImGuiNatives", "CompileInjector", "CompileInjectorBoot", "Restore", diff --git a/Dalamud.sln b/Dalamud.sln index 49fc9e011..5b6f56c6e 100644 --- a/Dalamud.sln +++ b/Dalamud.sln @@ -16,6 +16,11 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "build", "build\build.csproj", "{94E5B016-02B1-459B-97D9-E783F28764B2}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Dalamud", "Dalamud\Dalamud.csproj", "{B92DAB43-2279-4A2C-96E3-D9D5910EDBEA}" + ProjectSection(ProjectDependencies) = postProject + {76CAA246-C405-4A8C-B0AE-F4A0EF3D4E16} = {76CAA246-C405-4A8C-B0AE-F4A0EF3D4E16} + {8430077C-F736-4246-A052-8EA1CECE844E} = {8430077C-F736-4246-A052-8EA1CECE844E} + {F258347D-31BE-4605-98CE-40E43BDF6F9D} = {F258347D-31BE-4605-98CE-40E43BDF6F9D} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dalamud.Boot", "Dalamud.Boot\Dalamud.Boot.vcxproj", "{55198DC3-A03D-408E-A8EB-2077780C8576}" EndProject diff --git a/Dalamud/Dalamud.csproj b/Dalamud/Dalamud.csproj index 610bd7f84..1cd9fc336 100644 --- a/Dalamud/Dalamud.csproj +++ b/Dalamud/Dalamud.csproj @@ -3,7 +3,7 @@ net8.0-windows x64 - x64;AnyCPU + x64 12.0 True @@ -103,44 +103,6 @@ - - - - - - - - - %(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - - - - %(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - - - - %(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - - - - %(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - - - - %(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - - - - %(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - - - @@ -243,4 +205,18 @@ + + + + + + + + + + + + + + diff --git a/build/DalamudBuild.cs b/build/DalamudBuild.cs index d704d54e0..6340c36fa 100644 --- a/build/DalamudBuild.cs +++ b/build/DalamudBuild.cs @@ -47,6 +47,14 @@ public class DalamudBuild : NukeBuild AbsolutePath TestProjectDir => RootDirectory / "Dalamud.Test"; AbsolutePath TestProjectFile => TestProjectDir / "Dalamud.Test.csproj"; + AbsolutePath ExternalsDir => RootDirectory / "external"; + AbsolutePath CImGuiDir => ExternalsDir / "cimgui"; + AbsolutePath CImGuiProjectFile => CImGuiDir / "cimgui.vcxproj"; + AbsolutePath CImPlotDir => ExternalsDir / "cimplot"; + AbsolutePath CImPlotProjectFile => CImPlotDir / "cimplot.vcxproj"; + AbsolutePath CImGuizmoDir => ExternalsDir / "cimguizmo"; + AbsolutePath CImGuizmoProjectFile => CImGuizmoDir / "cimguizmo.vcxproj"; + AbsolutePath ArtifactsDirectory => RootDirectory / "bin" / Configuration; private static AbsolutePath LibraryDirectory => RootDirectory / "lib"; @@ -59,9 +67,42 @@ public class DalamudBuild : NukeBuild DotNetTasks.DotNetRestore(s => s .SetProjectFile(Solution)); }); - + + Target CompileCImGui => _ => _ + .Executes(() => + { + MSBuildTasks.MSBuild(s => s + .SetTargetPath(CImGuiProjectFile) + .SetConfiguration(Configuration) + .SetTargetPlatform(MSBuildTargetPlatform.x64)); + }); + + Target CompileCImPlot => _ => _ + .Executes(() => + { + MSBuildTasks.MSBuild(s => s + .SetTargetPath(CImPlotProjectFile) + .SetConfiguration(Configuration) + .SetTargetPlatform(MSBuildTargetPlatform.x64)); + }); + + Target CompileCImGuizmo => _ => _ + .Executes(() => + { + MSBuildTasks.MSBuild(s => s + .SetTargetPath(CImGuizmoProjectFile) + .SetConfiguration(Configuration) + .SetTargetPlatform(MSBuildTargetPlatform.x64)); + }); + + Target CompileImGuiNatives => _ => _ + .DependsOn(CompileCImGui) + .DependsOn(CompileCImPlot) + .DependsOn(CompileCImGuizmo); + Target CompileDalamud => _ => _ .DependsOn(Restore) + .DependsOn(CompileImGuiNatives) .Executes(() => { DotNetTasks.DotNetBuild(s => @@ -138,6 +179,21 @@ public class DalamudBuild : NukeBuild Target Clean => _ => _ .Executes(() => { + MSBuildTasks.MSBuild(s => s + .SetProjectFile(CImGuiProjectFile) + .SetConfiguration(Configuration) + .SetTargets("Clean")); + + MSBuildTasks.MSBuild(s => s + .SetProjectFile(CImPlotProjectFile) + .SetConfiguration(Configuration) + .SetTargets("Clean")); + + MSBuildTasks.MSBuild(s => s + .SetProjectFile(CImGuizmoProjectFile) + .SetConfiguration(Configuration) + .SetTargets("Clean")); + DotNetTasks.DotNetClean(s => s .SetProject(DalamudProjectFile) .SetConfiguration(Configuration)); diff --git a/external/cimgui/cimgui.vcxproj b/external/cimgui/cimgui.vcxproj index 7c75fd853..12bb376f8 100644 --- a/external/cimgui/cimgui.vcxproj +++ b/external/cimgui/cimgui.vcxproj @@ -55,6 +55,9 @@ + + ..\$(Platform)\$(Configuration)\ + Level3 @@ -64,7 +67,7 @@ NotUsing - $(SolutionDir)lib\cimgui\imgui;%(AdditionalIncludeDirectories) + ..\..\lib\cimgui\imgui;%(AdditionalIncludeDirectories) Windows diff --git a/external/cimguizmo/cimguizmo.vcxproj b/external/cimguizmo/cimguizmo.vcxproj index 11200ad72..849cbfba5 100644 --- a/external/cimguizmo/cimguizmo.vcxproj +++ b/external/cimguizmo/cimguizmo.vcxproj @@ -59,6 +59,9 @@ + + ..\$(Platform)\$(Configuration)\ + Level3 @@ -68,7 +71,7 @@ NotUsing - $(SolutionDir)lib\cimgui\imgui;$(SolutionDir)lib\cimguizmo\ImGuizmo;$(SolutionDir)lib\cimgui;%(AdditionalIncludeDirectories) + ..\..\lib\cimgui\imgui;..\..\lib\cimguizmo\ImGuizmo;..\..\lib\cimgui;%(AdditionalIncludeDirectories) Windows diff --git a/external/cimplot/cimplot.vcxproj b/external/cimplot/cimplot.vcxproj index eacebe3de..3477ab262 100644 --- a/external/cimplot/cimplot.vcxproj +++ b/external/cimplot/cimplot.vcxproj @@ -57,6 +57,9 @@ + + ..\$(Platform)\$(Configuration)\ + Level3 @@ -66,7 +69,7 @@ NotUsing - $(SolutionDir)lib\cimgui\imgui;$(SolutionDir)lib\cimplot\implot;$(SolutionDir)lib\cimgui;%(AdditionalIncludeDirectories) + ..\..\lib\cimgui\imgui;..\..\lib\cimplot\implot;..\..\lib\cimgui;%(AdditionalIncludeDirectories) Windows