|
|
|
# Protobuf C# runtime
|
|
|
|
#
|
|
|
|
# See also code generation logic under /src/google/protobuf/compiler/csharp.
|
|
|
|
|
|
|
|
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
|
|
|
|
load("//:protobuf.bzl", "internal_csharp_proto_library")
|
|
|
|
load("//build_defs:internal_shell.bzl", "inline_sh_test")
|
|
|
|
load("//conformance:defs.bzl", "conformance_test")
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
# Tests
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
conformance_test(
|
|
|
|
name = "conformance_test",
|
|
|
|
failure_list = "//conformance:failure_list_csharp.txt",
|
|
|
|
testee = "//conformance:conformance_csharp",
|
|
|
|
text_format_failure_list = "//conformance:text_format_failure_list_csharp.txt",
|
|
|
|
)
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
# 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.Benchmarks/wrapper_benchmark_messages.proto",
|
|
|
|
"src/Google.Protobuf.Test/testprotos.pb",
|
|
|
|
"src/Google.Protobuf.sln",
|
|
|
|
],
|
|
|
|
visibility = [
|
|
|
|
"//csharp:__subpackages__",
|
|
|
|
"//conformance:__subpackages__"
|
|
|
|
],
|
|
|
|
)
|
|
|
|
|
|
|
|
filegroup(
|
|
|
|
name = "wkt_cs_srcs",
|
|
|
|
srcs = [
|
|
|
|
"src/Google.Protobuf/Reflection/Descriptor.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Any.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Api.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Duration.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Empty.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/FieldMask.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/SourceContext.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Struct.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Timestamp.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Type.cs",
|
|
|
|
"src/Google.Protobuf/WellKnownTypes/Wrappers.cs",
|
|
|
|
],
|
|
|
|
visibility = ["//src/google/protobuf/compiler/csharp:__pkg__"],
|
|
|
|
)
|
|
|
|
|
|
|
|
inline_sh_test(
|
|
|
|
name = "tests",
|
|
|
|
srcs = [
|
|
|
|
":srcs",
|
|
|
|
"src/Google.Protobuf.sln",
|
|
|
|
"//csharp/src/Google.Protobuf.Conformance:srcs",
|
|
|
|
"//benchmarks/datasets:proto3_datasets"
|
|
|
|
],
|
|
|
|
cmd = """
|
|
|
|
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 netcoreapp3.1 src/Google.Protobuf.Test/Google.Protobuf.Test.csproj
|
|
|
|
popd
|
|
|
|
""",
|
|
|
|
)
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
# Distribution files
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
pkg_files(
|
|
|
|
name = "dist_files",
|
|
|
|
srcs = [
|
|
|
|
":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",
|
|
|
|
"//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)"],
|
|
|
|
)
|