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