aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java
diff options
context:
space:
mode:
authorGravatar ruperts <ruperts@google.com>2018-07-30 14:03:05 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-30 14:05:26 -0700
commitc80185c1b6ea5d746b4a38b8b5b8b5ad4682bc89 (patch)
tree25ad6516286c5f2d89fbc431d27aff830ce86230 /src/main/java/com/google/devtools/build/lib/rules/java
parent60c288a5fb06f13d47de066c1e252339bd181e20 (diff)
Internal change
PiperOrigin-RevId: 206642715
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JplCcLinkParams.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JplCcLinkParams.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JplCcLinkParams.java
index 09aeecc79c..68f7222d46 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JplCcLinkParams.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JplCcLinkParams.java
@@ -15,10 +15,12 @@
package com.google.devtools.build.lib.rules.java.proto;
import com.google.common.collect.ImmutableList;
-import com.google.devtools.build.lib.analysis.AnalysisUtils;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
+import com.google.devtools.build.lib.rules.cpp.AbstractCcLinkParamsStore;
+import com.google.devtools.build.lib.rules.cpp.CcLinkParams;
+import com.google.devtools.build.lib.rules.cpp.CcLinkParamsStore;
import com.google.devtools.build.lib.rules.cpp.CcLinkingInfo;
import com.google.devtools.build.lib.rules.java.JavaCcLinkParamsProvider;
import java.util.ArrayList;
@@ -49,16 +51,19 @@ public class JplCcLinkParams {
.getTransitiveInfoProviderMap()
.getProvider(JavaCcLinkParamsProvider.class));
}
- ImmutableList<CcLinkingInfo> ccLinkingInfos =
- ImmutableList.<CcLinkingInfo>builder()
- .addAll(
- providers
- .stream()
- .map(JavaCcLinkParamsProvider::getCcLinkingInfo)
- .collect(ImmutableList.toImmutableList()))
- .addAll(AnalysisUtils.getProviders(protoRuntimes, CcLinkingInfo.PROVIDER))
- .build();
-
- return new JavaCcLinkParamsProvider(CcLinkingInfo.merge(ccLinkingInfos));
+ CcLinkingInfo.Builder builder = CcLinkingInfo.Builder.create();
+ builder.setCcLinkParamsStore(
+ new CcLinkParamsStore(
+ new AbstractCcLinkParamsStore() {
+ @Override
+ protected void collect(
+ CcLinkParams.Builder builder, boolean linkingStatically, boolean linkShared) {
+ for (JavaCcLinkParamsProvider provider : providers) {
+ builder.add(provider.getCcLinkingInfo().getCcLinkParamsStore());
+ }
+ builder.addTransitiveTargets(protoRuntimes);
+ }
+ }));
+ return new JavaCcLinkParamsProvider(builder.build());
}
}