Enable header_compiler_direct

This change enables a faster but functionally identical version of turbine
for actions that don't need annotation processing.

Closes #6396.

PiperOrigin-RevId: 218458205
diff --git a/src/BUILD b/src/BUILD
index c717547..48d58a4 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -146,6 +146,7 @@
         "//third_party/ijar",
         "//third_party/ijar:zipper",
         "//third_party/ijar:embedded_tools",
+        "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_direct",
         "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_deploy.jar",
         "//third_party/java/jacoco:srcs",
         "//third_party/zlib:embedded_tools",
diff --git a/src/create_embedded_tools.py b/src/create_embedded_tools.py
index aaf5753..32f226947 100644
--- a/src/create_embedded_tools.py
+++ b/src/create_embedded_tools.py
@@ -37,6 +37,7 @@
     ('*JacocoCoverage*_deploy.jar',
      lambda x: 'tools/jdk/JacocoCoverage_deploy.jar'),
     ('*turbine_deploy.jar', lambda x: 'tools/jdk/turbine_deploy.jar'),
+    ('*turbine_direct*', lambda x: 'tools/jdk/' + os.path.basename(x)),
     ('*javac-9+181-r4173-1.jar',
      lambda x: 'third_party/java/jdk/langtools/javac-9+181-r4173-1.jar'),
     ('*bazel-singlejar_deploy.jar',
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD
index cbade56..64106ef 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/BUILD
@@ -10,6 +10,31 @@
     runtime_deps = [":turbine_main"],
 )
 
+java_binary(
+    name = "turbine_direct_binary",
+    main_class = "com.google.turbine.main.Main",
+    runtime_deps = [
+        "//src/main/protobuf:deps_java_proto",
+        "//third_party:guava",
+        "//third_party:jsr305",
+        "//third_party:turbine",
+    ],
+)
+
+filegroup(
+    name = "turbine_direct",
+    # TODO(cushon): consolidate with select in //third_party:turbine_direct.
+    srcs = select({
+        "//src/conditions:darwin": ["//third_party:turbine_direct"],
+        "//src/conditions:darwin_x86_64": ["//third_party:turbine_direct"],
+        "//src/conditions:linux_x86_64": ["//third_party:turbine_direct"],
+        "//conditions:default": ["turbine_direct_binary_deploy.jar"],
+    }),
+    visibility = [
+        "//:__subpackages__",
+    ],
+)
+
 java_library(
     name = "turbine_main",
     srcs = ["Turbine.java"],
diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD
index 53b72d6..3cfbc67 100644
--- a/tools/jdk/BUILD
+++ b/tools/jdk/BUILD
@@ -134,6 +134,11 @@
 )
 
 filegroup(
+    name = "turbine_direct",
+    srcs = glob(["turbine_direct*"]),
+)
+
+filegroup(
     name = "javabuilder",
     srcs = ["//tools/jdk:JavaBuilder_deploy.jar"],
 )
diff --git a/tools/jdk/default_java_toolchain.bzl b/tools/jdk/default_java_toolchain.bzl
index 54f9c92..c9bb388 100644
--- a/tools/jdk/default_java_toolchain.bzl
+++ b/tools/jdk/default_java_toolchain.bzl
@@ -66,6 +66,7 @@
     "forcibly_disable_header_compilation": 0,
     "genclass": ["@bazel_tools//tools/jdk:genclass"],
     "header_compiler": ["@bazel_tools//tools/jdk:turbine"],
+    "header_compiler_direct": ["@bazel_tools//tools/jdk:turbine_direct"],
     "ijar": ["@bazel_tools//tools/jdk:ijar"],
     "javabuilder": ["@bazel_tools//tools/jdk:javabuilder"],
     "javac": ["@bazel_tools//third_party/java/jdk/langtools:javac_jar"],