diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java | 11 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesInfo.java (renamed from src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesProvider.java) | 25 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java | 13 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonTest.java | 4 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcLibraryConfiguredTargetTest.java | 14 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/LibraryLinkingTest.java | 2 |
6 files changed, 43 insertions, 26 deletions
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 b06003c89a..0b227a8712 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 @@ -896,9 +896,8 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { .setFilesToBuild(filesToBuild) .addNativeDeclaredProvider(ccCompilationContextInfo) .addProvider(TransitiveLipoInfoProvider.class, transitiveLipoInfo) - .addProvider( - CcExecutionDynamicLibrariesProvider.class, - new CcExecutionDynamicLibrariesProvider( + .addNativeDeclaredProvider( + new CcExecutionDynamicLibrariesInfo( collectExecutionDynamicLibraryArtifacts( ruleContext, linkingOutputs.getExecutionDynamicLibraries()))) .addProvider( @@ -933,11 +932,11 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { return NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts); } - Iterable<CcExecutionDynamicLibrariesProvider> deps = ruleContext - .getPrerequisites("deps", Mode.TARGET, CcExecutionDynamicLibrariesProvider.class); + Iterable<CcExecutionDynamicLibrariesInfo> deps = + ruleContext.getPrerequisites("deps", Mode.TARGET, CcExecutionDynamicLibrariesInfo.PROVIDER); NestedSetBuilder<Artifact> builder = NestedSetBuilder.stableOrder(); - for (CcExecutionDynamicLibrariesProvider dep : deps) { + for (CcExecutionDynamicLibrariesInfo dep : deps) { builder.addTransitive(dep.getExecutionDynamicLibraryArtifacts()); } return builder.build(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesInfo.java index 6ae1acf65e..253803e8f6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcExecutionDynamicLibrariesInfo.java @@ -14,24 +14,37 @@ package com.google.devtools.build.lib.rules.cpp; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; 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.packages.NativeInfo; +import com.google.devtools.build.lib.packages.NativeProvider; 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 -public final class CcExecutionDynamicLibrariesProvider implements TransitiveInfoProvider { - public static final CcExecutionDynamicLibrariesProvider EMPTY = - new CcExecutionDynamicLibrariesProvider( - NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER)); +@SkylarkModule( + name = "cc_execution_dynamic_libraries_info ", + documented = false, + category = SkylarkModuleCategory.PROVIDER, + doc = "." +) +public final class CcExecutionDynamicLibrariesInfo extends NativeInfo { + public static final NativeProvider<CcExecutionDynamicLibrariesInfo> PROVIDER = + new NativeProvider<CcExecutionDynamicLibrariesInfo>( + CcExecutionDynamicLibrariesInfo.class, "CcExecutionDynamicLibrariesInfo") {}; + + public static final CcExecutionDynamicLibrariesInfo EMPTY = + new CcExecutionDynamicLibrariesInfo(NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER)); private final NestedSet<Artifact> ccExecutionDynamicLibraries; - public CcExecutionDynamicLibrariesProvider(NestedSet<Artifact> ccExecutionDynamicLibraries) { + public CcExecutionDynamicLibrariesInfo(NestedSet<Artifact> ccExecutionDynamicLibraries) { + super(PROVIDER); this.ccExecutionDynamicLibraries = ccExecutionDynamicLibraries; } 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 a764e8752e..48205f4ae1 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 @@ -542,7 +542,6 @@ public final class CcLinkingHelper { providers.add(new CcNativeLibraryProvider(collectNativeCcLibraries(ccLinkingOutputs))); } providers.put( - CcExecutionDynamicLibrariesProvider.class, collectExecutionDynamicLibraryArtifacts(ccLinkingOutputs.getExecutionDynamicLibraries())); CppConfiguration cppConfiguration = ruleContext.getFragment(CppConfiguration.class); @@ -672,22 +671,22 @@ public final class CcLinkingHelper { return result.build(); } - private CcExecutionDynamicLibrariesProvider collectExecutionDynamicLibraryArtifacts( + private CcExecutionDynamicLibrariesInfo collectExecutionDynamicLibraryArtifacts( List<LibraryToLink> executionDynamicLibraries) { Iterable<Artifact> artifacts = LinkerInputs.toLibraryArtifacts(executionDynamicLibraries); if (!Iterables.isEmpty(artifacts)) { - return new CcExecutionDynamicLibrariesProvider( + return new CcExecutionDynamicLibrariesInfo( NestedSetBuilder.wrap(Order.STABLE_ORDER, artifacts)); } NestedSetBuilder<Artifact> builder = NestedSetBuilder.stableOrder(); - for (CcExecutionDynamicLibrariesProvider dep : - AnalysisUtils.getProviders(deps, CcExecutionDynamicLibrariesProvider.class)) { + for (CcExecutionDynamicLibrariesInfo dep : + AnalysisUtils.getProviders(deps, CcExecutionDynamicLibrariesInfo.PROVIDER)) { builder.addTransitive(dep.getExecutionDynamicLibraryArtifacts()); } return builder.isEmpty() - ? CcExecutionDynamicLibrariesProvider.EMPTY - : new CcExecutionDynamicLibrariesProvider(builder.build()); + ? CcExecutionDynamicLibrariesInfo.EMPTY + : new CcExecutionDynamicLibrariesInfo(builder.build()); } /** 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 0db2c639ee..c82e8a54f1 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 @@ -119,7 +119,7 @@ public class CcCommonTest extends BuildViewTestCase { } assertThat( emptylib - .getProvider(CcExecutionDynamicLibrariesProvider.class) + .get(CcExecutionDynamicLibrariesInfo.PROVIDER) .getExecutionDynamicLibraryArtifacts() .isEmpty()) .isTrue(); @@ -231,7 +231,7 @@ public class CcCommonTest extends BuildViewTestCase { " linkstatic=1)"); assertThat( statically - .getProvider(CcExecutionDynamicLibrariesProvider.class) + .get(CcExecutionDynamicLibrariesInfo.PROVIDER) .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 18a11f389e..e5c21e7a89 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 @@ -160,8 +160,11 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { assertThat(LinkerInputs.toLibraryArtifacts( hello.getProvider(CcNativeLibraryProvider.class).getTransitiveCcNativeLibraries())) .containsExactly(implInterfaceSharedObjectLink); - assertThat(hello.getProvider(CcExecutionDynamicLibrariesProvider.class) - .getExecutionDynamicLibraryArtifacts()).containsExactly(implSharedObjectLink); + assertThat( + hello + .get(CcExecutionDynamicLibrariesInfo.PROVIDER) + .getExecutionDynamicLibraryArtifacts()) + .containsExactly(implSharedObjectLink); } @Test @@ -221,8 +224,11 @@ public class CcLibraryConfiguredTargetTest extends BuildViewTestCase { assertThat(LinkerInputs.toLibraryArtifacts( hello.getProvider(CcNativeLibraryProvider.class).getTransitiveCcNativeLibraries())) .containsExactly(sharedObjectLink); - assertThat(hello.getProvider(CcExecutionDynamicLibrariesProvider.class) - .getExecutionDynamicLibraryArtifacts()).containsExactly(implSharedObjectLink); + assertThat( + hello + .get(CcExecutionDynamicLibrariesInfo.PROVIDER) + .getExecutionDynamicLibraryArtifacts()) + .containsExactly(implSharedObjectLink); } @Test 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 116b3284e2..cc0489f55e 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 @@ -110,7 +110,7 @@ public final class LibraryLinkingTest extends BuildViewTestCase { Artifact soLib = Iterables.getOnlyElement( ccLib - .getProvider(CcExecutionDynamicLibrariesProvider.class) + .get(CcExecutionDynamicLibrariesInfo.PROVIDER) .getExecutionDynamicLibraryArtifacts()); // This artifact is generated by a SolibSymlinkAction, so we need to go back two levels. CppLinkAction solibLink = |