[Bazel] Move conformance test targets to //conformance. (#9922)

diff --git a/conformance/BUILD.bazel b/conformance/BUILD.bazel
new file mode 100644
index 0000000..2b30604
--- /dev/null
+++ b/conformance/BUILD.bazel
@@ -0,0 +1,160 @@
+# Conformance testing for Protobuf.
+
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library", "cc_proto_library")
+load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
+
+exports_files([
+    "conformance_test_runner.sh",
+    "failure_list_java.txt",
+    "failure_list_java_lite.txt",
+    "text_format_failure_list_java.txt",
+    "text_format_failure_list_java_lite.txt",
+])
+
+cc_proto_library(
+    name = "test_messages_proto2_proto_cc",
+    deps = ["//:test_messages_proto2_proto"],
+)
+
+cc_proto_library(
+    name = "test_messages_proto3_proto_cc",
+    deps = ["//:test_messages_proto3_proto"],
+)
+
+proto_library(
+    name = "conformance_proto",
+    srcs = ["conformance.proto"],
+    visibility = ["//visibility:public"],
+)
+
+cc_proto_library(
+    name = "conformance_proto_cc",
+    deps = [":conformance_proto"],
+)
+
+java_proto_library(
+    name = "conformance_java_proto",
+    visibility = [
+        "//java:__subpackages__",
+    ],
+    deps = [":conformance_proto"],
+)
+
+java_lite_proto_library(
+    name = "conformance_java_proto_lite",
+    visibility = [
+        "//java:__subpackages__",
+    ],
+    deps = [":conformance_proto"],
+)
+
+cc_library(
+    name = "jsoncpp",
+    srcs = ["third_party/jsoncpp/jsoncpp.cpp"],
+    hdrs = ["third_party/jsoncpp/json.h"],
+    includes = ["."],
+)
+
+cc_library(
+    name = "conformance_test",
+    srcs = [
+        "conformance_test.cc",
+        "conformance_test_runner.cc",
+    ],
+    hdrs = [
+        "conformance_test.h",
+    ],
+    includes = ["."],
+    deps = [":conformance_proto_cc"],
+)
+
+cc_library(
+    name = "binary_json_conformance_suite",
+    srcs = ["binary_json_conformance_suite.cc"],
+    hdrs = ["binary_json_conformance_suite.h"],
+    deps = [
+        ":conformance_test",
+        ":jsoncpp",
+        ":test_messages_proto2_proto_cc",
+        ":test_messages_proto3_proto_cc",
+    ],
+)
+
+cc_library(
+    name = "text_format_conformance_suite",
+    srcs = ["text_format_conformance_suite.cc"],
+    hdrs = ["text_format_conformance_suite.h"],
+    deps = [
+        ":conformance_test",
+        ":test_messages_proto2_proto_cc",
+        ":test_messages_proto3_proto_cc",
+    ],
+)
+
+cc_binary(
+    name = "conformance_test_runner",
+    srcs = ["conformance_test_main.cc"],
+    visibility = ["//visibility:public"],
+    deps = [
+        ":binary_json_conformance_suite",
+        ":conformance_test",
+        ":text_format_conformance_suite",
+    ],
+)
+
+java_binary(
+    name = "conformance_java",
+    srcs = ["ConformanceJava.java"],
+    main_class = "ConformanceJava",
+    visibility = [
+        "//java:__subpackages__",
+    ],
+    deps = [
+        ":conformance_java_proto",
+        "//:protobuf_java",
+        "//:protobuf_java_util",
+        "//:test_messages_proto2_java_proto",
+        "//:test_messages_proto3_java_proto",
+    ],
+)
+
+java_binary(
+    name = "conformance_java_lite",
+    srcs = ["ConformanceJavaLite.java"],
+    main_class = "ConformanceJavaLite",
+    visibility = [
+        "//java:__subpackages__",
+    ],
+    deps = [
+        ":conformance_java_proto_lite",
+        "//:protobuf_java_util",
+        "//:protobuf_javalite",
+        "//:test_messages_proto2_java_proto_lite",
+        "//:test_messages_proto3_java_proto_lite",
+    ],
+)
+
+filegroup(
+    name = "all_files",
+    srcs = glob(["**/*"]),
+    visibility = ["//:__pkg__"],
+)
+
+pkg_files(
+    name = "dist_files",
+    srcs = glob(
+        ["**/*"],
+        exclude = [
+            # The following are not in autotools dist:
+            "conformance/autoload.php",
+            "conformance/conformance_nodejs.js",
+            "conformance/conformance_test_runner.sh",
+            "conformance/failure_list_java_lite.txt",
+            "conformance/failure_list_jruby.txt",
+            "conformance/text_format_failure_list_*.txt",
+            "conformance/update_failure_list.py",
+        ],
+    ),
+    strip_prefix = strip_prefix.from_root(""),
+    visibility = ["//pkg:__pkg__"],
+)