make it work with nuke

This commit is contained in:
goat 2024-12-24 01:52:38 +01:00
parent 7629cac8af
commit 87525091c9
7 changed files with 97 additions and 43 deletions

View file

@ -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",

View file

@ -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

View file

@ -3,7 +3,7 @@
<PropertyGroup Label="Target">
<TargetFramework>net8.0-windows</TargetFramework>
<PlatformTarget>x64</PlatformTarget>
<Platforms>x64;AnyCPU</Platforms>
<Platforms>x64</Platforms>
<LangVersion>12.0</LangVersion>
<EnableWindowsTargeting>True</EnableWindowsTargeting>
</PropertyGroup>
@ -103,44 +103,6 @@
<ProjectReference Include="..\lib\ImGuiScene\ImGuiScene\ImGuiScene.csproj" />
</ItemGroup>
<!-- cimgui, cimplot, cimguizmo -->
<!-- TEMP: We will move these to ImGuiScene once it is in-tree -->
<ItemGroup>
<ProjectReference Include="..\external\cimguizmo\cimguizmo.vcxproj" />
<ProjectReference Include="..\external\cimgui\cimgui.vcxproj" />
<ProjectReference Include="..\external\cimplot\cimplot.vcxproj" />
<Content Include="..\$(Platform)\$(Configuration)\*.dll">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\$(Platform)\$(Configuration)\*.dll">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\$(Platform)\$(Configuration)\*.dll">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\$(Platform)\$(Configuration)\*.pdb">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\$(Platform)\$(Configuration)\*.pdb">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="..\$(Platform)\$(Configuration)\*.pdb">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="..\stylecop.json" />
</ItemGroup>
@ -243,4 +205,18 @@
<Target Name="CopyPluginTargets" AfterTargets="Build">
<Copy SourceFiles="$(ProjectDir)\..\targets\Dalamud.Plugin.targets;$(ProjectDir)\..\targets\Dalamud.Plugin.Bootstrap.targets" DestinationFolder="$(OutDir)\targets" />
</Target>
<!-- Copy imgui binaries into distrib -->
<!-- TEMP: We will move these to ImGuiScene once it is in-tree -->
<!-- Build order is controlled through the solution or nuke -->
<Target Name="CopyImGuiBinaries" AfterTargets="Build">
<Copy SourceFiles="..\external\x64\$(Configuration)\cimgui.dll" DestinationFolder="$(OutDir)" />
<Copy SourceFiles="..\external\x64\$(Configuration)\cimgui.pdb" DestinationFolder="$(OutDir)" />
<Copy SourceFiles="..\external\x64\$(Configuration)\cimplot.dll" DestinationFolder="$(OutDir)" />
<Copy SourceFiles="..\external\x64\$(Configuration)\cimplot.pdb" DestinationFolder="$(OutDir)" />
<Copy SourceFiles="..\external\x64\$(Configuration)\cimguizmo.dll" DestinationFolder="$(OutDir)" />
<Copy SourceFiles="..\external\x64\$(Configuration)\cimguizmo.pdb" DestinationFolder="$(OutDir)" />
</Target>
</Project>

View file

@ -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";
@ -60,8 +68,41 @@ public class DalamudBuild : NukeBuild
.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));

View file

@ -55,6 +55,9 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>..\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -64,7 +67,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(SolutionDir)lib\cimgui\imgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\lib\cimgui\imgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View file

@ -59,6 +59,9 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>..\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -68,7 +71,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(SolutionDir)lib\cimgui\imgui;$(SolutionDir)lib\cimguizmo\ImGuizmo;$(SolutionDir)lib\cimgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\lib\cimgui\imgui;..\..\lib\cimguizmo\ImGuizmo;..\..\lib\cimgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View file

@ -57,6 +57,9 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>..\$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -66,7 +69,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>$(SolutionDir)lib\cimgui\imgui;$(SolutionDir)lib\cimplot\implot;$(SolutionDir)lib\cimgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\lib\cimgui\imgui;..\..\lib\cimplot\implot;..\..\lib\cimgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>