You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
4.6 KiB

  1. <Project Sdk="Microsoft.NET.Sdk">
  2. <PropertyGroup>
  3. <TargetFrameworks>net461;net35</TargetFrameworks>
  4. <RootNamespace>IPA.Injector</RootNamespace>
  5. <!--<PathMap>$(SolutionDir)=C:\</PathMap>-->
  6. <DebugType>portable</DebugType>
  7. <LangVersion>8.0</LangVersion>
  8. <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
  9. <NoWarn>CA1031</NoWarn>
  10. <GenerateDocumentationFile>false</GenerateDocumentationFile>
  11. <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  12. <BuildForBeatSaber Condition=" '$(BuildForBeatSaber)' == '' And '$(TargetFramework)' == 'net461' ">true</BuildForBeatSaber>
  13. </PropertyGroup>
  14. <PropertyGroup Condition="'$(TargetFramework)' == 'net461'">
  15. <DefineConstants>$(DefineConstants);NET4</DefineConstants>
  16. </PropertyGroup>
  17. <PropertyGroup Condition="'$(TargetFramework)' == 'net35'">
  18. <DefineConstants>$(DefineConstants);NET3</DefineConstants>
  19. </PropertyGroup>
  20. <PropertyGroup Condition="'$(BuildForBeatSaber)' == 'true'">
  21. <DefineConstants>$(DefineConstants);BeatSaber</DefineConstants>
  22. </PropertyGroup>
  23. <ItemGroup>
  24. <ProjectReference Include="..\IPA.Loader\IPA.Loader.csproj" />
  25. <ProjectReference Include="..\Net3-Proxy\Net3-Proxy.csproj" Condition=" '$(TargetFramework)' == 'net35' " />
  26. </ItemGroup>
  27. <ItemGroup>
  28. <Reference Include="UnityEngine.CoreModule" Condition=" '$(TargetFramework)' == 'net461' ">
  29. <HintPath>..\Refs\UnityEngine.CoreModule.Net4.dll</HintPath>
  30. <Private>False</Private>
  31. </Reference>
  32. <Reference Include="UnityEngine.CoreModule" Condition=" '$(TargetFramework)' == 'net35' ">
  33. <HintPath>..\Refs\UnityEngine.CoreModule.Net3.dll</HintPath>
  34. <Private>False</Private>
  35. </Reference>
  36. </ItemGroup>
  37. <ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
  38. <Content Include="..\Libs\I18N.Net4.dll">
  39. <Link>Libraries\Mono\I18N.dll</Link>
  40. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  41. </Content>
  42. <Content Include="..\Libs\I18N.West.Net4.dll">
  43. <Link>Libraries\Mono\I18N.West.dll</Link>
  44. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  45. </Content>
  46. <Content Include="..\Libs\Microsoft.CSharp.dll">
  47. <Link>Libraries\Mono\Microsoft.CSharp.dll</Link>
  48. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  49. </Content>
  50. <Content Include="..\Libs\System.Runtime.Serialization.Net4.dll">
  51. <Link>Libraries\Mono\System.Runtime.Serialization.dll</Link>
  52. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  53. </Content>
  54. </ItemGroup>
  55. <ItemGroup Condition=" '$(TargetFramework)' == 'net35' ">
  56. <Content Include="..\Libs\I18N.Net3.dll">
  57. <Link>Libraries\Mono\I18N.dll</Link>
  58. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  59. </Content>
  60. <Content Include="..\Libs\I18N.West.Net3.dll">
  61. <Link>Libraries\Mono\I18N.West.dll</Link>
  62. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  63. </Content>
  64. <Content Include="..\Libs\System.Runtime.Serialization.Net3.dll">
  65. <Link>Libraries\Mono\System.Runtime.Serialization.dll</Link>
  66. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  67. </Content>
  68. </ItemGroup>
  69. <ItemGroup>
  70. <PackageReference Include="Mono.Cecil" Version="0.10.4" />
  71. <PackageReference Include="SemanticVersioning" Version="1.2.2" />
  72. <PackageReference Include="AsyncBridge" Version="0.3.1" />
  73. </ItemGroup>
  74. <Target Name="PostBuild" AfterTargets="PostBuildEvent">
  75. <Message Text="Relocating" Importance="normal" />
  76. <ItemGroup>
  77. <SystemFiles Include="$(OutputPath)IPA.Injector.*" />
  78. <SystemFiles Include="$(OutputPath)IPA.Loader.*" />
  79. <SystemFiles Include="$(OutputPath)AsyncBridge.*" />
  80. <SystemFiles Include="$(OutputPath)System.*" />
  81. <SystemFiles Include="$(OutputPath)Portable.System.*" />
  82. <SystemFiles Include="$(OutputPath)Net3-Proxy.*" />
  83. <SystemFiles Include="$(OutputPath)Libraries\Mono\**\*" />
  84. <OldLibFiles Include="$(OutputPath)Libs\**\*" />
  85. </ItemGroup>
  86. <Move SourceFiles="@(SystemFiles)" DestinationFolder="$(OutputPath)Data\Managed" />
  87. <RemoveDir Directories="$(OutputPath)Libraries\Mono" />
  88. <Delete Files="@(OldLibFiles)" />
  89. <RemoveDir Directories="$(OutputPath)Libs" />
  90. <ItemGroup>
  91. <LibFiles Include="$(OutputPath)**\*" Exclude="$(OutputPath)Data\**\*;$(OutputPath)Libs\**\*" />
  92. </ItemGroup>
  93. <Move SourceFiles="@(LibFiles)" DestinationFolder="$(OutputPath)Libs\" />
  94. <RemoveDir Directories="$(OutputPath)Libraries\Included" />
  95. <RemoveDir Directories="$(OutputPath)Libraries" />
  96. </Target>
  97. </Project>