diff options
author | plf <plf@google.com> | 2018-04-04 04:51:51 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-04 04:53:29 -0700 |
commit | 83d8ef1c4a67c23c103741cca23bafafdc811c79 (patch) | |
tree | e465e833a905de94d170184287f6b4e2a75a53c4 /src/main/java | |
parent | 95acd8b0c9f82a28a3d49731bed87bb81dd822f4 (diff) |
C++: Migrate CppRunfilesProvider to new provider style
RELNOTES:none
PiperOrigin-RevId: 191576814
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java | 2 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java | 5 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java | 4 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcRunfilesInfo.java (renamed from src/main/java/com/google/devtools/build/lib/rules/cpp/CppRunfilesProvider.java) | 15 |
4 files changed, 15 insertions, 11 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 0b227a8712..3b55eb9dbc 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 @@ -108,7 +108,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { Runfiles.Builder builder = new Runfiles.Builder( context.getWorkspaceName(), context.getConfiguration().legacyExternalRunfiles()); Function<TransitiveInfoCollection, Runfiles> runfilesMapping = - CppRunfilesProvider.runfilesFunction(linkStaticness != LinkStaticness.DYNAMIC); + CcRunfilesInfo.runfilesFunction(linkStaticness != LinkStaticness.DYNAMIC); builder.addTransitiveArtifacts(filesToBuild); // Add the shared libraries to the runfiles. This adds any shared libraries that are in the // srcs of this target. 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 8d0406545d..2bc00bbf5e 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 @@ -78,7 +78,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { // it, but instead be loaded as an extension. So we need the dynamic library for this in the // runfiles. builder.addArtifacts(ccLinkingOutputs.getLibrariesForRunfiles(linkingStatically && !neverLink)); - builder.add(context, CppRunfilesProvider.runfilesFunction(linkingStatically)); + builder.add(context, CcRunfilesInfo.runfilesFunction(linkingStatically)); builder.addDataDeps(context); @@ -338,8 +338,7 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { .addProvider( RunfilesProvider.class, RunfilesProvider.withData(staticRunfiles, sharedRunfiles)) // Remove this? - .addProvider( - CppRunfilesProvider.class, new CppRunfilesProvider(staticRunfiles, sharedRunfiles)) + .addNativeDeclaredProvider(new CcRunfilesInfo(staticRunfiles, sharedRunfiles)) .addOutputGroup( OutputGroupInfo.HIDDEN_TOP_LEVEL, collectHiddenTopLevelArtifacts( 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 48205f4ae1..12257baa8d 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 @@ -528,7 +528,7 @@ public final class CcLinkingHelper { // We should consider merging most of these providers into a single provider. TransitiveInfoProviderMapBuilder providers = new TransitiveInfoProviderMapBuilder() - .add(new CppRunfilesProvider(cppStaticRunfiles, cppSharedRunfiles)); + .put(new CcRunfilesInfo(cppStaticRunfiles, cppSharedRunfiles)); Map<String, NestedSet<Artifact>> outputGroups = new TreeMap<>(); @@ -626,7 +626,7 @@ public final class CcLinkingHelper { ruleContext.getWorkspaceName(), ruleContext.getConfiguration().legacyExternalRunfiles()); builder.addTargets(deps, RunfilesProvider.DEFAULT_RUNFILES); - builder.addTargets(deps, CppRunfilesProvider.runfilesFunction(linkingStatically)); + builder.addTargets(deps, CcRunfilesInfo.runfilesFunction(linkingStatically)); // Add the shared libraries to the runfiles. builder.addArtifacts(ccLinkingOutputs.getLibrariesForRunfiles(linkingStatically)); return builder.build(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRunfilesProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcRunfilesInfo.java index 9eccbf6b99..d88431ee31 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRunfilesProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcRunfilesInfo.java @@ -17,8 +17,9 @@ package com.google.devtools.build.lib.rules.cpp; import com.google.common.base.Function; import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; -import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; 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; /** @@ -29,12 +30,16 @@ import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; */ @Immutable @AutoCodec -public final class CppRunfilesProvider implements TransitiveInfoProvider { +public final class CcRunfilesInfo extends NativeInfo { + public static final NativeProvider<CcRunfilesInfo> PROVIDER = + new NativeProvider<CcRunfilesInfo>(CcRunfilesInfo.class, "CcRunfilesInfo") {}; + private final Runfiles staticRunfiles; private final Runfiles sharedRunfiles; @AutoCodec.Instantiator - public CppRunfilesProvider(Runfiles staticRunfiles, Runfiles sharedRunfiles) { + public CcRunfilesInfo(Runfiles staticRunfiles, Runfiles sharedRunfiles) { + super(PROVIDER); this.staticRunfiles = staticRunfiles; this.sharedRunfiles = sharedRunfiles; } @@ -53,7 +58,7 @@ public final class CppRunfilesProvider implements TransitiveInfoProvider { */ public static final Function<TransitiveInfoCollection, Runfiles> STATIC_RUNFILES = input -> { - CppRunfilesProvider provider = input.getProvider(CppRunfilesProvider.class); + CcRunfilesInfo provider = input.get(CcRunfilesInfo.PROVIDER); return provider == null ? Runfiles.EMPTY : provider.getStaticRunfiles(); }; @@ -63,7 +68,7 @@ public final class CppRunfilesProvider implements TransitiveInfoProvider { */ public static final Function<TransitiveInfoCollection, Runfiles> SHARED_RUNFILES = input -> { - CppRunfilesProvider provider = input.getProvider(CppRunfilesProvider.class); + CcRunfilesInfo provider = input.get(CcRunfilesInfo.PROVIDER); return provider == null ? Runfiles.EMPTY : provider.getSharedRunfiles(); }; |