xref: /aosp_15_r20/external/grpc-grpc/src/csharp/Grpc.Tools/build/_grpc/_Grpc.Tools.targets (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1<?xml version="1.0"?>
2<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3  <PropertyGroup>
4    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
5    <gRPC_PluginFileName Condition=" '$(gRPC_PluginFileName)' == '' and '$(Language)' == 'C#' ">grpc_csharp_plugin</gRPC_PluginFileName>
6  </PropertyGroup>
7
8  <ItemGroup Condition=" '$(Protobuf_ProjectSupported)' == 'true' and '$(Language)' == 'C#' ">
9    <!-- Extend property pages with gRPC properties. -->
10    <PropertyPageSchema Include="$(MSBuildThisFileDirectory)Grpc.CSharp.xml">
11      <Context>File;BrowseObject</Context>
12    </PropertyPageSchema>
13  </ItemGroup>
14
15  <ItemDefinitionGroup Condition=" '$(Protobuf_ProjectSupported)' == 'true' and '$(Language)' == 'C#' ">
16    <Protobuf>
17      <GrpcServices Condition=" '%(Protobuf.GrpcServices)' == '' ">Both</GrpcServices>
18    </Protobuf>
19  </ItemDefinitionGroup>
20
21  <!-- This target is invoked in a C# project, or can be called in a customized project. -->
22  <Target Name="gRPC_ResolvePluginFullPath" AfterTargets="Protobuf_ResolvePlatform">
23    <PropertyGroup>
24      <!-- First try environment variable. -->
25      <gRPC_PluginFullPath Condition=" '$(gRPC_PluginFullPath)' == '' ">$(GRPC_PROTOC_PLUGIN)</gRPC_PluginFullPath>
26
27      <gRPC_PluginFullPath Condition=" '$(gRPC_PluginFullPath)' == '' and '$(Protobuf_ToolsOs)' == 'windows' "
28           >$(Protobuf_PackagedToolsPath)\$(Protobuf_ToolsOs)_$(Protobuf_ToolsCpu)\$(gRPC_PluginFileName).exe</gRPC_PluginFullPath>
29      <gRPC_PluginFullPath Condition=" '$(gRPC_PluginFullPath)' == '' "
30           >$(Protobuf_PackagedToolsPath)/$(Protobuf_ToolsOs)_$(Protobuf_ToolsCpu)/$(gRPC_PluginFileName)</gRPC_PluginFullPath>
31    </PropertyGroup>
32  </Target>
33
34  <Target Name="_gRPC_PrepareCompileOptions" AfterTargets="Protobuf_PrepareCompileOptions">
35    <ItemGroup Condition=" '$(Language)' == 'C#' ">
36      <Protobuf_Compile Condition=" %(Protobuf_Compile.GrpcServices) != 'None' ">
37        <GrpcPluginExe Condition=" '%(Protobuf_Compile.GrpcPluginExe)' == '' ">$(gRPC_PluginFullPath)</GrpcPluginExe>
38        <GrpcOutputDir Condition=" '%(Protobuf_Compile.GrpcOutputDir)' == '' " >%(Protobuf_Compile.OutputDir)</GrpcOutputDir>
39        <_GrpcOutputOptions Condition=" '%(Protobuf_Compile.Access)' == 'Internal' ">%(Protobuf_Compile._GrpcOutputOptions);internal_access</_GrpcOutputOptions>
40      </Protobuf_Compile>
41      <Protobuf_Compile Condition=" '%(Protobuf_Compile.GrpcServices)' == 'Client' ">
42        <_GrpcOutputOptions>%(Protobuf_Compile._GrpcOutputOptions);no_server</_GrpcOutputOptions>
43      </Protobuf_Compile>
44      <Protobuf_Compile Condition=" '%(Protobuf_Compile.GrpcServices)' == 'Server' ">
45        <_GrpcOutputOptions>%(Protobuf_Compile._GrpcOutputOptions);no_client</_GrpcOutputOptions>
46      </Protobuf_Compile>
47    </ItemGroup>
48  </Target>
49</Project>
50