Skip to content

Commit

Permalink
Add incompatible flags for using the remote Java tools for the defaul…
Browse files Browse the repository at this point in the history
…t java_toolchain and host_java_toolchain.

This PR introduces the flags:
* `--incompatible_use_remote_host_java_toolchain`
*  `--incompatible_use_remote_java_toolchain`

Progress on #6316 #7196 #7197

Closes #7156.

PiperOrigin-RevId: 230209934
  • Loading branch information
iirina authored and Copybara-Service committed Jan 21, 2019
1 parent f4c4e07 commit 22d375b
Show file tree
Hide file tree
Showing 8 changed files with 355 additions and 34 deletions.
3 changes: 3 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ distdir_tar(
"zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz",
"zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip",
"jdk10-server-release-1804.tar.xz",
"java_tools_pkg-0.1.tar.gz"
],
dirname = "jdk_WORKSPACE/distdir",
sha256 = {
Expand All @@ -288,6 +289,7 @@ distdir_tar(
"zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz" : "e669c9a897413d855b550b4e39d79614392e6fb96f494e8ef99a34297d9d85d3",
"zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip" : "c39e7700a8d41794d60985df5a20352435196e78ecbc6a2b30df7be8637bffd5",
"jdk10-server-release-1804.tar.xz" : "b7098b7aaf6ee1ffd4a2d0371a0be26c5a5c87f6aebbe46fe9a92c90583a84be",
"java_tools_pkg-0.1.tar.gz": "df33ddb3054f0ee70389368bd1dc2efe72eeb1f489dbcdf948f3f3b3058646b7",
},
urls = {
"zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz" : ["https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"],
Expand All @@ -298,6 +300,7 @@ distdir_tar(
"zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz" : ["https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz"],
"zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip" : ["https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip" ],
"jdk10-server-release-1804.tar.xz" : ["https://mirror.bazel.build/openjdk.linaro.org/releases/jdk10-server-release-1804.tar.xz"],
"java_tools_pkg-0.1.tar.gz": ["https://mirror.bazel.build/bazel_java_tools/java_tools_pkg-0.1.tar.gz"]
},
)

Expand Down
1 change: 1 addition & 0 deletions src/create_embedded_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
lambda x: 'tools/jdk/jarjar_command_deploy.jar'),
('*JacocoCoverage*_deploy.jar',
lambda x: 'tools/jdk/JacocoCoverage_deploy.jar'),
('*BUILD.pkg', lambda x: 'tools/jdk/BUILD.pkg'),
('*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',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,3 +171,12 @@ http_archive(
build_file = "@local_jdk//:BUILD.bazel",
strip_prefix = "jdk10-server-release-1804",
)

http_archive(
name = "remote_java_tools",
sha256 = "df33ddb3054f0ee70389368bd1dc2efe72eeb1f489dbcdf948f3f3b3058646b7",
urls = [
"https://mirror.bazel.build/bazel_java_tools/java_tools_pkg-0.1.tar.gz"
],
build_file = "@bazel_tools//tools/jdk:BUILD.pkg",
)
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ public boolean alwaysGenerateOutputMapping() {
this.proguardBinary = javaOptions.proguard;
this.extraProguardSpecs = ImmutableList.copyOf(javaOptions.extraProguardSpecs);
this.bundleTranslations = javaOptions.bundleTranslations;
this.toolchainLabel = javaOptions.javaToolchain;
this.toolchainLabel = javaOptions.getJavaToolchain();
this.runtimeLabel = javaOptions.javaBase;
this.javaOptimizationMode = javaOptions.javaOptimizationMode;
this.useLegacyBazelJavaTest = javaOptions.legacyBazelJavaTest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public ImportDepsCheckingLevelConverter() {

@Option(
name = "java_toolchain",
defaultValue = "@bazel_tools//tools/jdk:toolchain",
defaultValue = "null",
converter = LabelConverter.class,
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.UNKNOWN},
Expand All @@ -94,7 +94,7 @@ public ImportDepsCheckingLevelConverter() {

@Option(
name = "host_java_toolchain",
defaultValue = "@bazel_tools//tools/jdk:toolchain",
defaultValue = "null",
converter = LabelConverter.class,
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.UNKNOWN},
Expand Down Expand Up @@ -572,6 +572,34 @@ public ImportDepsCheckingLevelConverter() {
+ "--java_header_compilation is enabled.")
public boolean requireJavaToolchainHeaderCompilerDirect;

@Option(
name = "incompatible_use_remote_java_toolchain",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.UNKNOWN},
metadataTags = {
OptionMetadataTag.INCOMPATIBLE_CHANGE,
OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
},
help =
"If enabled, uses the remote Java tools for the default --java_toolchain. "
+ "See #7196.")
public boolean useRemoteJavaToolchain;

@Option(
name = "incompatible_use_remote_host_java_toolchain",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {OptionEffectTag.UNKNOWN},
metadataTags = {
OptionMetadataTag.INCOMPATIBLE_CHANGE,
OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
},
help =
"If enabled, uses the remote Java tools for the default --host_java_toolchain. "
+ "See #7197.")
public boolean useRemoteHostJavaToolchain;

@Option(
name = "incompatible_disallow_resource_jars",
defaultValue = "false",
Expand All @@ -596,6 +624,28 @@ private Label getHostJavaBase() {
return hostJavaBase;
}

private Label getHostJavaToolchain() {
if (hostJavaToolchain == null) {
if (useRemoteHostJavaToolchain) {
return Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:remote_toolchain");
} else {
return Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:toolchain");
}
}
return hostJavaToolchain;
}

Label getJavaToolchain() {
if (javaToolchain == null) {
if (useRemoteJavaToolchain) {
return Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:remote_toolchain");
} else {
return Label.parseAbsoluteUnchecked("@bazel_tools//tools/jdk:toolchain");
}
}
return javaToolchain;
}

@Override
public FragmentOptions getHost() {
JavaOptions host = (JavaOptions) getDefault();
Expand All @@ -604,7 +654,7 @@ public FragmentOptions getHost() {
host.jvmOpts = ImmutableList.of("-XX:ErrorFile=/dev/stderr");

host.javacOpts = hostJavacOpts;
host.javaToolchain = hostJavaToolchain;
host.javaToolchain = getHostJavaToolchain();

host.javaLauncher = hostJavaLauncher;

Expand Down Expand Up @@ -641,7 +691,7 @@ public FragmentOptions getHost() {
public Map<String, Set<Label>> getDefaultsLabels() {
Map<String, Set<Label>> result = new HashMap<>();
result.put("JDK", ImmutableSet.of(javaBase, getHostJavaBase()));
result.put("JAVA_TOOLCHAIN", ImmutableSet.of(javaToolchain));
result.put("JAVA_TOOLCHAIN", ImmutableSet.of(getJavaToolchain()));

return result;
}
Expand Down
Loading

0 comments on commit 22d375b

Please sign in to comment.