aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/proto
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/proto')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibrary.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryProviders.java7
3 files changed, 17 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java
index b7395a914c..d4d94638bf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java
@@ -317,11 +317,12 @@ public class CcProtoAspect extends NativeAspectClass implements ConfiguredAspect
}
public void addProviders(ConfiguredAspect.Builder builder) {
+ OutputGroupProvider outputGroupProvider = new OutputGroupProvider(outputGroups);
builder.addProvider(
new CcProtoLibraryProviders(
- filesBuilder.build(),
- ccLibraryProviders.toBuilder().add(new OutputGroupProvider(outputGroups)).build()));
+ filesBuilder.build(), ccLibraryProviders, outputGroupProvider));
builder.addProviders(ccLibraryProviders);
+ builder.addNativeDeclaredProvider(outputGroupProvider);
if (headerProvider != null) {
builder.addProvider(headerProvider);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibrary.java
index 1f03ef16d0..d6a576370e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibrary.java
@@ -45,11 +45,17 @@ public class CcProtoLibrary implements RuleConfiguredTargetFactory {
checkNotNull(ruleContext.getPrerequisite("deps", TARGET))
.getProvider(CcProtoLibraryProviders.class);
- return new RuleConfiguredTargetBuilder(ruleContext)
+ RuleConfiguredTargetBuilder ruleConfiguredTargetBuilder = new RuleConfiguredTargetBuilder(
+ ruleContext)
.setFilesToBuild(depProviders.filesBuilder)
.addProvider(
RunfilesProvider.class, RunfilesProvider.withData(Runfiles.EMPTY, Runfiles.EMPTY))
- .addProviders(depProviders.providerMap)
+ .addProviders(depProviders.providerMap);
+ for (String groupName : depProviders.outputGroupProvider) {
+ ruleConfiguredTargetBuilder.addOutputGroup(groupName,
+ depProviders.outputGroupProvider.getOutputGroup(groupName));
+ }
+ return ruleConfiguredTargetBuilder
.addSkylarkTransitiveInfo(CcSkylarkApiProvider.NAME, new CcSkylarkApiProvider())
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryProviders.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryProviders.java
index 35b53d8894..f9bb8267d7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryProviders.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoLibraryProviders.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.rules.cpp.proto;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.analysis.OutputGroupProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.TransitiveInfoProviderMap;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -28,9 +29,13 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety;
final class CcProtoLibraryProviders implements TransitiveInfoProvider {
final NestedSet<Artifact> filesBuilder;
final TransitiveInfoProviderMap providerMap;
+ final OutputGroupProvider outputGroupProvider;
- CcProtoLibraryProviders(NestedSet<Artifact> filesBuilder, TransitiveInfoProviderMap providerMap) {
+ CcProtoLibraryProviders(NestedSet<Artifact> filesBuilder,
+ TransitiveInfoProviderMap providerMap,
+ OutputGroupProvider outputGroupProvider) {
this.filesBuilder = filesBuilder;
this.providerMap = providerMap;
+ this.outputGroupProvider = outputGroupProvider;
}
}