NOTE 1: the csharp_* rules currently don't play nicely with sandboxing. You may see errors like:
The user's home directory could not be determined. Set the 'DOTNET_CLI_HOME' environment variable to specify the directory to use.
or
System.ArgumentNullException: Value cannot be null.
Parameter name: path1
at System.IO.Path.Combine(String path1, String path2)
at Microsoft.DotNet.Configurer.CliFallbackFolderPathCalculator.get_DotnetUserProfileFolderPath()
at Microsoft.DotNet.Configurer.FirstTimeUseNoticeSentinel..ctor(CliFallbackFolderPathCalculator cliFallbackFolderPathCalculator)
at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
at Microsoft.DotNet.Cli.Program.Main(String[] args)
To remedy this, use --strategy=CoreCompile=standalone for the csharp rules (put it in your .bazelrc file).
NOTE 2: the csharp nuget dependency sha256 values do not appear stable.
Generates csharp protobuf artifacts
load("@build_stack_rules_proto//csharp:deps.bzl", "csharp_proto_compile")
csharp_proto_compile()
load("@build_stack_rules_proto//csharp:csharp_proto_compile.bzl", "csharp_proto_compile")
csharp_proto_compile(
name = "person_csharp_proto",
deps = ["@build_stack_rules_proto//example/proto:person_proto"],
)
Name |
Type |
Default |
Description |
deps |
list<ProtoInfo> |
[] |
List of labels that provide a ProtoInfo (native.proto_library ) |
Name |
Type |
Default |
Description |
plugins |
list<ProtoPluginInfo> |
[] |
List of labels that provide a ProtoPluginInfo |
plugin_options |
list<string> |
[] |
List of additional 'global' plugin options (applies to all plugins) |
outputs |
list<generated file> |
[] |
List of additional expected generated file outputs |
has_services |
bool |
False |
If the proto files(s) have a service rpc, generate grpc outputs |
protoc |
executable file |
@com_google_protobuf//:protoc |
The protocol compiler tool |
verbose |
int |
0 |
1: show command, 2: show sandbox after, 3: show sandbox before |
include_imports |
bool |
True |
Pass the --include_imports argument to the protoc_plugin |
include_source_info |
bool |
True |
Pass the --include_source_info argument to the protoc_plugin |
transitive |
bool |
False |
Generated outputs for *.proto directly named in deps AND all transitive proto_library dependencies |
Generates csharp protobuf+gRPC artifacts
load("@build_stack_rules_proto//csharp:deps.bzl", "csharp_grpc_compile")
csharp_grpc_compile()
load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
grpc_deps()
load("@build_stack_rules_proto//csharp:csharp_grpc_compile.bzl", "csharp_grpc_compile")
csharp_grpc_compile(
name = "greeter_csharp_grpc",
deps = ["@build_stack_rules_proto//example/proto:greeter_grpc"],
)
Name |
Type |
Default |
Description |
deps |
list<ProtoInfo> |
[] |
List of labels that provide a ProtoInfo (native.proto_library ) |
Name |
Type |
Default |
Description |
plugins |
list<ProtoPluginInfo> |
[] |
List of labels that provide a ProtoPluginInfo |
plugin_options |
list<string> |
[] |
List of additional 'global' plugin options (applies to all plugins) |
outputs |
list<generated file> |
[] |
List of additional expected generated file outputs |
has_services |
bool |
False |
If the proto files(s) have a service rpc, generate grpc outputs |
protoc |
executable file |
@com_google_protobuf//:protoc |
The protocol compiler tool |
verbose |
int |
0 |
1: show command, 2: show sandbox after, 3: show sandbox before |
include_imports |
bool |
True |
Pass the --include_imports argument to the protoc_plugin |
include_source_info |
bool |
True |
Pass the --include_source_info argument to the protoc_plugin |
transitive |
bool |
False |
Generated outputs for *.proto directly named in deps AND all transitive proto_library dependencies |
Generates csharp protobuf library
load("@build_stack_rules_proto//csharp:deps.bzl", "csharp_proto_library")
csharp_proto_library()
load(
"@io_bazel_rules_dotnet//dotnet:defs.bzl",
"core_register_sdk",
"dotnet_register_toolchains",
"dotnet_repositories",
)
core_version = "v2.1.503"
dotnet_register_toolchains(
core_version = core_version,
)
dotnet_register_toolchains(
core_version = core_version,
)
core_register_sdk(
name = "core_sdk",
core_version = core_version,
)
dotnet_repositories()
load("@build_stack_rules_proto//csharp/nuget:packages.bzl", nuget_packages = "packages")
nuget_packages()
load("@build_stack_rules_proto//csharp/nuget:nuget.bzl", "nuget_protobuf_packages")
nuget_protobuf_packages()
load("@build_stack_rules_proto//csharp:csharp_proto_library.bzl", "csharp_proto_library")
csharp_proto_library(
name = "person_csharp_library",
deps = ["@build_stack_rules_proto//example/proto:person_proto"],
)
Category |
Flag |
Value |
Description |
build |
strategy |
CoreCompile=standalone |
dotnet SDK desperately wants to find the HOME directory |
build |
incompatible_disallow_struct_provider_syntax |
false |
|
Name |
Type |
Default |
Description |
deps |
list<ProtoInfo> |
[] |
List of labels that provide a ProtoInfo (native.proto_library ) |
Name |
Type |
Default |
Description |
plugins |
list<ProtoPluginInfo> |
[] |
List of labels that provide a ProtoPluginInfo |
plugin_options |
list<string> |
[] |
List of additional 'global' plugin options (applies to all plugins) |
outputs |
list<generated file> |
[] |
List of additional expected generated file outputs |
has_services |
bool |
False |
If the proto files(s) have a service rpc, generate grpc outputs |
protoc |
executable file |
@com_google_protobuf//:protoc |
The protocol compiler tool |
verbose |
int |
0 |
1: show command, 2: show sandbox after, 3: show sandbox before |
include_imports |
bool |
True |
Pass the --include_imports argument to the protoc_plugin |
include_source_info |
bool |
True |
Pass the --include_source_info argument to the protoc_plugin |
transitive |
bool |
False |
Generated outputs for *.proto directly named in deps AND all transitive proto_library dependencies |
Generates csharp protobuf+gRPC library
load("@build_stack_rules_proto//csharp:deps.bzl", "csharp_grpc_library")
csharp_grpc_library()
load(
"@io_bazel_rules_dotnet//dotnet:defs.bzl",
"core_register_sdk",
"dotnet_register_toolchains",
"dotnet_repositories",
)
core_version = "v2.1.503"
dotnet_register_toolchains(
core_version = core_version,
)
dotnet_register_toolchains(
core_version = core_version,
)
core_register_sdk(
name = "core_sdk",
core_version = core_version,
)
dotnet_repositories()
load("@build_stack_rules_proto//csharp/nuget:packages.bzl", nuget_packages = "packages")
nuget_packages()
load("@build_stack_rules_proto//csharp/nuget:nuget.bzl", "nuget_protobuf_packages")
nuget_protobuf_packages()
load("@build_stack_rules_proto//csharp/nuget:nuget.bzl", "nuget_grpc_packages")
nuget_grpc_packages()
load("@build_stack_rules_proto//csharp:csharp_grpc_library.bzl", "csharp_grpc_library")
csharp_grpc_library(
name = "greeter_csharp_library",
deps = ["@build_stack_rules_proto//example/proto:greeter_grpc"],
)
Category |
Flag |
Value |
Description |
build |
strategy |
CoreCompile=standalone |
dotnet SDK desperately wants to find the HOME directory |
build |
incompatible_disallow_struct_provider_syntax |
false |
|
Name |
Type |
Default |
Description |
deps |
list<ProtoInfo> |
[] |
List of labels that provide a ProtoInfo (native.proto_library ) |
Name |
Type |
Default |
Description |
plugins |
list<ProtoPluginInfo> |
[] |
List of labels that provide a ProtoPluginInfo |
plugin_options |
list<string> |
[] |
List of additional 'global' plugin options (applies to all plugins) |
outputs |
list<generated file> |
[] |
List of additional expected generated file outputs |
has_services |
bool |
False |
If the proto files(s) have a service rpc, generate grpc outputs |
protoc |
executable file |
@com_google_protobuf//:protoc |
The protocol compiler tool |
verbose |
int |
0 |
1: show command, 2: show sandbox after, 3: show sandbox before |
include_imports |
bool |
True |
Pass the --include_imports argument to the protoc_plugin |
include_source_info |
bool |
True |
Pass the --include_source_info argument to the protoc_plugin |
transitive |
bool |
False |
Generated outputs for *.proto directly named in deps AND all transitive proto_library dependencies |