Skip to content

Commit

Permalink
Only download JDK repositories that are needed
Browse files Browse the repository at this point in the history
The problem were `select`s that pointed to remote repos, which causes all the remote repos to be downloaded. Inserting an alias in between prevents this download.

Fixes #12778

Closes #12846.

PiperOrigin-RevId: 352758845
  • Loading branch information
comius authored and copybara-github committed Jan 20, 2021
1 parent d159576 commit 903c272
Showing 1 changed file with 63 additions and 21 deletions.
84 changes: 63 additions & 21 deletions tools/jdk/BUILD.tools
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,26 @@ alias(
actual = "@local_jdk//:javadoc",
)

[
(
alias(
name = "ijar_prebuilt_binary_%s" % OS,
actual = "@remote_java_tools_%s//:ijar_prebuilt_binary" % OS,
visibility = ["//visibility:private"],
),
alias(
name = "prebuilt_singlejar_%s" % OS,
actual = "@remote_java_tools_%s//:prebuilt_singlejar" % OS,
visibility = ["//visibility:private"],
),
)
for OS in [
"linux",
"darwin",
"windows",
]
]

# On Windows, executables end in ".exe", but the label we reach it through
# must be platform-independent. Thus, we create a little filegroup that
# contains the appropriate platform-dependent file.
Expand All @@ -151,19 +171,19 @@ alias(
alias(
name = "ijar_prebuilt_binary_or_cc_binary",
actual = select({
"//src/conditions:linux_x86_64": "@remote_java_tools_linux//:ijar_prebuilt_binary",
"//src/conditions:darwin": "@remote_java_tools_darwin//:ijar_prebuilt_binary",
"//src/conditions:windows": "@remote_java_tools_windows//:ijar_prebuilt_binary",
"//src/conditions:linux_x86_64": ":ijar_prebuilt_binary_linux",
"//src/conditions:darwin": ":ijar_prebuilt_binary_darwin",
"//src/conditions:windows": ":ijar_prebuilt_binary_windows",
"//conditions:default": "@remote_java_tools//:ijar_cc_binary",
}),
)

alias(
name = "ijar_prebuilt_binary",
actual = select({
"//src/conditions:linux_x86_64": "@remote_java_tools_linux//:ijar_prebuilt_binary",
"//src/conditions:darwin": "@remote_java_tools_darwin//:ijar_prebuilt_binary",
"//src/conditions:windows": "@remote_java_tools_windows//:ijar_prebuilt_binary",
"//src/conditions:linux_x86_64": ":ijar_prebuilt_binary_linux",
"//src/conditions:darwin": ":ijar_prebuilt_binary_darwin",
"//src/conditions:windows": ":ijar_prebuilt_binary_windows",
}),
)

Expand All @@ -181,19 +201,19 @@ alias(
alias(
name = "singlejar_prebuilt_or_cc_binary",
actual = select({
"//src/conditions:linux_x86_64": "@remote_java_tools_linux//:prebuilt_singlejar",
"//src/conditions:darwin": "@remote_java_tools_darwin//:prebuilt_singlejar",
"//src/conditions:windows": "@remote_java_tools_windows//:prebuilt_singlejar",
"//src/conditions:linux_x86_64": ":prebuilt_singlejar_linux",
"//src/conditions:darwin": ":prebuilt_singlejar_darwin",
"//src/conditions:windows": ":prebuilt_singlejar_windows",
"//conditions:default": "@remote_java_tools//:singlejar_cc_bin",
}),
)

alias(
name = "prebuilt_singlejar",
actual = select({
"//src/conditions:linux_x86_64": "@remote_java_tools_linux//:prebuilt_singlejar",
"//src/conditions:darwin": "@remote_java_tools_darwin//:prebuilt_singlejar",
"//src/conditions:windows": "@remote_java_tools_windows//:prebuilt_singlejar",
"//src/conditions:linux_x86_64": ":prebuilt_singlejar_linux",
"//src/conditions:darwin": ":prebuilt_singlejar_darwin",
"//src/conditions:windows": ":prebuilt_singlejar_windows",
}),
)

Expand Down Expand Up @@ -408,18 +428,40 @@ py_test(
],
)

# Aliases for JDKs, so that they are only downloaded when needed.
_JDKS = [
"remotejdk11_macos",
"remotejdk11_win",
"remotejdk11_linux_aarch64",
"remotejdk11_linux",
"remotejdk11_linux_ppc64le",
"remotejdk11_linux_s390x",
"remotejdk15_macos",
"remotejdk15_win",
"remotejdk15_linux",
]

[
alias(
name = JDK,
actual = "@%s//:jdk" % JDK,
visibility = ["//visibility:private"],
)
for JDK in _JDKS
]

# A JDK 11 for use as a --host_javabase.
java_runtime_version_alias(
name = "remote_jdk11",
runtime_version = "remotejdk_11",
selected_java_runtime = select(
{
"//src/conditions:darwin": "@remotejdk11_macos//:jdk",
"//src/conditions:windows": "@remotejdk11_win//:jdk",
"//src/conditions:linux_aarch64": "@remotejdk11_linux_aarch64//:jdk",
"//src/conditions:linux_x86_64": "@remotejdk11_linux//:jdk",
"//src/conditions:linux_ppc64le": "@remotejdk11_linux_ppc64le//:jdk",
"//src/conditions:linux_s390x": "@remotejdk11_linux_s390x//:jdk",
"//src/conditions:darwin": ":remotejdk11_macos",
"//src/conditions:windows": ":remotejdk11_win",
"//src/conditions:linux_aarch64": ":remotejdk11_linux_aarch64",
"//src/conditions:linux_x86_64": ":remotejdk11_linux",
"//src/conditions:linux_ppc64le": ":remotejdk11_linux_ppc64le",
"//src/conditions:linux_s390x": ":remotejdk11_linux_s390x",
},
no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
" provide one using `--host_javabase.`",
Expand All @@ -432,9 +474,9 @@ java_runtime_version_alias(
runtime_version = "remotejdk_15",
selected_java_runtime = select(
{
"//src/conditions:darwin": "@remotejdk15_macos//:jdk",
"//src/conditions:windows": "@remotejdk15_win//:jdk",
"//src/conditions:linux_x86_64": "@remotejdk15_linux//:jdk",
"//src/conditions:darwin": ":remotejdk15_macos",
"//src/conditions:windows": ":remotejdk15_win",
"//src/conditions:linux_x86_64": ":remotejdk15_linux",
},
no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
" provide one using `--host_javabase.`",
Expand Down

0 comments on commit 903c272

Please sign in to comment.