Split interop client and server into components
diff --git a/build.json b/build.json
index f8f23e0..bba9810 100644
--- a/build.json
+++ b/build.json
@@ -532,6 +532,36 @@
       "secure": "no"
     },
     {
+      "name": "interop_client_lib",
+      "build": "private",
+      "language": "c++",
+      "src": [
+        "test/cpp/interop/empty.proto",
+        "test/cpp/interop/messages.proto",
+        "test/cpp/interop/test.proto",
+        "test/cpp/interop/client_helper.cc",
+        "test/cpp/interop/interop_client.cc"
+      ],
+      "deps": [
+        "grpc_test_util",
+        "grpc++",
+        "grpc",
+        "gpr_test_util",
+        "gpr"
+      ]
+    },
+    {
+      "name": "interop_server_lib",
+      "build": "private",
+      "language": "c++",
+      "src": [
+        "test/cpp/interop/server_helper.cc"
+      ],
+      "deps": [
+        "grpc++"
+      ]
+    },
+    {
       "name": "pubsub_client_lib",
       "build": "private",
       "language": "c++",
@@ -1862,12 +1892,10 @@
       "run": false,
       "language": "c++",
       "src": [
-        "test/cpp/interop/empty.proto",
-        "test/cpp/interop/messages.proto",
-        "test/cpp/interop/test.proto",
         "test/cpp/interop/client.cc"
       ],
       "deps": [
+        "interop_client_lib",
         "grpc++_test_util",
         "grpc_test_util",
         "grpc++",
@@ -1888,6 +1916,7 @@
         "test/cpp/interop/server.cc"
       ],
       "deps": [
+        "interop_server_lib",
         "grpc++_test_util",
         "grpc_test_util",
         "grpc++",