Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.8 KiB
149 lines
4.8 KiB
# Protobuf C# runtime |
|
# |
|
# See also code generation logic under /src/google/protobuf/compiler/csharp. |
|
|
|
load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix") |
|
load("//build_defs:internal_shell.bzl", "inline_sh_test") |
|
load("//conformance:defs.bzl", "conformance_test") |
|
load("//editions:defaults.bzl", "compile_edition_defaults", "embed_edition_defaults") |
|
load("//upb/cmake:build_defs.bzl", "staleness_test") |
|
|
|
################################################################################ |
|
# Tests |
|
################################################################################ |
|
|
|
conformance_test( |
|
name = "conformance_test", |
|
failure_list = "//conformance:failure_list_csharp.txt", |
|
maximum_edition = "2023", |
|
testee = "//conformance:conformance_csharp", |
|
) |
|
|
|
################################################################################ |
|
# CSharp Runtime |
|
################################################################################ |
|
|
|
filegroup( |
|
name = "srcs", |
|
srcs = glob( |
|
[ |
|
"keys/*", |
|
"protos/*", |
|
"src/**/*.cs*", # .cs and .csproj |
|
], |
|
exclude = [ |
|
# Exclude generated files. |
|
"src/*/obj/**/*", |
|
], |
|
) + [ |
|
"src/Directory.Build.props", |
|
"src/Google.Protobuf.Test/testprotos.pb", |
|
"src/Google.Protobuf.sln", |
|
], |
|
visibility = [ |
|
"//conformance:__subpackages__", |
|
"//csharp:__subpackages__", |
|
], |
|
) |
|
|
|
filegroup( |
|
name = "wkt_cs_srcs", |
|
srcs = [ |
|
"src/Google.Protobuf/Reflection/Descriptor.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Any.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Api.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Duration.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Empty.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/FieldMask.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/SourceContext.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Struct.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Timestamp.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Type.pb.cs", |
|
"src/Google.Protobuf/WellKnownTypes/Wrappers.pb.cs", |
|
], |
|
visibility = ["//src/google/protobuf/compiler/csharp:__pkg__"], |
|
) |
|
|
|
inline_sh_test( |
|
name = "tests", |
|
srcs = [ |
|
"src/Google.Protobuf.sln", |
|
":srcs", |
|
"//conformance:conformance_csharp_proto", |
|
"//csharp/src/Google.Protobuf.Conformance:srcs", |
|
], |
|
cmd = """ |
|
cp $(rootpath //conformance:conformance_csharp_proto) `dirname $(location src/Google.Protobuf.sln)`/Google.Protobuf.Conformance/ |
|
pushd `dirname $(location src/Google.Protobuf.sln)`/.. |
|
dotnet restore src/Google.Protobuf.sln |
|
dotnet build -c Release src/Google.Protobuf.sln |
|
dotnet test -c Release -f net6.0 src/Google.Protobuf.Test/Google.Protobuf.Test.csproj |
|
popd |
|
""", |
|
) |
|
|
|
################################################################################ |
|
# Distribution files |
|
################################################################################ |
|
|
|
pkg_files( |
|
name = "dist_files", |
|
srcs = [ |
|
".editorconfig", |
|
".gitignore", |
|
"BUILD.bazel", |
|
"CHANGES.txt", |
|
"Google.Protobuf.Tools.nuspec", |
|
"Google.Protobuf.Tools.targets", |
|
"NuGet.Config", |
|
"README.md", |
|
"build_packages.bat", |
|
"build_release.sh", |
|
"build_tools.sh", |
|
"buildall.bat", |
|
"buildall.sh", |
|
"generate_protos.sh", |
|
"install_dotnet_sdk.ps1", |
|
":srcs", |
|
"//csharp/src/Google.Protobuf.Conformance:dist_files", |
|
], |
|
strip_prefix = strip_prefix.from_root(""), |
|
visibility = ["//pkg:__pkg__"], |
|
) |
|
|
|
sh_binary( |
|
name = "release", |
|
srcs = ["build_release.sh"], |
|
args = ["$(location build_release.sh)"], |
|
) |
|
|
|
################################################################################ |
|
# Generated edition defaults (and staleness test) |
|
################################################################################ |
|
|
|
compile_edition_defaults( |
|
name = "csharp_edition_defaults", |
|
srcs = [ |
|
"//:descriptor_proto", |
|
], |
|
maximum_edition = "2023", |
|
minimum_edition = "PROTO2", |
|
) |
|
|
|
# TODO Make bazel tests use this output instead of the checked-in one |
|
embed_edition_defaults( |
|
name = "embedded_csharp_edition_defaults_generate", |
|
defaults = "csharp_edition_defaults", |
|
encoding = "base64", |
|
output = "generated/src/Google.Protobuf/Reflection/FeatureSetDescriptor.g.cs", |
|
placeholder = "DEFAULTS_VALUE", |
|
template = "src/Google.Protobuf/Reflection/FeatureSetDescriptor.g.cs.template", |
|
) |
|
|
|
staleness_test( |
|
name = "generated_csharp_defaults_staleness_test", |
|
outs = ["src/Google.Protobuf/Reflection/FeatureSetDescriptor.g.cs"], |
|
generated_pattern = "generated/%s", |
|
tags = ["manual"], |
|
target_files = ["src/Google.Protobuf/Reflection/FeatureSetDescriptor.g.cs"], |
|
)
|
|
|