Use cc implementation of singlejar except on Windows. Change-Id: Ie4a2db2a6fa1ea86f4bdd42cd806f6804a0c56d4 PiperOrigin-RevId: 157473007
diff --git a/src/BUILD b/src/BUILD index b4b9ba6..fcb7ad0 100644 --- a/src/BUILD +++ b/src/BUILD
@@ -142,7 +142,6 @@ "//src/main/protobuf:srcs", "//src/java_tools/buildjar:JavaBuilderDeploy", "//src/java_tools/buildjar:VanillaJavaBuilder_deploy.jar", - "//src/java_tools/singlejar:SingleJar_deploy.jar", "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass:GenClass_deploy.jar", "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:Runner_deploy.jar", "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:ExperimentalRunner_deploy.jar", @@ -163,6 +162,19 @@ "//third_party/ijar:zipper", ], }) + select({ + ":windows": [ + "//src/java_tools/singlejar:SingleJar_deploy.jar", + ], + ":windows_msys": [ + "//src/java_tools/singlejar:SingleJar_deploy.jar", + ], + ":windows_msvc": [ + "//src/java_tools/singlejar:SingleJar_deploy.jar", + ], + "//conditions:default": [ + "//src/tools/singlejar:singlejar", + ], + }) + select({ "//tools/jdk:jdk7": [], "//conditions:default": [ "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine:turbine_deploy.jar",
diff --git a/src/create_embedded_tools.sh b/src/create_embedded_tools.sh index a687495..b5aaa6b 100755 --- a/src/create_embedded_tools.sh +++ b/src/create_embedded_tools.sh
@@ -39,10 +39,11 @@ *turbine_deploy.jar) OUTPUT_PATH=tools/jdk/turbine_deploy.jar ;; *javac-9-dev-r4023-2.jar) OUTPUT_PATH=third_party/java/jdk/langtools/javac-9-dev-r4023-2.jar ;; *javac7.jar) OUTPUT_PATH=third_party/java/jdk/langtools/javac7.jar ;; - *SingleJar_deploy.jar) OUTPUT_PATH=tools/jdk/SingleJar_deploy.jar ;; + *SingleJar_deploy.jar) OUTPUT_PATH=tools/jdk/singlejar/SingleJar_deploy.jar ;; *GenClass_deploy.jar) OUTPUT_PATH=tools/jdk/GenClass_deploy.jar ;; *ExperimentalRunner_deploy.jar) OUTPUT_PATH=tools/jdk/ExperimentalTestRunner_deploy.jar ;; *Runner_deploy.jar) OUTPUT_PATH=tools/jdk/TestRunner_deploy.jar ;; + *singlejar) OUTPUT_PATH=tools/jdk/singlejar/singlejar ;; *ijar.exe) OUTPUT_PATH=tools/jdk/ijar/ijar.exe ;; *ijar) OUTPUT_PATH=tools/jdk/ijar/ijar ;; *zipper.exe) OUTPUT_PATH=tools/zip/zipper/zipper.exe ;;
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD index b0ac3fd..55e5e85 100644 --- a/src/test/shell/bazel/BUILD +++ b/src/test/shell/bazel/BUILD
@@ -30,7 +30,6 @@ "//src:bazel", "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass:GenClass_deploy.jar", "//src/java_tools/junitrunner/java/com/google/testing/junit/runner:Runner_deploy.jar", - "//src/java_tools/singlejar:SingleJar_deploy.jar", "//src/main/tools:linux-sandbox", "//src/main/tools:process-wrapper", "//src/test/shell:bashunit", @@ -45,7 +44,12 @@ # TODO(cushon): migrate to extclasspath and delete "@local_jdk//:extdir", "@local_jdk//:jdk", - ], + ] + select({ + "//src:windows": ["//src/java_tools/singlejar:SingleJar_deploy.jar"], + "//src:windows_msys": ["//src/java_tools/singlejar:SingleJar_deploy.jar"], + "//src:windows_msvc": ["//src/java_tools/singlejar:SingleJar_deploy.jar"], + "//conditions:default": ["//src/tools/singlejar:singlejar"], + }), visibility = [ "//src/test/shell:__subpackages__", ],
diff --git a/tools/android/BUILD.tools b/tools/android/BUILD.tools index 2c2e10f..32d6eb9 100644 --- a/tools/android/BUILD.tools +++ b/tools/android/BUILD.tools
@@ -61,13 +61,13 @@ "@local_jdk//:bootclasspath" ], tools = [ - "@bazel_tools//tools/jdk:SingleJar_binary", + "@bazel_tools//tools/jdk:singlejar", ], outs = ["java_lang_extras.jar"], cmd = """ for jar in $(locations @local_jdk//:bootclasspath); do if [[ "$${jar}" == *"/rt.jar" ]]; then - $(location @bazel_tools//tools/jdk:SingleJar_binary) \ + $(location @bazel_tools//tools/jdk:singlejar) \ --exclude_build_data \ --dont_change_compression \ --sources $${jar} \
diff --git a/tools/jdk/BUILD b/tools/jdk/BUILD index 005ae91..d526810 100644 --- a/tools/jdk/BUILD +++ b/tools/jdk/BUILD
@@ -63,6 +63,17 @@ srcs = glob(["ijar/*"]), ) +# On Windows, Java implementation of singlejar is used. We create a little +# filegroup that contains the appropriate platform-dependent file. +# Once https://github.com/bazelbuild/bazel/issues/2241 is fixed (that is, +# the native singlejar is used on windows), this file group can be reused since +# on Windows, executables end in ".exe", but the label we reach it through +# must be platform-independent. +filegroup( + name = "singlejar", + srcs = glob(["singlejar/*"]), +) + filegroup( name = "genclass", srcs = ["//tools/jdk:GenClass_deploy.jar"], @@ -74,11 +85,6 @@ ) filegroup( - name = "singlejar", - srcs = ["//tools/jdk:SingleJar_deploy.jar"], -) - -filegroup( name = "javabuilder", srcs = ["//tools/jdk:JavaBuilder_deploy.jar"], ) @@ -152,7 +158,7 @@ misc = [ "-XDskipDuplicateBridges=true", ], - singlejar = ["@bazel_tools//tools/jdk:SingleJar_deploy.jar"], + singlejar = ["@bazel_tools//tools/jdk:singlejar"], source_version = "8", target_version = "8", ) @@ -201,14 +207,3 @@ name = "JacocoCoverage", jars = [":JacocoCoverage_deploy.jar"], ) - -java_import( - name = "SingleJar", - jars = ["SingleJar_deploy.jar"], -) - -java_binary( - name = "SingleJar_binary", - main_class = "com.google.devtools.build.singlejar.SingleJar", - runtime_deps = [":SingleJar"], -)