Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grpc.Tools document AdditionalImportDirs #30405

Merged
merged 4 commits into from
Sep 2, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
16 changes: 15 additions & 1 deletion src/csharp/BUILD-INTEGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,14 @@ button](https://stackoverflow.com/a/9770061). Click on it, and choose "Add as
link". If you do not select this option, Visual Studio will copy files to the
project directory instead.

Alternatively, you can also specify `AdditionalImportDirs` to give the location of proto files outside
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rephrase "to give the location of proto files outside
the project" as e.g. "to provide the list of directories in which the protocol buffer compiler will search for imported proto files".
(your original phrasing seems a bit vague).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

the project. Eg.

```xml
<Protobuf Include="protos/*.proto" ProtoRoot="protos"
AdditionalImportDirs="/folder/ouside/project/protos/myapis/" ... />
```

#### My .proto files have same filename in different folders

Starting from Grpc.Tools version 2.31, protocol buffers compilation preserves original folder structure for generated files. Eg.
Expand Down Expand Up @@ -352,6 +360,7 @@ The following metadata are recognized on the `<Protobuf>` items.
| GrpcOutputDir | See notes | A directory | Directory for generated gRPC stubs |
| GrpcOutputOptions | | arbitrary options | Extra options passed to gRPC codegen as `--grpc_opt=opt1,opt2` |
| GrpcServices | `both` | `none`, `client`, `server`, `both` | Generated gRPC stubs |
| AdditionalImportDirs | See notes | Directories | Additional directories for to find files |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: "Additional directories for to find files"? Let's update to something more intelligible (also see the comment below).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated


__Notes__

Expand Down Expand Up @@ -389,12 +398,17 @@ and "GrpcServices" metadata, but it might be useful in situations where you want
to explicitly pass some otherwise unsupported (e.g. experimental) options to the
`grpc_csharp_plugin`.

* __AdditionalImportDirs__
Pass additional directories to include proto files. These may be directories _outside_ of the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO it's inaccurate to say "Pass additional directories to include proto files".
How about "Specify additional directories in which the protocol buffer compiler will search for imported proto files."?

FTR, the official helptext for the -I flag in protoc is : Specify the directory in which to search for imports. May be specified multiple times; directories will be searched in order. ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

project directory. These directories are passed to the code generator via the `-I/--proto_path` option
together with `Protobuf_StandardImportsPath` and `ProtoRoot` directories.

__Specifying multiple values in properties__

Some properties allow you to specify multiple values in a list. The items in a list need to
be separated by semi-colons (;). This is the syntax that MsBuild uses for lists.

The properties that can have lists of items are: __OutputOptions__, __AdditionalProtocArguments__, __GrpcOutputOptions__
The properties that can have lists of items are: __OutputOptions__, __AdditionalProtocArguments__, __GrpcOutputOptions__, __AdditionalImportDirs__

Example: to specify two additional arguments: ```--plugin=protoc-gen-myplugin=D:\myplugin.exe --myplugin_out=.```

Expand Down