Add a build rule for bytecode version of kernel_service.dill

Bug: https://github.com/dart-lang/sdk/issues/36047
Change-Id: Ifc95ff270c33cce13699bda23c1b7c8fb6139e2e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96835
Commit-Queue: Liam Appelbe <liama@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
diff --git a/runtime/bin/BUILD.gn b/runtime/bin/BUILD.gn
index d0c16c7..f4961fb 100644
--- a/runtime/bin/BUILD.gn
+++ b/runtime/bin/BUILD.gn
@@ -650,6 +650,7 @@
     ":gen_kernel_bytecode_dill",
     ":kernel_service_dill_linkable",
     ":platform_strong_dill_linkable",
+    "../../utils/kernel-service:kernel_service_bytecode_dill",
   ]
   sources = get_target_outputs(":kernel_service_dill_linkable") +
             get_target_outputs(":platform_strong_dill_linkable")
diff --git a/utils/kernel-service/BUILD.gn b/utils/kernel-service/BUILD.gn
index e20ade7..846640b 100644
--- a/utils/kernel-service/BUILD.gn
+++ b/utils/kernel-service/BUILD.gn
@@ -60,40 +60,51 @@
   output = "$root_out_dir/frontend_server.dart.snapshot"
 }
 
-prebuilt_dart_action("kernel_service_dill") {
-  deps = [
-    "../../runtime/vm:kernel_platform_files($dart_host_toolchain)",
-    "../../runtime/vm:vm_platform",
-  ]
-  kernel_service_script = "../../pkg/vm/bin/kernel_service.dart"
-  gen_kernel_script = "../../pkg/vm/bin/gen_kernel.dart"
+template("kernel_service_dill") {
+  prebuilt_dart_action("kernel_service" + target_name + "_dill") {
+    deps = [
+      "../../runtime/vm:kernel_platform_files($dart_host_toolchain)",
+      "../../runtime/vm:vm_platform",
+    ]
+    kernel_service_script = "../../pkg/vm/bin/kernel_service.dart"
+    gen_kernel_script = "../../pkg/vm/bin/gen_kernel.dart"
 
-  inputs = [
-    gen_kernel_script,
-    kernel_service_script,
-    "$root_out_dir/vm_platform_strong.dill",
-  ]
-  output = "$root_gen_dir/kernel_service.dill"
-  outputs = [
-    output,
-  ]
+    inputs = [
+      gen_kernel_script,
+      kernel_service_script,
+      "$root_out_dir/vm_platform_strong.dill",
+    ]
+    output = "$root_gen_dir/kernel_service" + invoker.target_name + ".dill"
+    outputs = [
+      output,
+    ]
 
-  depfile = "$root_gen_dir/kernel_service_dill.d"
-  abs_depfile = rebase_path(depfile)
-  rebased_output = rebase_path(output, root_build_dir)
-  vm_args = [
-    "--depfile=$abs_depfile",
-    "--depfile_output_filename=$rebased_output",
-  ]
+    depfile = "$root_gen_dir/kernel_service" + invoker.target_name + "_dill.d"
+    abs_depfile = rebase_path(depfile)
+    rebased_output = rebase_path(output, root_build_dir)
+    vm_args = [
+      "--depfile=$abs_depfile",
+      "--depfile_output_filename=$rebased_output",
+    ]
 
-  script = gen_kernel_script
+    script = gen_kernel_script
 
-  args = [
-    "--packages=" + rebase_path("../../.packages"),
-    "--platform=" + rebase_path("$root_out_dir/vm_platform_strong.dill"),
-    "--no-aot",
-    "--no-embed-sources",
-    "--output=" + rebase_path("$root_gen_dir/kernel_service.dill"),
-    rebase_path(kernel_service_script),
-  ]
+    args =
+        invoker.extra_args + [
+          "--packages=" + rebase_path("../../.packages"),
+          "--platform=" + rebase_path("$root_out_dir/vm_platform_strong.dill"),
+          "--no-aot",
+          "--no-embed-sources",
+          "--output=" + rebase_path(output),
+          rebase_path(kernel_service_script),
+        ]
+  }
+}
+
+kernel_service_dill("") {
+  extra_args = []
+}
+
+kernel_service_dill("_bytecode") {
+  extra_args = [ "--gen-bytecode" ]
 }