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"],