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