From e440d59299b091bb7d95608c444cf56cc263865d Mon Sep 17 00:00:00 2001 From: plf Date: Wed, 16 May 2018 01:27:05 -0700 Subject: C++: Renames CcExecutionDynamicLibrariesInfo to CcExecutionDynamicLibraries Since it's not a provider, it doesn't need the Info suffix anymore. RELNOTES:none PiperOrigin-RevId: 196793557 --- .../devtools/build/lib/rules/cpp/CcBinary.java | 13 +++-- .../lib/rules/cpp/CcExecutionDynamicLibraries.java | 55 ++++++++++++++++++++++ .../rules/cpp/CcExecutionDynamicLibrariesInfo.java | 55 ---------------------- .../devtools/build/lib/rules/cpp/CcLibrary.java | 4 +- .../build/lib/rules/cpp/CcLinkingHelper.java | 20 ++++---- .../build/lib/rules/cpp/CcLinkingInfo.java | 22 ++++----- .../devtools/build/lib/rules/cpp/CcCommonTest.java | 4 +- .../rules/cpp/CcLibraryConfiguredTargetTest.java | 4 +- .../build/lib/rules/cpp/LibraryLinkingTest.java | 2 +- 9 files changed, 88 insertions(+), 91 deletions(-) create mode 100644 src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibraries.java delete mode 100644 src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesInfo.java (limited to 'src') diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index 80b3f0e379..647fa911eb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -901,8 +901,8 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { ccCompilationInfoBuilder.setCcCompilationContext(ccCompilationContext); CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create(); - ccLinkingInfoBuilder.setCcExecutionDynamicLibrariesInfo( - new CcExecutionDynamicLibrariesInfo( + ccLinkingInfoBuilder.setCcExecutionDynamicLibraries( + new CcExecutionDynamicLibraries( collectExecutionDynamicLibraryArtifacts( ruleContext, linkingOutputs.getExecutionDynamicLibraries()))); @@ -946,11 +946,10 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { NestedSetBuilder builder = NestedSetBuilder.stableOrder(); for (CcLinkingInfo ccLinkingInfo : ruleContext.getPrerequisites("deps", Mode.TARGET, CcLinkingInfo.PROVIDER)) { - CcExecutionDynamicLibrariesInfo ccExecutionDynamicLibrariesInfo = - ccLinkingInfo.getCcExecutionDynamicLibrariesInfo(); - if (ccExecutionDynamicLibrariesInfo != null) { - builder.addTransitive( - ccExecutionDynamicLibrariesInfo.getExecutionDynamicLibraryArtifacts()); + CcExecutionDynamicLibraries ccExecutionDynamicLibraries = + ccLinkingInfo.getCcExecutionDynamicLibraries(); + if (ccExecutionDynamicLibraries != null) { + builder.addTransitive(ccExecutionDynamicLibraries.getExecutionDynamicLibraryArtifacts()); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibraries.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibraries.java new file mode 100644 index 0000000000..fbf52685eb --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibraries.java @@ -0,0 +1,55 @@ +// Copyright 2014 The Bazel Authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package com.google.devtools.build.lib.rules.cpp; + +import com.google.devtools.build.lib.actions.Artifact; +import com.google.devtools.build.lib.collect.nestedset.NestedSet; +import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; +import com.google.devtools.build.lib.collect.nestedset.Order; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; + +/** An object that contains the execution-time dynamic libraries of a C++ rule. */ +@Immutable +@AutoCodec +@SkylarkModule( + name = "cc_execution_dynamic_libraries ", + documented = false, + category = SkylarkModuleCategory.PROVIDER, + doc = "." +) +public final class CcExecutionDynamicLibraries { + public static final CcExecutionDynamicLibraries EMPTY = + new CcExecutionDynamicLibraries(NestedSetBuilder.emptySet(Order.STABLE_ORDER)); + + private final NestedSet ccExecutionDynamicLibraries; + + public CcExecutionDynamicLibraries(NestedSet ccExecutionDynamicLibraries) { + this.ccExecutionDynamicLibraries = ccExecutionDynamicLibraries; + } + + /** + * Returns the execution-time dynamic libraries. + * + *

This normally returns the dynamic library created by the rule itself. However, if the rule + * does not create any dynamic libraries, then it returns the combined results of calling + * getExecutionDynamicLibraryArtifacts on all the rule's deps. This behaviour is so that this + * method is useful for a cc_library with deps but no srcs. + */ + public NestedSet getExecutionDynamicLibraryArtifacts() { + return ccExecutionDynamicLibraries; + } +} diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesInfo.java deleted file mode 100644 index a40c387279..0000000000 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesInfo.java +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2014 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -package com.google.devtools.build.lib.rules.cpp; - -import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.collect.nestedset.NestedSet; -import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; -import com.google.devtools.build.lib.collect.nestedset.Order; -import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; -import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; -import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; - -/** A target that provides the execution-time dynamic libraries of a C++ rule. */ -@Immutable -@AutoCodec -@SkylarkModule( - name = "cc_execution_dynamic_libraries_info ", - documented = false, - category = SkylarkModuleCategory.PROVIDER, - doc = "." -) -public final class CcExecutionDynamicLibrariesInfo { - public static final CcExecutionDynamicLibrariesInfo EMPTY = - new CcExecutionDynamicLibrariesInfo(NestedSetBuilder.emptySet(Order.STABLE_ORDER)); - - private final NestedSet ccExecutionDynamicLibraries; - - public CcExecutionDynamicLibrariesInfo(NestedSet ccExecutionDynamicLibraries) { - this.ccExecutionDynamicLibraries = ccExecutionDynamicLibraries; - } - - /** - * Returns the execution-time dynamic libraries. - * - *

This normally returns the dynamic library created by the rule itself. However, if the rule - * does not create any dynamic libraries, then it returns the combined results of calling - * getExecutionDynamicLibraryArtifacts on all the rule's deps. This behaviour is so that this - * method is useful for a cc_library with deps but no srcs. - */ - public NestedSet getExecutionDynamicLibraryArtifacts() { - return ccExecutionDynamicLibraries; - } -} diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java index 245af2ee14..e8df81b7bb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java @@ -375,8 +375,8 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { (CcLinkingInfo) linkingInfo.getProviders().getProvider(CcLinkingInfo.PROVIDER.getKey()); CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create(); ccLinkingInfoBuilder.setCcLinkParamsStore(ccLinkingInfo.getCcLinkParamsStore()); - ccLinkingInfoBuilder.setCcExecutionDynamicLibrariesInfo( - ccLinkingInfo.getCcExecutionDynamicLibrariesInfo()); + ccLinkingInfoBuilder.setCcExecutionDynamicLibraries( + ccLinkingInfo.getCcExecutionDynamicLibraries()); ccLinkingInfoBuilder.setCcRunfiles(new CcRunfiles(staticRunfiles, sharedRunfiles)); return ccLinkingInfoBuilder.build(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java index 23abb5b4c8..8deebe314f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java @@ -541,7 +541,7 @@ public final class CcLinkingHelper { CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create(); ccLinkingInfoBuilder.setCcRunfiles(new CcRunfiles(cppStaticRunfiles, cppSharedRunfiles)); - ccLinkingInfoBuilder.setCcExecutionDynamicLibrariesInfo( + ccLinkingInfoBuilder.setCcExecutionDynamicLibraries( collectExecutionDynamicLibraryArtifacts(ccLinkingOutputs.getExecutionDynamicLibraries())); CppConfiguration cppConfiguration = ruleContext.getFragment(CppConfiguration.class); @@ -672,26 +672,24 @@ public final class CcLinkingHelper { return result.build(); } - private CcExecutionDynamicLibrariesInfo collectExecutionDynamicLibraryArtifacts( + private CcExecutionDynamicLibraries collectExecutionDynamicLibraryArtifacts( List executionDynamicLibraries) { Iterable artifacts = LinkerInputs.toLibraryArtifacts(executionDynamicLibraries); if (!Iterables.isEmpty(artifacts)) { - return new CcExecutionDynamicLibrariesInfo( - NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts)); + return new CcExecutionDynamicLibraries(NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts)); } NestedSetBuilder builder = NestedSetBuilder.stableOrder(); for (CcLinkingInfo dep : AnalysisUtils.getProviders(deps, CcLinkingInfo.PROVIDER)) { - CcExecutionDynamicLibrariesInfo ccExecutionDynamicLibrariesInfo = - dep.getCcExecutionDynamicLibrariesInfo(); - if (ccExecutionDynamicLibrariesInfo != null) { - builder.addTransitive( - ccExecutionDynamicLibrariesInfo.getExecutionDynamicLibraryArtifacts()); + CcExecutionDynamicLibraries ccExecutionDynamicLibraries = + dep.getCcExecutionDynamicLibraries(); + if (ccExecutionDynamicLibraries != null) { + builder.addTransitive(ccExecutionDynamicLibraries.getExecutionDynamicLibraryArtifacts()); } } return builder.isEmpty() - ? CcExecutionDynamicLibrariesInfo.EMPTY - : new CcExecutionDynamicLibrariesInfo(builder.build()); + ? CcExecutionDynamicLibraries.EMPTY + : new CcExecutionDynamicLibraries(builder.build()); } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java index a331e7025e..840c32d702 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingInfo.java @@ -38,18 +38,18 @@ public final class CcLinkingInfo extends NativeInfo { private final CcLinkParamsStore ccLinkParamsStore; private final CcRunfiles ccRunfiles; - private final CcExecutionDynamicLibrariesInfo ccExecutionDynamicLibrariesInfo; + private final CcExecutionDynamicLibraries ccExecutionDynamicLibraries; @AutoCodec.Instantiator @VisibleForSerialization CcLinkingInfo( CcLinkParamsStore ccLinkParamsStore, CcRunfiles ccRunfiles, - CcExecutionDynamicLibrariesInfo ccExecutionDynamicLibrariesInfo) { + CcExecutionDynamicLibraries ccExecutionDynamicLibraries) { super(PROVIDER); this.ccLinkParamsStore = ccLinkParamsStore; this.ccRunfiles = ccRunfiles; - this.ccExecutionDynamicLibrariesInfo = ccExecutionDynamicLibrariesInfo; + this.ccExecutionDynamicLibraries = ccExecutionDynamicLibraries; } public CcLinkParamsStore getCcLinkParamsStore() { @@ -60,15 +60,15 @@ public final class CcLinkingInfo extends NativeInfo { return ccRunfiles; } - public CcExecutionDynamicLibrariesInfo getCcExecutionDynamicLibrariesInfo() { - return ccExecutionDynamicLibrariesInfo; + public CcExecutionDynamicLibraries getCcExecutionDynamicLibraries() { + return ccExecutionDynamicLibraries; } /** A Builder for {@link CcLinkingInfo}. */ public static class Builder { CcLinkParamsStore ccLinkParamsStore; CcRunfiles ccRunfiles; - CcExecutionDynamicLibrariesInfo ccExecutionDynamicLibrariesInfo; + CcExecutionDynamicLibraries ccExecutionDynamicLibraries; public static CcLinkingInfo.Builder create() { return new CcLinkingInfo.Builder(); @@ -86,15 +86,15 @@ public final class CcLinkingInfo extends NativeInfo { return this; } - public Builder setCcExecutionDynamicLibrariesInfo( - CcExecutionDynamicLibrariesInfo ccExecutionDynamicLibrariesInfo) { - Preconditions.checkState(this.ccExecutionDynamicLibrariesInfo == null); - this.ccExecutionDynamicLibrariesInfo = ccExecutionDynamicLibrariesInfo; + public Builder setCcExecutionDynamicLibraries( + CcExecutionDynamicLibraries ccExecutionDynamicLibraries) { + Preconditions.checkState(this.ccExecutionDynamicLibraries == null); + this.ccExecutionDynamicLibraries = ccExecutionDynamicLibraries; return this; } public CcLinkingInfo build() { - return new CcLinkingInfo(ccLinkParamsStore, ccRunfiles, ccExecutionDynamicLibrariesInfo); + return new CcLinkingInfo(ccLinkParamsStore, ccRunfiles, ccExecutionDynamicLibraries); } } } diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java index d2be295616..32821eec44 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java @@ -120,7 +120,7 @@ public class CcCommonTest extends BuildViewTestCase { assertThat( emptylib .get(CcLinkingInfo.PROVIDER) - .getCcExecutionDynamicLibrariesInfo() + .getCcExecutionDynamicLibraries() .getExecutionDynamicLibraryArtifacts() .isEmpty()) .isTrue(); @@ -233,7 +233,7 @@ public class CcCommonTest extends BuildViewTestCase { assertThat( statically .get(CcLinkingInfo.PROVIDER) - .getCcExecutionDynamicLibrariesInfo() + .getCcExecutionDynamicLibraries() .getExecutionDynamicLibraryArtifacts() .isEmpty()) .isTrue(); diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java index fc5b87bfdc..14779030d9 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java @@ -166,7 +166,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { assertThat( hello .get(CcLinkingInfo.PROVIDER) - .getCcExecutionDynamicLibrariesInfo() + .getCcExecutionDynamicLibraries() .getExecutionDynamicLibraryArtifacts()) .containsExactly(implSharedObjectLink); } @@ -231,7 +231,7 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { assertThat( hello .get(CcLinkingInfo.PROVIDER) - .getCcExecutionDynamicLibrariesInfo() + .getCcExecutionDynamicLibraries() .getExecutionDynamicLibraryArtifacts()) .containsExactly(implSharedObjectLink); } diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/LibraryLinkingTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/LibraryLinkingTest.java index a57d29b301..7d62b00a79 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/LibraryLinkingTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/LibraryLinkingTest.java @@ -111,7 +111,7 @@ public final class LibraryLinkingTest extends BuildViewTestCase { Iterables.getOnlyElement( ccLib .get(CcLinkingInfo.PROVIDER) - .getCcExecutionDynamicLibrariesInfo() + .getCcExecutionDynamicLibraries() .getExecutionDynamicLibraryArtifacts()); // This artifact is generated by a SolibSymlinkAction, so we need to go back two levels. CppLinkAction solibLink = -- cgit v1.2.3