Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -138,4 +138,4 @@ libs/FNA.dll
.idea/

#Custom properties
Custom.props
Custom.props
41 changes: 40 additions & 1 deletion BepInEx.Hacknet/BepInEx.Hacknet.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project ToolsVersion="16.0" >
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="16.0" >

<Import Project="..\Configurations.props" />

Expand All @@ -21,6 +21,9 @@
<PackageReference Include="System.Net.Http" Version="4.3.4" />
</ItemGroup>


<Import Project="..\Configurations.targets" />

<Target Condition=" $(DisableBepInExHacknetPrepareForBuild.ToLower()) != 'true' "
Name="BepInExPrebuild" BeforeTargets="PrepareForBuild" >
<MSBuild Projects="$(PatcherDir)PathfinderPatcher.csproj"
Expand All @@ -45,4 +48,40 @@
DestinationFiles="$(HacknetDir)HacknetPathfinder.exe"
/>
</Target>

<ItemGroup Label="BeforeRunGameSetup">
<_BepInExCoreFiles Include="$(MSBuildThisFileDirectory)bin/$(Configuration)/*" />
</ItemGroup>

<Target Name="BeforeRunGame" BeforeTargets="RunGame">
<CallTarget Targets="Build" />
<MoveDir Condition="Exists('$(HacknetDir)BepInEx')"
SourceDirectories="$(HacknetDir)BepInEx"
DestinationFolder="$(HacknetDir)temp"
/>
<MakeDir Condition="!Exists('$(BepInExTestDir)')" Directories="$(BepInExTestDir)" />
<WriteLinesToFile
File="$(BepInExTestDir)/.gitignore"
Lines="#Plugin Testing
*"
Overwrite="true"
/>
<Copy
SourceFiles="@(_BepInExCoreFiles)"
DestinationFolder="$(BepInExTestDir)core"
UseHardlinksIfPossible="true"
/>
<MakeDir Condition="!Exists('$(BepInExTestDir)plugins')" Directories="$(BepInExTestDir)plugins" />

<MoveDir SourceDirectories="$(BepInExTestDir)" DestinationDirectories="$(HacknetDir)BepInEx" UseSymlinkOrJunction="true" />
</Target>

<Target Name="ProjectRunGameCleanup" BeforeTargets="RunGameCleanup">
<RemoveDir Directories="$(HacknetDir)BepInEx" />
<MoveDir Condition="Exists('$(HacknetDir)temp/BepInEx')"
SourceDirectories="$(HacknetDir)temp/BepInEx"
DestinationFolder="$(HacknetDir)"
/>
</Target>

</Project>
3 changes: 2 additions & 1 deletion Configurations.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="16.0">
<Project ToolsVersion="16.0">

<Import Condition="Exists('Custom.props')" Project="Custom.props" />

Expand Down Expand Up @@ -38,6 +38,7 @@
<LibsDir>$(PathfinderSolutionDir)libs/</LibsDir>
<PatcherDir>$(PathfinderSolutionDir)PathfinderPatcher/</PatcherDir>
<PatcherBinDir>$(PatcherDir)bin/$(Configuration)/</PatcherBinDir>
<BepInExTestDir>$(PathfinderSolutionDir).debug/</BepInExTestDir>
<AssemblySearchPaths>
$(AssemblySearchPaths);
$(LibsDir);
Expand Down
65 changes: 65 additions & 0 deletions Configurations.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<Project ToolsVersion="16.0">

<UsingTask TaskName="PathfinderBuildTasks.MoveDir" AssemblyFile="PathfinderBuildTasks/tasks/PathfinderBuildTasks.dll" />

<ItemGroup Label="RunGameSetup">
<_PathfinderTempMoveFiles Include="$(HacknetDir)HacknetPathfinder.*" />
<_PathfinderTempMoveFiles Include="$(HacknetDir)StartPathfinder.sh" />
<_PathfinderTempMoveFiles Include="$(HacknetDir)Linux/intercept.so" />
<_PathfinderTempMoveFiles Include="$(Hacknetdir)BepInEx" />
<_PathfinderUnixRunFiles Include="$(PathfinderSolutionDir)Linux/StartPathfinder.sh" />
<_PathfinderUnixRunFiles Include="$(PathfinderSolutionDir)Linux/intercept.so" />
<_HacknetKickstartFiles Include="$(HacknetDir)Hacknet.bin.*" />
</ItemGroup>

<Target Condition=" !Exists('$(HacknetDir)temp') and Exists('$(HacknetDir)HacknetPathfinder.exe')"
Name="MoveGameFilesToTemp" AfterTargets="Build, LinkBuiltFiles">
<Move ContinueOnError="WarnAndContinue"
SourceFiles="@(_PathfinderTempMoveFiles)"
DestinationFolder="$(HacknetDir)temp"
/>
</Target>

<Target Name="LinkBuiltFiles" DependsOnTargets="MoveGameFilesToTemp">
<Copy
SourceFiles="$(LibsDir)HacknetPathfinder.exe"
DestinationFolder="$(HacknetDir)"
/>
<Copy Condition=" '$(OS)' == 'Unix' "
SourceFiles="@(_PathfinderUnixRunFiles)"
DestinationFolder="$(HacknetDir)"
/>
<Copy Condition=" '$(OS)' == 'Unix' "
SourceFiles="@(_HacknetKickstartFiles)"
DestinationFiles="@(_HacknetKickstartFiles->Replace('Hacknet.', 'HacknetPathfinder.'))"
/>
<Exec Condition=" '$(OS)' == 'Unix' " Command="chmod +x $(HacknetDir)StartPathfinder.sh"/>
</Target>

<!-- Conditional sanity check, prevent something stupid from breaking -->
<Target Condition=" '$(AssemblyName)' != 'PathfinderPatcher'"
Name="RunGame" DependsOnTargets="LinkBuiltFiles">
<Exec ContinueOnError="WarnAndContinue" Condition=" '$(OS)' == 'Windows_NT' "
Command="$(HacknetDir)HacknetPathfinder.exe"
/>
<Exec ContinueOnError="WarnAndContinue" Condition=" '$(OS)' == 'Unix' "
Command="$(HacknetDir)StartPathfinder.sh"
/>
</Target>

<Target Name="RunGameCleanup" AfterTargets="RunGame">
<Delete Files="$(HacknetDir)HacknetPathfinder.exe" />
<Delete Condition=" '$(OS)' == 'Unix' "
Files="@(_PathfinderUnixRunFiles->Replace('$(PathfinderSolutionDir)Linux/', '$(HacknetDir)'))"
/>
<Delete Condition=" '$(OS)' == 'Unix' "
Files="@(_HacknetKickstartFiles->Replace('Hacknet.', 'HacknetPathfinder.'))"
/>
<Move Condition="Exists('$(HacknetDir)temp')" ContinueOnError="WarnAndContinue"
SourceFiles="@(_PathfinderTempMoveFiles->Replace('$(HacknetDir)', '$(HacknetDir)temp/'))"
DestinationFolder="$(HacknetDir)"
/>
<RemoveDir Condition="Exists('$(HacknetDir)temp')" Directories="$(HacknetDir)temp" />
</Target>

</Project>
6 changes: 6 additions & 0 deletions Hacknet-Pathfinder.sln
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PathfinderAPI", "Pathfinder
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PathfinderUpdater", "PathfinderUpdater\PathfinderUpdater.csproj", "{A21A9ADF-50A9-4F73-AA14-59CF85E4CA9B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PathfinderBuildTasks", "PathfinderBuildTasks\PathfinderBuildTasks.csproj", "{915CE70F-2E7E-4EF2-9083-98CF1A6EF887}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -39,6 +41,10 @@ Global
{A21A9ADF-50A9-4F73-AA14-59CF85E4CA9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A21A9ADF-50A9-4F73-AA14-59CF85E4CA9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A21A9ADF-50A9-4F73-AA14-59CF85E4CA9B}.Release|Any CPU.Build.0 = Release|Any CPU
{915CE70F-2E7E-4EF2-9083-98CF1A6EF887}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{915CE70F-2E7E-4EF2-9083-98CF1A6EF887}.Debug|Any CPU.Build.0 = Debug|Any CPU
{915CE70F-2E7E-4EF2-9083-98CF1A6EF887}.Release|Any CPU.ActiveCfg = Release|Any CPU
{915CE70F-2E7E-4EF2-9083-98CF1A6EF887}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
26 changes: 25 additions & 1 deletion PathfinderAPI/PathfinderAPI.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project ToolsVersion="16.0">
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="16.0">

<Import Project="..\Configurations.props" />

Expand Down Expand Up @@ -26,4 +26,28 @@
<Private>False</Private>
</ProjectReference>
</ItemGroup>

<Import Project="..\Configurations.targets" />

<Target Name="BeforeRunGame" BeforeTargets="RunGame">
<CallTarget Targets="Build" />
<MSBuild Projects="$(PathfinderSolutionDir)BepInEx.Hacknet\BepInEx.Hacknet.csproj"
Targets="BeforeRunGame"
Properties="Configuration=$(Configuration)"
/>
<Copy
SourceFiles="$(MSBuildThisFileDirectory)bin/$(Configuration)/$(AssemblyName).dll"
DestinationFolder="$(BepInExTestDir)plugins"
UseHardlinksIfPossible="true"
/>
</Target>

<Target Name="ProjectRunGameCleanup" BeforeTargets="RunGameCleanup">
<MSBuild Projects="$(PathfinderSolutionDir)BepInEx.Hacknet\BepInEx.Hacknet.csproj"
Targets="ProjectRunGameCleanup"
Properties="Configuration=$(Configuration)"
/>
<Delete Files="$(BepInExTestDir)plugins/$(AssemblyName).dll" />
</Target>

</Project>
Loading