aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar plf <plf@google.com>2018-04-04 04:51:51 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-04 04:53:29 -0700
commit83d8ef1c4a67c23c103741cca23bafafdc811c79 (patch)
treee465e833a905de94d170184287f6b4e2a75a53c4 /src/main/java
parent95acd8b0c9f82a28a3d49731bed87bb81dd822f4 (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.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java4
-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();
};