| load("@rules_pkg//pkg:mappings.bzl", "pkg_files", "strip_prefix") | |
| load("//build_defs:internal_shell.bzl", "inline_sh_binary") | |
| inline_sh_binary( | |
| name = "build_conformance_test", | |
| srcs = ["Google.Protobuf.Conformance.csproj"], | |
| cmd = "dotnet build -c Release $(SRCS)", | |
| visibility = ["//visibility:private"], | |
| ) | |
| CONFORMANCE_DEPS = [ | |
| "Google.Protobuf.dll", | |
| "Google.Protobuf.Conformance.deps.json", | |
| "Google.Protobuf.Conformance.pdb", | |
| "Google.Protobuf.Conformance.runtimeconfig.json", | |
| "Google.Protobuf.Test.dll", | |
| "Google.Protobuf.Test.TestProtos.dll", | |
| "Microsoft.TestPlatform.CommunicationUtilities.dll", | |
| "Microsoft.TestPlatform.CoreUtilities.dll", | |
| "Microsoft.TestPlatform.CrossPlatEngine.dll", | |
| "Microsoft.TestPlatform.PlatformAbstractions.dll", | |
| "Microsoft.TestPlatform.Utilities.dll", | |
| "Microsoft.VisualStudio.CodeCoverage.Shim.dll", | |
| "Microsoft.VisualStudio.TestPlatform.Common.dll", | |
| "Microsoft.VisualStudio.TestPlatform.ObjectModel.dll", | |
| "NUnit3.TestAdapter.dll", | |
| "Newtonsoft.Json.dll", | |
| "NuGet.Frameworks.dll", | |
| "nunit.engine.api.dll", | |
| "nunit.engine.core.dll", | |
| "nunit.engine.dll", | |
| "nunit.framework.dll", | |
| "testcentric.engine.metadata.dll", | |
| "testhost.dll", | |
| ] | |
| filegroup( | |
| name = "srcs", | |
| srcs = [ | |
| "Google.Protobuf.Conformance.csproj", | |
| "Program.cs", | |
| ], | |
| visibility = [ | |
| "//csharp:__subpackages__", | |
| ], | |
| ) | |
| genrule( | |
| name = "package_conformance_test", | |
| srcs = [ | |
| "Program.cs", | |
| "Google.Protobuf.Conformance.csproj", | |
| "//conformance:conformance_csharp_proto", | |
| "//csharp:srcs", | |
| ], | |
| outs = CONFORMANCE_DEPS + ["Google.Protobuf.Conformance.dll"], | |
| cmd = """ | |
| SRCDIR=$$(dirname $(location :Program.cs)) | |
| cp $(location //conformance:conformance_csharp_proto) $$SRCDIR | |
| DOTNET_CLI_HOME=/tmp ./$(location :build_conformance_test) | |
| cp -r $$SRCDIR/bin/Release/net8.0/* $(RULEDIR) | |
| """, | |
| tools = [":build_conformance_test"], | |
| visibility = ["//visibility:private"], | |
| ) | |
| filegroup( | |
| name = "conformance_dll", | |
| srcs = ["Google.Protobuf.Conformance.dll"], | |
| data = [":package_conformance_test"], | |
| visibility = ["//conformance:__subpackages__"], | |
| ) | |
| filegroup( | |
| name = "conformance_runfiles", | |
| srcs = CONFORMANCE_DEPS, | |
| data = [":package_conformance_test"], | |
| visibility = ["//conformance:__subpackages__"], | |
| ) |