diff options
author | 2018-07-23 02:02:24 -0700 | |
---|---|---|
committer | 2018-07-23 02:04:09 -0700 | |
commit | 6b5df97308d5ce60e801f9872d6b354db5164fe6 (patch) | |
tree | 27c789f49745f2123cefecd5f9c10c343c46c692 /src/main/java/com/google/devtools/build/lib/rules/java | |
parent | a6255612e4892729d3758775c76085b26b9bc584 (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.java | 18 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/proto/JplCcLinkParams.java | 37 |
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()); } } |