aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-07-27 17:35:46 +0200
committerGravatar Jakob Buchgraber <buchgr@google.com>2017-07-28 10:44:43 +0200
commit73527c3be5e40ff5a2f868440f0c4d3a940abec7 (patch)
tree0735b88df090ec11756a0137e69d31d2015bc45f /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
parent801f51f1c2e0f516aa136caa2efbe92390aab558 (diff)
Make all WithLegacySkylarkName providers declared providers.
RELNOTES: None. PiperOrigin-RevId: 163343931
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
index 443144b571..55ac6df555 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
@@ -67,6 +67,8 @@ import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
+import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.rules.apple.AppleToolchain;
import com.google.devtools.build.lib.rules.cpp.CcLinkParams;
import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider;
@@ -257,7 +259,7 @@ public final class ObjcCommon {
ImmutableList.<CcLinkParamsProvider>builder();
for (TransitiveInfoCollection dep : deps) {
- addAnyProviders(propagatedObjcDeps, dep, ObjcProvider.class);
+ addAnyProviders(propagatedObjcDeps, dep, ObjcProvider.SKYLARK_CONSTRUCTOR);
addAnyProviders(cppDeps, dep, CppCompilationContext.class);
if (isCcLibrary(dep)) {
cppDepLinkParams.add(dep.get(CcLinkParamsProvider.CC_LINK_PARAMS));
@@ -279,7 +281,7 @@ public final class ObjcCommon {
ImmutableList.<ObjcProvider>builder();
for (TransitiveInfoCollection dep : runtimeDeps) {
- addAnyProviders(propagatedDeps, dep, ObjcProvider.class);
+ addAnyProviders(propagatedDeps, dep, ObjcProvider.SKYLARK_CONSTRUCTOR);
}
this.runtimeDepObjcProviders = Iterables.concat(
this.runtimeDepObjcProviders, propagatedDeps.build());
@@ -290,12 +292,25 @@ public final class ObjcCommon {
ImmutableList.Builder<T> listBuilder,
TransitiveInfoCollection collection,
Class<T> providerClass) {
- if (collection.getProvider(providerClass) != null) {
- listBuilder.add(collection.getProvider(providerClass));
+ T provider = collection.getProvider(providerClass);
+ if (provider != null) {
+ listBuilder.add(provider);
}
return listBuilder;
}
+ private <T extends SkylarkClassObject> ImmutableList.Builder<T> addAnyProviders(
+ ImmutableList.Builder<T> listBuilder,
+ TransitiveInfoCollection collection,
+ NativeClassObjectConstructor<T> providerClass) {
+ T provider = collection.get(providerClass);
+ if (provider != null) {
+ listBuilder.add(provider);
+ }
+ return listBuilder;
+ }
+
+
/**
* Add providers which will be exposed both to the declaring rule and to any dependers on the
* declaring rule.