Read java_lite toolchains from configuration flag in Starlark java_lite_proto_library. PiperOrigin-RevId: 420993589
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java index 893bc77..cf1812c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -255,6 +255,10 @@ return options.protoToolchainForJ2objc; } + @StarlarkConfigurationField( + name = "proto_toolchain_for_java_lite", + doc = "Label for the java lite proto toolchains.", + defaultLabel = ProtoConstants.DEFAULT_PROTOC_LABEL) public Label protoToolchainForJavaLite() { return options.protoToolchainForJavaLite; }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java index 419756c..d039c12 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java +++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConstants.java
@@ -19,6 +19,9 @@ /** Default label for proto compiler. */ static final String DEFAULT_PROTOC_LABEL = "@com_google_protobuf//:protoc"; + /** Default label for java lite proto toolchains. */ + static final String DEFAULT_JAVA_LITE_PROTO_LABEL = "@com_google_protobuf//:javalite_toolchain"; + /** * This constant is used in ProtoCompileActionBuilder to generate an error message that's * displayed when a strict proto deps violation occurs.
diff --git a/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl b/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl index 47b02b4..786b33b 100644 --- a/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl +++ b/src/main/starlark/builtins_bzl/common/java/java_semantics.bzl
@@ -52,7 +52,6 @@ semantics = struct( COLLECT_SRCS_FROM_PROTO_LIBRARY = False, JAVA_TOOLCHAIN_LABEL = "@bazel_tools//tools/jdk:current_java_toolchain", - JAVA_LITE_PROTO_TOOLCHAIN_LABEL = "@//tools/proto/toolchains:javalite", JAVA_PLUGINS_FLAG_ALIAS_LABEL = "@bazel_tools//tools/jdk:java_plugins_flag_alias", PROGUARD_ALLOWLISTER_LABEL = "@bazel_tools//tools/jdk:proguard_whitelister", EXTRA_SRCS_TYPES = [], @@ -87,4 +86,4 @@ postprocess_plugin = _postprocess_plugin, check_proto_registry_collision = _check_proto_registry_collision, get_coverage_runner = _get_coverage_runner, -) \ No newline at end of file +)
diff --git a/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl b/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl index a10d25e..a4320a1 100644 --- a/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl +++ b/src/main/starlark/builtins_bzl/common/java/proto/java_lite_proto_library.bzl
@@ -109,7 +109,7 @@ attr_aspects = ["deps"], attrs = { PROTO_TOOLCHAIN_ATTR: attr.label( - default = Label(semantics.JAVA_LITE_PROTO_TOOLCHAIN_LABEL), + default = configuration_field(fragment = "proto", name = "proto_toolchain_for_java_lite"), ), JAVA_TOOLCHAIN_ATTR: attr.label( default = Label(semantics.JAVA_TOOLCHAIN_LABEL),
diff --git a/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java index feecc89..23ba12e 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/java/proto/StarlarkJavaLiteProtoLibraryTest.java
@@ -57,7 +57,10 @@ @Before public final void setUpMocks() throws Exception { - useConfiguration("--proto_compiler=//proto:compiler"); + useConfiguration( + "--proto_compiler=//proto:compiler", + "--proto_toolchain_for_javalite=//tools/proto/toolchains:javalite"); + scratch.file("proto/BUILD", "licenses(['notice'])", "exports_files(['compiler'])"); mockToolchains(); @@ -265,7 +268,10 @@ " mnemonics = ['Javac'],", " extra_actions = [':xa'])"); - useConfiguration("--experimental_action_listener=//xa:al", "--proto_compiler=//proto:compiler"); + useConfiguration( + "--experimental_action_listener=//xa:al", + "--proto_compiler=//proto:compiler", + "--proto_toolchain_for_javalite=//tools/proto/toolchains:javalite"); ConfiguredTarget ct = getConfiguredTarget("//x:lite_pb2"); NestedSet<DerivedArtifact> artifacts = ct.getProvider(ExtraActionArtifactsProvider.class).getTransitiveExtraActionArtifacts();