aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/bazel
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-07-25 15:00:14 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-25 15:02:02 -0700
commit1ed89aa24c91248fc062477250d5188940a848de (patch)
tree52dd5f464cedcc69f7576a3897cad89e0aba3b27 /src/main/java/com/google/devtools/build/lib/bazel
parent03bd99d4a4a6ae51b45907fc4b8677eeafe1d6c8 (diff)
Automated rollback of commit 16dde0de06a3a4157a13e7e7264afeb6a50b2dde.
*** Reason for rollback *** Crash (see linked bug). PiperOrigin-RevId: 206060905
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.java32
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java27
2 files changed, 32 insertions, 27 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 2837ae63c8..6f2fbff664 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,9 +21,7 @@ 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;
@@ -44,6 +42,9 @@ 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;
@@ -561,19 +562,20 @@ public class BazelJavaSemantics implements JavaSemantics {
Artifact gensrcJar,
RuleConfiguredTargetBuilder ruleBuilder) {
// TODO(plf): Figure out whether we can remove support for C++ dependencies in Bazel.
- 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.
- ruleBuilder.addNativeDeclaredProvider(CcLinkingInfo.merge(ccLinkingInfos));
+ 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());
}
// 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 9a71ae9f55..51fe643793 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,11 +18,9 @@ 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;
@@ -42,6 +40,9 @@ 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;
@@ -364,16 +365,18 @@ public class BazelPythonSemantics implements PythonSemantics {
@Override
public CcLinkingInfo buildCcLinkingInfoProvider(
Iterable<? extends TransitiveInfoCollection> deps) {
- 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();
-
+ 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);
+ }
+ };
// TODO(plf): return empty CcLinkingInfo.
- return CcLinkingInfo.merge(ccLinkingInfos);
+ ccLinkingInfoBuilder.setCcLinkParamsStore(new CcLinkParamsStore(ccLinkParamsStore));
+ return ccLinkingInfoBuilder.build();
}
}