diff options
author | ruperts <ruperts@google.com> | 2018-07-30 14:03:05 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-30 14:05:26 -0700 |
commit | c80185c1b6ea5d746b4a38b8b5b8b5ad4682bc89 (patch) | |
tree | 25ad6516286c5f2d89fbc431d27aff830ce86230 /src/main/java/com/google/devtools/build/lib/rules/java | |
parent | 60c288a5fb06f13d47de066c1e252339bd181e20 (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.java | 29 |
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()); } } |