aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java
diff options
context:
space:
mode:
authorGravatar Carmi Grushko <carmi@google.com>2016-11-22 20:26:32 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-11-23 08:50:59 +0000
commitc944c4d9fc5cbad830b69383a76ffff463088c7e (patch)
treef82e66e9b269272e53bd8ade0f75f3f19ec7db16 /src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java
parent0aac8f7d4f2cea1834df4aaf4cad35d3425d874b (diff)
Alias proto_library's produce a descriptor set that contains all srcs of its dependencies.
(alias proto_library's are those with a deps attribute but no srcs attribute) RELNOTES: Alias proto_library's produce a descriptor set that contains all srcs of its dependencies. -- MOS_MIGRATED_REVID=139940475
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java43
1 files changed, 26 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java
index 7819f13d22..6b107fe655 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/BazelProtoLibrary.java
@@ -58,27 +58,36 @@ public class BazelProtoLibrary implements RuleConfiguredTargetFactory {
transitiveImports,
!protoSources.isEmpty());
- Artifact descriptorSetOutput =
- ruleContext.getGenfilesArtifact(
- ruleContext.getLabel().getName() + "-descriptor-set.proto.bin");
- ProtoCompileActionBuilder.writeDescriptorSet(
- ruleContext,
- descriptorSetOutput.getExecPathString(),
- supportData,
- ImmutableList.of(descriptorSetOutput),
- true /* allowServices */);
+ Runfiles.Builder dataRunfiles =
+ ProtoCommon.createDataRunfilesProvider(transitiveImports, ruleContext);
- Runfiles dataRunfiles =
- ProtoCommon.createDataRunfilesProvider(transitiveImports, ruleContext)
- .addArtifact(descriptorSetOutput)
- .build();
+ RuleConfiguredTargetBuilder result = new RuleConfiguredTargetBuilder(ruleContext);
- return new RuleConfiguredTargetBuilder(ruleContext)
- .setFilesToBuild(NestedSetBuilder.create(STABLE_ORDER, descriptorSetOutput))
- .addProvider(RunfilesProvider.withData(Runfiles.EMPTY, dataRunfiles))
+ if (checkDepsProtoSources.isEmpty()) {
+ result.setFilesToBuild(NestedSetBuilder.<Artifact>create(STABLE_ORDER));
+ } else {
+ Artifact descriptorSetOutput =
+ ruleContext.getGenfilesArtifact(
+ ruleContext.getLabel().getName() + "-descriptor-set.proto.bin");
+ ProtoCompileActionBuilder.writeDescriptorSet(
+ ruleContext,
+ descriptorSetOutput.getExecPathString(),
+ checkDepsProtoSources,
+ transitiveImports,
+ null /* protosInDirectDeps */,
+ ImmutableList.of(descriptorSetOutput),
+ true /* allowServices */);
+
+ dataRunfiles.addArtifact(descriptorSetOutput);
+
+ result.setFilesToBuild(NestedSetBuilder.create(STABLE_ORDER, descriptorSetOutput));
+ result.addProvider(DescriptorSetProvider.create(descriptorSetOutput));
+ }
+
+ return result
+ .addProvider(RunfilesProvider.withData(Runfiles.EMPTY, dataRunfiles.build()))
.addProvider(ProtoSourcesProvider.class, sourcesProvider)
.addProvider(ProtoSupportDataProvider.class, new ProtoSupportDataProvider(supportData))
- .addProvider(DescriptorSetProvider.create(descriptorSetOutput))
.addSkylarkTransitiveInfo(ProtoSourcesProvider.SKYLARK_NAME, sourcesProvider)
.build();
}