diff options
author | plf <plf@google.com> | 2018-07-25 08:42:29 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-25 08:44:31 -0700 |
commit | 16dde0de06a3a4157a13e7e7264afeb6a50b2dde (patch) | |
tree | 438247c24138aa47cfb3086a82ef4a964b9792c7 /src/main/java/com/google/devtools/build/lib/bazel | |
parent | e1ed9f5488644dcc6bb11943d3a60c76a2b39af7 (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: 205998687
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.java | 32 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java | 27 |
2 files changed, 27 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..2837ae63c8 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,19 @@ 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. + 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); } } |