[singlejar] Enable native singlejar on Windows
See #2241
Closes #6608.
PiperOrigin-RevId: 220267534
diff --git a/src/BUILD b/src/BUILD
index d69b599..04a814d 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -161,13 +161,12 @@
":dummy_darwin_tools",
],
}) + select({
- # TODO(bazel-team): Once https://github.com/bazelbuild/bazel/issues/2241
- # is resolved, use cc implementation of singlejar on windows
"//src/conditions:windows": [
- "//src/java_tools/singlejar:SingleJar_deploy.jar",
"//src/tools/launcher:launcher",
"//third_party/def_parser:def_parser",
],
+ "//conditions:default": [],
+ }) + select({
"//src/conditions:arm": [
"//src/java_tools/singlejar:SingleJar_deploy.jar",
],
diff --git a/src/create_embedded_tools.py b/src/create_embedded_tools.py
index 32f226947..4fd049e 100644
--- a/src/create_embedded_tools.py
+++ b/src/create_embedded_tools.py
@@ -46,6 +46,7 @@
('*ExperimentalRunner_deploy.jar',
lambda x: 'tools/jdk/ExperimentalTestRunner_deploy.jar'),
('*Runner_deploy.jar', lambda x: 'tools/jdk/TestRunner_deploy.jar'),
+ ('*singlejar_local.exe', lambda x: 'tools/jdk/singlejar/singlejar.exe'),
('*singlejar_local', lambda x: 'tools/jdk/singlejar/singlejar'),
('*launcher.exe', lambda x: 'tools/launcher/launcher.exe'),
('*def_parser.exe', lambda x: 'tools/def_parser/def_parser.exe'),
diff --git a/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD b/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD
index 9bc0a97..df2ae10 100644
--- a/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/blackbox/bazel/BUILD
@@ -78,15 +78,11 @@
data = [
":langtools-copy",
"//src/java_tools/junitrunner/java/com/google/testing/junit/runner:Runner_deploy.jar",
+ "//src/tools/singlejar",
"//third_party/ijar",
"//third_party/java/jdk/langtools:test-srcs",
"@bazel_tools//tools/jdk:current_java_runtime",
- ] + select({
- # TODO(bazel-team): Once https://github.com/bazelbuild/bazel/issues/2241
- # is resolved, use cc implementation of singlejar on windows
- "//src/conditions:windows": ["//src/java_tools/singlejar:SingleJar_deploy.jar"],
- "//conditions:default": ["//src/tools/singlejar:singlejar"],
- }),
+ ],
visibility = [":tests"],
deps = [
":common_tools_deps",
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index bb4fa95..ae685bd 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -36,18 +36,14 @@
"//src/test/shell:bin/bazel",
"//src/test/shell:integration_test_setup.sh",
"//src/test/shell:testenv.sh",
+ "//src/tools/singlejar",
"//third_party:srcs",
"//third_party/ijar",
"//third_party/java/jdk/langtools:test-srcs",
"//tools:srcs",
"@bazel_skylib//:test_deps",
"@bazel_tools//tools/jdk:current_java_runtime",
- ] + select({
- # TODO(bazel-team): Once https://github.com/bazelbuild/bazel/issues/2241
- # is resolved, use cc implementation of singlejar on windows
- "//src/conditions:windows": ["//src/java_tools/singlejar:SingleJar_deploy.jar"],
- "//conditions:default": ["//src/tools/singlejar:singlejar"],
- }),
+ ],
visibility = [
"//src/test/shell:__subpackages__",
"//src/tools/package_printer/java/com/google/devtools/build/packageprinter:__pkg__",
diff --git a/src/tools/singlejar/BUILD b/src/tools/singlejar/BUILD
index 0c7dc46..c9e6b21 100644
--- a/src/tools/singlejar/BUILD
+++ b/src/tools/singlejar/BUILD
@@ -96,11 +96,6 @@
":zip_headers",
":zlib_interface",
],
- tags = [
- # TODO(laszlocsomor) Enable this test when BuildKite uses Bazel that includes
- # https://github.com/bazelbuild/bazel/commit/914b4ce14624171a97ff8b41f9202058f10d15b2
- "no_windows",
- ],
deps = [
":combiners",
":desugar_checking",
diff --git a/tools/android/BUILD.tools b/tools/android/BUILD.tools
index 41961f4..427b33e 100644
--- a/tools/android/BUILD.tools
+++ b/tools/android/BUILD.tools
@@ -77,35 +77,6 @@
visibility = ["//visibility:public"],
)
-java_import(
- name = "singlejar_deploy",
- jars = select({
- "//src/conditions:windows": ["@bazel_tools//tools/jdk:singlejar"],
- "//conditions:default": [],
- }),
- visibility = ["//visibility:private"],
-)
-
-java_binary(
- name = "singlejar_javabin",
- main_class = "com.google.devtools.build.singlejar.SingleJar",
- runtime_deps = select({
- "//src/conditions:windows": [":singlejar_deploy"],
- "//conditions:default": [],
- }),
- visibility = ["//visibility:private"],
-)
-
-gen_java_lang_extras_jar_cmd = """
- $(location %s) \
- --exclude_build_data \
- --dont_change_compression \
- --sources $(location @bazel_tools//tools/jdk:platformclasspath) \
- --include_prefixes "java/lang/invoke/" \
- --include_prefixes "java/lang/annotation/" \
- --output $@
- """
-
# javac needs this Jar to compile lambdas, method references, and type annotations.
# These classes are not part of the android.jar.
genrule(
@@ -113,15 +84,16 @@
srcs = [
"@bazel_tools//tools/jdk:platformclasspath"
],
- tools = select({
- "//src/conditions:windows": [":singlejar_javabin"],
- "//conditions:default": ["@bazel_tools//tools/jdk:singlejar"],
- }),
+ tools = ["@bazel_tools//tools/jdk:singlejar"],
outs = ["java_lang_extras.jar"],
- cmd = select({
- "//src/conditions:windows": gen_java_lang_extras_jar_cmd % ":singlejar_javabin",
- "//conditions:default": gen_java_lang_extras_jar_cmd % "@bazel_tools//tools/jdk:singlejar",
- }),
+ cmd = """
+ $(location @bazel_tools//tools/jdk:singlejar) \
+ --exclude_build_data \
+ --dont_change_compression \
+ --sources $(location @bazel_tools//tools/jdk:platformclasspath) \
+ --include_prefixes "java/lang/invoke/" \
+ --include_prefixes "java/lang/annotation/" \
+ --output $@""",
visibility = ["//visibility:private"],
)
diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD
index b1a2c21..461ea32 100644
--- a/tools/jdk/BUILD
+++ b/tools/jdk/BUILD
@@ -106,23 +106,11 @@
filegroup(
name = "singlejar",
srcs = select({
- "//src/conditions:remote": [":singlejar_remote"],
+ "//src/conditions:remote": ["//src/tools/singlejar:singlejar"],
"//conditions:default": glob(["singlejar/*"]),
}),
)
-# This is a separate filegroup from :singlejar above since Bazel doesn't
-# support nested selects (we need a logical "remote AND windows" condition).
-filegroup(
- name = "singlejar_remote",
- srcs = select({
- # TODO(jsharpe): Switch to //src/tools/singlejar:singlejar once
- # native singlejar works on Windows.
- "//src/conditions:windows": glob(["singlejar/*"]),
- "//conditions:default": ["//src/tools/singlejar:singlejar"],
- }),
-)
-
filegroup(
name = "genclass",
srcs = ["//tools/jdk:GenClass_deploy.jar"],