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.

92 lines
4.6 KiB

5 years ago
  1. <Project Sdk="Microsoft.NET.Sdk" DefaultTargets="Build">
  2. <PropertyGroup>
  3. <TargetFrameworks>net461</TargetFrameworks>
  4. <Platforms>x86;x64</Platforms>
  5. <Configurations>Debug;Release;Verbose;Verbose_Release</Configurations>
  6. <RootNamespace>BSIPA_Meta</RootNamespace>
  7. <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  8. <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
  9. <PackageAction>Assemble</PackageAction>
  10. <InnerTargets>Assemble</InnerTargets>
  11. </PropertyGroup>
  12. <PropertyGroup>
  13. <OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
  14. <IsVerbose>false</IsVerbose>
  15. <IsVerbose Condition="'$(Configuration)' == 'Verbose' Or '$(Configuration)' == 'Verbose_Release'">true</IsVerbose>
  16. <NoVerboseConfig>$(Configuration)</NoVerboseConfig>
  17. <NoVerboseConfig Condition="'$(IsVerbose)' == 'true' And '$(Configuration)' == 'Verbose'">Debug</NoVerboseConfig>
  18. <NoVerboseConfig Condition="'$(IsVerbose)' == 'true' And '$(Configuration)' == 'Verbose_Release'">Release</NoVerboseConfig>
  19. <ProxyConfig>Release</ProxyConfig>
  20. <ProxyConfig Condition="'$(IsVerbose)' == 'true'">Verbose_Release</ProxyConfig>
  21. <ProxyPlatform>Win32</ProxyPlatform>
  22. <ProxyPlatform Condition="'$(Platform)' == 'x64'">x64</ProxyPlatform>
  23. </PropertyGroup>
  24. <ItemGroup>
  25. <ProjectReference Include="..\IPA\IPA.csproj" ReferenceOutputAssembly="false">
  26. <SetConfiguration>Configuration=$(NoVerboseConfig)</SetConfiguration>
  27. <SetPlatform>Platform=AnyCPU</SetPlatform>
  28. <SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
  29. </ProjectReference>
  30. <ProjectReference Include="..\IPA.Injector\IPA.Injector.csproj" ReferenceOutputAssembly="false">
  31. <SetConfiguration>Configuration=$(NoVerboseConfig)</SetConfiguration>
  32. <SetPlatform>Platform=AnyCPU</SetPlatform>
  33. <SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
  34. </ProjectReference>
  35. <ProjectReference Include="..\IPA.Loader\IPA.Loader.csproj" ReferenceOutputAssembly="false">
  36. <SetConfiguration>Configuration=$(NoVerboseConfig)</SetConfiguration>
  37. <SetPlatform>Platform=AnyCPU</SetPlatform>
  38. <SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
  39. </ProjectReference>
  40. <ProjectReference Include="..\Doorstop\Proxy\Proxy.vcxproj" ReferenceOutputAssembly="false">
  41. <SetConfiguration>Configuration=$(ProxyConfig)</SetConfiguration>
  42. <SetPlatform>Platform=$(ProxyPlatform)</SetPlatform>
  43. <SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
  44. </ProjectReference>
  45. </ItemGroup>
  46. <Target Name="Clean">
  47. <ItemGroup>
  48. <Files Include="$(OutputPath)**\*" />
  49. </ItemGroup>
  50. <Delete Files="@(Files)" />
  51. </Target>
  52. <Target Name="CoreCompile">
  53. <CallTarget Targets="Assemble" />
  54. </Target>
  55. <Target Name="Assemble" Returns="$(OutputPath)">
  56. <Message Text="Packing..." Importance="High" />
  57. <Message Text="Results will be put in $(OutputPath)" Importance="High" />
  58. <ItemGroup>
  59. <InputDlls Include="$(SolutionDir)IPA.Injector\bin\$(NoVerboseConfig)\$(TargetFramework)\**\*" Exclude="$(SolutionDir)IPA.Injector\bin\$(NoVerboseConfig)\$(TargetFramework)\Libraries\**\*" />
  60. <InputDlls Include="$(SolutionDir)Doorstop\Proxy\bin\$(ProxyPlatform)\$(ProxyConfig)\**\*.dll" />
  61. <InputDlls Include="$(SolutionDir)Doorstop\Proxy\bin\$(ProxyPlatform)\$(ProxyConfig)\**\*.pdb" />
  62. <InputIPAFiles Include="$(SolutionDir)IPA\bin\$(Configuration)\net461\**\*" Exclude="$(SolutionDir)IPA\bin\$(Configuration)\net461\*.runtimeconfig.*" />
  63. <InputIPAFiles Include="$(SolutionDir)IPA\bin\$(Configuration)\netcoreapp3.1\IPA.runtimeconfig.json" />
  64. </ItemGroup>
  65. <Copy SourceFiles="@(InputDlls)" DestinationFolder="$(OutputPath)IPA\%(RecursiveDir)" />
  66. <Move SourceFiles="$(OutputPath)IPA\proxy.dll" DestinationFiles="$(OutputPath)IPA\winhttp.dll" />
  67. <Move Condition="Exists('$(OutputPath)IPA\proxy.pdb')" SourceFiles="$(OutputPath)IPA\proxy.pdb" DestinationFiles="$(OutputPath)IPA\winhttp.pdb" />
  68. <Copy SourceFiles="@(InputIPAFiles)" DestinationFolder="$(OutputPath)%(RecursiveDir)" />
  69. <ItemGroup>
  70. <BadFiles Include="$(OutputPath)*.dll" />
  71. <BadFiles Remove="$(OutputPath)IPA.dll" />
  72. <BadFiles Include="$(OutputPath)*.pdb" Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='Verbose_Release'" />
  73. <BadFiles Include="$(OutputPath)IPA\*.pdb" Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='Verbose_Release'" />
  74. </ItemGroup>
  75. <Delete Files="@(BadFiles)" />
  76. <RemoveDir Directories="$(OutputPath)Libraries\" />
  77. </Target>
  78. </Project>