PixiEditor.Extensions.CommonApi.csproj 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <Project Sdk="Microsoft.NET.Sdk">
  2. <PropertyGroup>
  3. <TargetFramework>net8.0</TargetFramework>
  4. <ImplicitUsings>enable</ImplicitUsings>
  5. <Nullable>disable</Nullable>
  6. <PackageId>PixiEditor.Extensions.CommonApi</PackageId>
  7. <PackageVersion>0.0.1.1-dev</PackageVersion>
  8. </PropertyGroup>
  9. <ItemGroup>
  10. <Folder Include="Preferences\"/>
  11. </ItemGroup>
  12. <ItemGroup>
  13. <PackageReference Include="protobuf-net" Version="3.2.52"/>
  14. </ItemGroup>
  15. <PropertyGroup>
  16. <ProtogenVersion>3.2.52</ProtogenVersion>
  17. </PropertyGroup>
  18. <Target Name="ProtogenCheck" BeforeTargets="GenerateProtoContracts">
  19. <PropertyGroup>
  20. <ProtogenExists>false</ProtogenExists>
  21. </PropertyGroup>
  22. <Exec Command="dotnet tool run protogen --version" IgnoreExitCode="true">
  23. <Output TaskParameter="ExitCode" PropertyName="ProtogenExitCode"/>
  24. </Exec>
  25. <PropertyGroup>
  26. <ProtogenExists Condition="'$(ProtogenExitCode)' == '0'">true</ProtogenExists>
  27. </PropertyGroup>
  28. </Target>
  29. <Target Name="InstallProtogen" BeforeTargets="GenerateProtoContracts"
  30. Condition="'$(ProtogenExists)' != 'true'">
  31. <Message Text="Downloading protogen v$(ProtogenVersion)..." Importance="high"/>
  32. <Exec Command="dotnet tool install --local protobuf-net.Protogen --version $(ProtogenVersion)"/>
  33. <PropertyGroup>
  34. <ProtogenExists>true</ProtogenExists>
  35. </PropertyGroup>
  36. <Message Text="protogen installed successfully." Importance="high"/>
  37. </Target>
  38. <Target Name="GenerateProtoContracts" BeforeTargets="BeforeCompile"
  39. Inputs="$(MSBuildProjectDirectory)\DataContracts\*.proto"
  40. Outputs="$(MSBuildProjectDirectory)\ProtoAutogen\*.cs">
  41. <Exec Command="dotnet tool run protogen --csharp_out=ProtoAutogen --proto_path=DataContracts +listset=yes *.proto"/>
  42. <ItemGroup>
  43. <Compile Include="ProtoAutogen\*.cs" KeepDuplicates="false"/>
  44. </ItemGroup>
  45. </Target>
  46. <ItemGroup>
  47. <ProjectReference Include="..\PixiEditor.Extensions.CommonApi.Diagnostics\PixiEditor.Extensions.CommonApi.Diagnostics.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
  48. </ItemGroup>
  49. </Project>