xref: /aosp_15_r20/external/grpc-grpc/src/csharp/Grpc.Tools/Grpc.Tools.csproj (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1<Project Sdk="Microsoft.NET.Sdk" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2  <PropertyGroup>
3    <AssemblyName>Protobuf.MSBuild</AssemblyName>
4    <VersionPrefix>$(GrpcCsharpVersion)</VersionPrefix>
5    <!-- If changing targets, change also paths in Google.Protobuf.Tools.targets. -->
6    <TargetFrameworks>net45;netstandard1.3</TargetFrameworks>
7    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
8  </PropertyGroup>
9
10  <Import Project="SourceLink.csproj.include" />
11
12  <PropertyGroup Label="Asset root folders.">
13    <!-- Root of well known types .proto files -->
14    <Assets_ProtoInclude>../../../third_party/protobuf/src/google/protobuf/</Assets_ProtoInclude>
15
16    <!-- Protocol buffers compiler binaries -->
17    <Assets_ProtoCompiler>../protoc_plugins/protoc_</Assets_ProtoCompiler>
18
19    <!-- Plugins binaries -->
20    <Assets_GrpcPlugins>../protoc_plugins/</Assets_GrpcPlugins>
21  </PropertyGroup>
22
23  <PropertyGroup Condition=" '$(TargetFramework)' != 'net45' ">
24    <DefineConstants>$(DefineConstants);NETCORE</DefineConstants>
25  </PropertyGroup>
26
27  <PropertyGroup Label="NuGet package definition" Condition=" '$(Configuration)' == 'Release' ">
28    <BuildOutputTargetFolder>build\_protobuf\</BuildOutputTargetFolder>
29    <DevelopmentDependency>true</DevelopmentDependency>
30    <NoPackageAnalysis>true</NoPackageAnalysis>
31    <PackageId>Grpc.Tools</PackageId>
32    <Authors>The gRPC Authors</Authors>
33    <Copyright>Copyright 2018 The gRPC Authors</Copyright>
34    <Description>gRPC and Protocol Buffer compiler for C# projects</Description>
35    <PackageIcon>packageIcon.png</PackageIcon>
36    <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
37    <PackageProjectUrl>https://github.com/grpc/grpc</PackageProjectUrl>
38    <PackageTags>gRPC RPC HTTP/2</PackageTags>
39    <PackageReadmeFile>README.md</PackageReadmeFile>
40  </PropertyGroup>
41
42  <ItemGroup>
43    <None Include="../packageIcon.png" Pack="true" PackagePath="\"/>
44    <None Include="README.md" Pack="true" PackagePath="\"/>
45  </ItemGroup>
46
47  <ItemGroup Label="NuGet package assets">
48    <None Pack="true" PackagePath="build\" Include="build\**\*.xml; build\**\*.props; build\**\*.targets;" />
49
50    <!-- Protobuf assets - well known types -->
51    <_ProtoAssetName Include="any;api;descriptor;duration;empty;field_mask;
52                              source_context;struct;timestamp;type;wrappers" />
53    <_Asset PackagePath="build/native/include/google/protobuf/" Include="@(_ProtoAssetName->'$(Assets_ProtoInclude)%(Identity).proto')" />
54
55    <!-- protocol buffers compiler -->
56    <_Asset PackagePath="tools/windows_x86/" Include="$(Assets_ProtoCompiler)windows_x86/protoc.exe" />
57    <_Asset PackagePath="tools/windows_x64/" Include="$(Assets_ProtoCompiler)windows_x64/protoc.exe" />
58    <_Asset PackagePath="tools/linux_x86/" Include="$(Assets_ProtoCompiler)linux_x86/protoc" />
59    <_Asset PackagePath="tools/linux_x64/" Include="$(Assets_ProtoCompiler)linux_x64/protoc" />
60    <_Asset PackagePath="tools/linux_arm64/" Include="$(Assets_ProtoCompiler)linux_aarch64/protoc" />
61    <_Asset PackagePath="tools/macosx_x64/" Include="$(Assets_ProtoCompiler)macos_x64/protoc" />
62
63    <!-- gRPC protocol buffer compiler plugins -->
64    <_Asset PackagePath="tools/windows_x86/" Include="$(Assets_GrpcPlugins)protoc_windows_x86/grpc_csharp_plugin.exe" />
65    <_Asset PackagePath="tools/windows_x64/" Include="$(Assets_GrpcPlugins)protoc_windows_x64/grpc_csharp_plugin.exe" />
66    <_Asset PackagePath="tools/linux_x86/" Include="$(Assets_GrpcPlugins)protoc_linux_x86/grpc_csharp_plugin" />
67    <_Asset PackagePath="tools/linux_x64/" Include="$(Assets_GrpcPlugins)protoc_linux_x64/grpc_csharp_plugin" />
68    <_Asset PackagePath="tools/linux_arm64/" Include="$(Assets_GrpcPlugins)protoc_linux_aarch64/grpc_csharp_plugin" />
69    <_Asset PackagePath="tools/macosx_x64/" Include="$(Assets_GrpcPlugins)protoc_macos_x64/grpc_csharp_plugin" />
70
71    <None Include="@(_Asset)" Pack="true" Visible="false" />
72  </ItemGroup>
73
74  <ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
75    <Reference Include="Microsoft.Build.Framework; Microsoft.Build.Utilities.v4.0" Pack="false" />
76  </ItemGroup>
77
78  <ItemGroup Condition=" '$(TargetFramework)' != 'net45' ">
79    <PackageReference Include="Microsoft.Build.Framework; Microsoft.Build.Utilities.Core" Version="15.6.*" />
80    <!--  Set PrivateAssets="All" on all items, even those implicitly added,
81          so that they do not become dependencies of this package. -->
82    <PackageReference Update="@(PackageReference)" PrivateAssets="All" />
83  </ItemGroup>
84
85</Project>
86