aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-07-23 02:02:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-23 02:04:09 -0700
commit6b5df97308d5ce60e801f9872d6b354db5164fe6 (patch)
tree27c789f49745f2123cefecd5f9c10c343c46c692 /src/main/java/com/google/devtools/build/lib/rules/java
parenta6255612e4892729d3758775c76085b26b9bc584 (diff)
C++: Refactors every provider wrapping CcLinkParamsStore
Providers that were wrapping CcLinkParamsStore now wrap CcLinkingInfo instead. CcLinkParamsStore will be deleted in a future CL. RELNOTES:none PiperOrigin-RevId: 205629924
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/JavaCcLinkParamsProvider.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JplCcLinkParams.java37
2 files changed, 28 insertions, 27 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCcLinkParamsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCcLinkParamsProvider.java
index 1d9ff5a3c3..597d788f70 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCcLinkParamsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCcLinkParamsProvider.java
@@ -19,32 +19,28 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.cpp.AbstractCcLinkParamsStore;
-import com.google.devtools.build.lib.rules.cpp.CcLinkParamsStore;
+import com.google.devtools.build.lib.rules.cpp.CcLinkingInfo;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
/** A target that provides C++ libraries to be linked into Java targets. */
@Immutable
@AutoCodec
public final class JavaCcLinkParamsProvider implements TransitiveInfoProvider {
- private final CcLinkParamsStore store;
-
- public JavaCcLinkParamsProvider(AbstractCcLinkParamsStore store) {
- this(new CcLinkParamsStore(store));
- }
+ private final CcLinkingInfo ccLinkingInfo;
@AutoCodec.VisibleForSerialization
@AutoCodec.Instantiator
- JavaCcLinkParamsProvider(CcLinkParamsStore store) {
- this.store = store;
+ public JavaCcLinkParamsProvider(CcLinkingInfo ccLinkingInfo) {
+ this.ccLinkingInfo = ccLinkingInfo;
}
- public AbstractCcLinkParamsStore getLinkParams() {
- return store;
+ public CcLinkingInfo getCcLinkingInfo() {
+ return ccLinkingInfo;
}
public static final Function<TransitiveInfoCollection, AbstractCcLinkParamsStore> TO_LINK_PARAMS =
input -> {
JavaCcLinkParamsProvider provider = input.getProvider(JavaCcLinkParamsProvider.class);
- return provider == null ? null : provider.getLinkParams();
+ return provider == null ? null : provider.getCcLinkingInfo().getCcLinkParamsStore();
};
}
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 b5a67af825..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
@@ -20,6 +20,8 @@ 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;
import java.util.List;
@@ -41,24 +43,27 @@ public class JplCcLinkParams {
*/
public static JavaCcLinkParamsProvider createCcLinkParamsStore(
final RuleContext ruleContext, final ImmutableList<TransitiveInfoCollection> protoRuntimes) {
- List<AbstractCcLinkParamsStore> stores = new ArrayList<>();
+ List<JavaCcLinkParamsProvider> providers = new ArrayList<>();
for (TransitiveInfoCollection t :
ruleContext.getPrerequisites("deps", RuleConfiguredTarget.Mode.TARGET)) {
- stores.add(t.getProvider(JavaProtoLibraryAspectProvider.class)
- .getTransitiveInfoProviderMap()
- .getProvider(JavaCcLinkParamsProvider.class)
- .getLinkParams());
+ providers.add(
+ t.getProvider(JavaProtoLibraryAspectProvider.class)
+ .getTransitiveInfoProviderMap()
+ .getProvider(JavaCcLinkParamsProvider.class));
}
- return new JavaCcLinkParamsProvider(
- new AbstractCcLinkParamsStore() {
- @Override
- protected void collect(
- CcLinkParams.Builder builder, boolean linkingStatically, boolean linkShared) {
- for (AbstractCcLinkParamsStore store : stores) {
- builder.add(store);
- }
- builder.addTransitiveTargets(protoRuntimes);
- }
- });
+ 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());
}
}