Refactor JDK 7 build to use the vendored version of it
Along the path, fix the build for JDK 7 and get rid of
most ugliness in the JDK 7 build. Now simply setting
JAVA_VERSION to 1.7 will build a JDK 7 compatible version.
Fixes #1159.
--
Change-Id: I9599283844a57d9e053f12d37445907f22a9232e
Reviewed-on: https://bazel-review.googlesource.com/#/c/3452
MOS_MIGRATED_REVID=120332747
diff --git a/src/BUILD b/src/BUILD
index 98460b1..c4fa2a7 100644
--- a/src/BUILD
+++ b/src/BUILD
@@ -100,7 +100,7 @@
"//src/tools/android/java/com/google/devtools/build/android/incrementaldeployment:srcs",
"//src/tools/android/java/com/google/devtools/build/android/ziputils:embedded_tools",
"//src/main/protobuf:srcs",
- "//src/java_tools/buildjar:JavaBuilder_deploy.jar",
+ "//src/java_tools/buildjar:JavaBuilderDeploy",
"//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",
diff --git a/src/create_embedded_tools.sh b/src/create_embedded_tools.sh
index e3b751c..8de4837 100755
--- a/src/create_embedded_tools.sh
+++ b/src/create_embedded_tools.sh
@@ -28,7 +28,9 @@
for i in $*; do
case "$i" in
- *JavaBuilder_deploy.jar) OUTPUT_PATH=tools/jdk/JavaBuilder_deploy.jar ;;
+ *tools/jdk/BUILD*) OUTPUT_PATH=tools/jdk/BUILD ;;
+ *JavaBuilder*_deploy.jar) OUTPUT_PATH=tools/jdk/JavaBuilder_deploy.jar ;;
+ *javac*.jar) OUTPUT_PATH=third_party/java/jdk/langtools/javac.jar ;;
*SingleJar_deploy.jar) OUTPUT_PATH=tools/jdk/SingleJar_deploy.jar ;;
*GenClass_deploy.jar) OUTPUT_PATH=tools/jdk/GenClass_deploy.jar ;;
*Runner_deploy.jar) OUTPUT_PATH=tools/jdk/TestRunner_deploy.jar ;;
diff --git a/src/java_tools/buildjar/BUILD b/src/java_tools/buildjar/BUILD
index f7f53a7..56298df 100644
--- a/src/java_tools/buildjar/BUILD
+++ b/src/java_tools/buildjar/BUILD
@@ -8,6 +8,14 @@
)
filegroup(
+ name = "JavaBuilderDeploy",
+ srcs = select({
+ "//tools/jdk:jdk7": ["//third_party/java/jdk/javabuilder:JavaBuilder_0.1.0"],
+ "//conditions:default": [":JavaBuilder_deploy.jar"],
+ }),
+)
+
+filegroup(
name = "bootstrap_deploy.jar",
srcs = ["//src/java_tools/buildjar/java/com/google/devtools/build/buildjar:bootstrap_deploy.jar"],
visibility = ["//visibility:public"],
@@ -52,3 +60,19 @@
target_version = "8",
visibility = ["//visibility:public"],
)
+
+java_toolchain(
+ name = "bootstrap_toolchain_jdk7",
+ bootclasspath = ["//tools/jdk:bootclasspath"],
+ encoding = "UTF-8",
+ extclasspath = ["//tools/jdk:extdir"],
+ genclass = ["bootstrap_genclass_deploy.jar"],
+ ijar = ["//third_party/ijar"],
+ javabuilder = ["//third_party/java/jdk/javabuilder:JavaBuilder_0.1.0"],
+ javac = ["//third_party/java/jdk/langtools:javac7_jar"],
+ jvm_opts = ["-client"],
+ singlejar = ["//src/java_tools/singlejar:bootstrap_deploy.jar"],
+ source_version = "7",
+ target_version = "7",
+ visibility = ["//visibility:public"],
+)
diff --git a/src/test/shell/bazel/BUILD b/src/test/shell/bazel/BUILD
index 349db37..3c45a3f 100644
--- a/src/test/shell/bazel/BUILD
+++ b/src/test/shell/bazel/BUILD
@@ -50,7 +50,7 @@
"//external:extdir",
"//external:jdk-default",
"//src:bazel",
- "//src/java_tools/buildjar:JavaBuilder_deploy.jar",
+ "//src/java_tools/buildjar:JavaBuilderDeploy",
"//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",
diff --git a/src/test/shell/bazel/testenv.sh b/src/test/shell/bazel/testenv.sh
index 8820f93..4db59d3 100755
--- a/src/test/shell/bazel/testenv.sh
+++ b/src/test/shell/bazel/testenv.sh
@@ -39,7 +39,7 @@
EXTRA_BAZELRC="build --ios_sdk_version=8.4"
# Java tooling
-javabuilder_path="${TEST_SRCDIR}/src/java_tools/buildjar/JavaBuilder_deploy.jar"
+javabuilder_path="$(find ${TEST_SRCDIR} -name JavaBuilder_*.jar)"
langtools_path="${TEST_SRCDIR}/third_party/java/jdk/langtools/javac.jar"
singlejar_path="${TEST_SRCDIR}/src/java_tools/singlejar/SingleJar_deploy.jar"
genclass_path="${TEST_SRCDIR}/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass_deploy.jar"
@@ -106,6 +106,11 @@
# This function copies the tools directory from Bazel.
function copy_tools_directory() {
cp -RL ${tools_dir}/* tools
+ # tools/jdk/BUILD file for JDK 7 is generated.
+ if [ -f tools/jdk/BUILD.* ]; then
+ cp tools/jdk/BUILD.* tools/jdk/BUILD
+ chmod +w tools/jdk/BUILD
+ fi
# To support custom langtools
cp ${langtools} tools/jdk/langtools.jar
cat >>tools/jdk/BUILD <<'EOF'