|  | # 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.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", | 
|  | ], | 
|  | 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)"], | 
|  | ) |