diff options
author | 2017-07-27 17:35:46 +0200 | |
---|---|---|
committer | 2017-07-28 10:44:43 +0200 | |
commit | 73527c3be5e40ff5a2f868440f0c4d3a940abec7 (patch) | |
tree | 0735b88df090ec11756a0137e69d31d2015bc45f /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java | |
parent | 801f51f1c2e0f516aa136caa2efbe92390aab558 (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.java | 23 |
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. |