aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/bazel
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-08-06 03:05:29 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-06 03:07:21 -0700
commit7a3e39fc20f1fba810d8023ff1608e39f501492a (patch)
tree1b72979d65a670d0bd1c5b4aa459314a5e82e76b /src/main/java/com/google/devtools/build/lib/bazel
parentad7b61286e29364d6c7e386f218c6c3b0530bfdc (diff)
C++: Removes calls to setCcLinkparamsStore of CcLinkingInfo.Builder
This is in preparation for deleting CcLinkParamsStore. Not all calls to setCcLinkparamsStore have been removed in this CL. RELNOTES:none PiperOrigin-RevId: 207516944
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/bazel')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java33
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java27
2 files changed, 28 insertions, 32 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
index 6f2fbff664..f6573077c7 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
@@ -21,7 +21,9 @@ import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Streams;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.analysis.AnalysisUtils;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.Runfiles;
@@ -42,9 +44,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.TargetUtils;
-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.DeployArchiveBuilder;
import com.google.devtools.build.lib.rules.java.DeployArchiveBuilder.Compression;
@@ -562,20 +561,20 @@ public class BazelJavaSemantics implements JavaSemantics {
Artifact gensrcJar,
RuleConfiguredTargetBuilder ruleBuilder) {
// TODO(plf): Figure out whether we can remove support for C++ dependencies in Bazel.
- CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create();
- ccLinkingInfoBuilder.setCcLinkParamsStore(
- new CcLinkParamsStore(
- new AbstractCcLinkParamsStore() {
- @Override
- protected void collect(
- CcLinkParams.Builder builder, boolean linkingStatically, boolean linkShared) {
- builder.addTransitiveTargets(
- javaCommon.targetsTreatedAsDeps(ClasspathType.BOTH),
- JavaCcLinkParamsProvider.TO_LINK_PARAMS,
- CcLinkParamsStore.TO_LINK_PARAMS);
- }
- }));
- ruleBuilder.addNativeDeclaredProvider(ccLinkingInfoBuilder.build());
+ ImmutableList<? extends TransitiveInfoCollection> deps =
+ javaCommon.targetsTreatedAsDeps(ClasspathType.BOTH);
+ ImmutableList<CcLinkingInfo> ccLinkingInfos =
+ ImmutableList.<CcLinkingInfo>builder()
+ .addAll(AnalysisUtils.getProviders(deps, CcLinkingInfo.PROVIDER))
+ .addAll(
+ Streams.stream(AnalysisUtils.getProviders(deps, JavaCcLinkParamsProvider.class))
+ .map(JavaCcLinkParamsProvider::getCcLinkingInfo)
+ .collect(ImmutableList.toImmutableList()))
+ .build();
+
+ // TODO(plf): return empty CcLinkingInfo because deps= in Java targets should not contain C++
+ // targets. We need to make sure that no one uses this functionality, though.
+ ruleBuilder.addNativeDeclaredProvider(CcLinkingInfo.merge(ccLinkingInfos));
}
// TODO(dmarting): simplify that logic when we remove the legacy Bazel java_test behavior.
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java
index 51fe643793..9a71ae9f55 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java
@@ -18,9 +18,11 @@ import static java.nio.charset.StandardCharsets.ISO_8859_1;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Streams;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ParamFileInfo;
import com.google.devtools.build.lib.actions.ParameterFile;
+import com.google.devtools.build.lib.analysis.AnalysisUtils;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.Runfiles;
@@ -40,9 +42,6 @@ import com.google.devtools.build.lib.analysis.test.InstrumentedFilesCollector.In
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
-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.python.PyCcLinkParamsProvider;
import com.google.devtools.build.lib.rules.python.PyCommon;
@@ -365,18 +364,16 @@ public class BazelPythonSemantics implements PythonSemantics {
@Override
public CcLinkingInfo buildCcLinkingInfoProvider(
Iterable<? extends TransitiveInfoCollection> deps) {
- CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create();
- AbstractCcLinkParamsStore ccLinkParamsStore =
- new AbstractCcLinkParamsStore() {
- @Override
- protected void collect(
- CcLinkParams.Builder builder, boolean linkingStatically, boolean linkShared) {
- builder.addTransitiveTargets(
- deps, CcLinkParamsStore.TO_LINK_PARAMS, PyCcLinkParamsProvider.TO_LINK_PARAMS);
- }
- };
+ ImmutableList<CcLinkingInfo> ccLinkingInfos =
+ ImmutableList.<CcLinkingInfo>builder()
+ .addAll(AnalysisUtils.getProviders(deps, CcLinkingInfo.PROVIDER))
+ .addAll(
+ Streams.stream(AnalysisUtils.getProviders(deps, PyCcLinkParamsProvider.PROVIDER))
+ .map(PyCcLinkParamsProvider::getCcLinkingInfo)
+ .collect(ImmutableList.toImmutableList()))
+ .build();
+
// TODO(plf): return empty CcLinkingInfo.
- ccLinkingInfoBuilder.setCcLinkParamsStore(new CcLinkParamsStore(ccLinkParamsStore));
- return ccLinkingInfoBuilder.build();
+ return CcLinkingInfo.merge(ccLinkingInfos);
}
}