diff options
Diffstat (limited to 'src/main/java/com')
6 files changed, 20 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java index 8b8a27ea8e..54b1072112 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java @@ -85,7 +85,7 @@ public class AppleStaticLibrary implements RuleConfiguredTargetFactory { Mode.SPLIT, CcLinkParamsInfo.PROVIDER); Iterable<ObjcProtoProvider> avoidProtoProviders = ruleContext.getPrerequisites(AppleStaticLibraryRule.AVOID_DEPS_ATTR_NAME, Mode.TARGET, - ObjcProtoProvider.class); + ObjcProtoProvider.SKYLARK_CONSTRUCTOR); NestedSet<Artifact> protosToAvoid = protoArtifactsToAvoid(avoidProtoProviders); Map<BuildConfiguration, CcToolchainProvider> childConfigurationsAndToolchains = @@ -103,7 +103,8 @@ public class AppleStaticLibrary implements RuleConfiguredTargetFactory { ObjcProvider.Builder objcProviderBuilder = new ObjcProvider.Builder(); ImmutableListMultimap<BuildConfiguration, ObjcProtoProvider> objcProtoProvidersMap = - ruleContext.getPrerequisitesByConfiguration("deps", Mode.SPLIT, ObjcProtoProvider.class); + ruleContext.getPrerequisitesByConfiguration("deps", Mode.SPLIT, + ObjcProtoProvider.SKYLARK_CONSTRUCTOR); Map<String, NestedSet<Artifact>> outputGroupCollector = new TreeMap<>(); for (Entry<BuildConfiguration, CcToolchainProvider> childConfigAndToolchain : diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java index 9b5d87a897..436a2aa3d0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosTest.java @@ -89,7 +89,7 @@ public final class IosTest implements RuleConfiguredTargetFactory { + "(https://github.com/bazelbuild/rules_apple) to build Apple targets."); Iterable<ObjcProtoProvider> objcProtoProviders = - ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProtoProvider.class); + ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProtoProvider.SKYLARK_CONSTRUCTOR); ProtobufSupport protoSupport = new ProtobufSupport( diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java index 5f2785114d..d2b5be83bd 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java @@ -222,7 +222,7 @@ public class MultiArchBinarySupport { throws RuleErrorException, InterruptedException { Iterable<ObjcProvider> dylibObjcProviders = getDylibObjcProviders(dylibProviders); Iterable<ObjcProtoProvider> dylibProtoProviders = - getTypedProviders(dylibProviders, ObjcProtoProvider.class); + getTypedProviders(dylibProviders, ObjcProtoProvider.SKYLARK_CONSTRUCTOR); NestedSet<Artifact> protosToAvoid = protoArtifactsToAvoid(dylibProtoProviders); ImmutableSet.Builder<DependencySpecificConfiguration> childInfoBuilder = ImmutableSet.builder(); @@ -230,7 +230,7 @@ public class MultiArchBinarySupport { Iterable<TransitiveInfoCollection> infoCollections = configToDepsCollectionMap.get(childConfig); Iterable<ObjcProtoProvider> depProtoProviders = - getTypedProviders(infoCollections, ObjcProtoProvider.class); + getTypedProviders(infoCollections, ObjcProtoProvider.SKYLARK_CONSTRUCTOR); Optional<ObjcProvider> protosObjcProvider; if (ObjcRuleClasses.objcConfiguration(ruleContext).enableAppleBinaryNativeProtos()) { ProtobufSupport protoSupport = diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java index 5d74c1bf94..5143484b0a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java @@ -56,7 +56,7 @@ public class ObjcProtoAspect extends NativeAspectClass implements ConfiguredAspe if (ruleContext.attributes().has("deps", BuildType.LABEL_LIST)) { Iterable<ObjcProtoProvider> depObjcProtoProviders = - ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProtoProvider.class); + ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProtoProvider.SKYLARK_CONSTRUCTOR); aspectObjcProtoProvider.addTransitive(depObjcProtoProviders); } @@ -105,7 +105,7 @@ public class ObjcProtoAspect extends NativeAspectClass implements ConfiguredAspe // Only add the provider if it has any values, otherwise skip it. if (!aspectObjcProtoProvider.isEmpty()) { - aspectBuilder.addProvider(aspectObjcProtoProvider.build()); + aspectBuilder.addNativeDeclaredProvider(aspectObjcProtoProvider.build()); } return aspectBuilder.build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java index 5a3f00553a..5fa5a1d198 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java @@ -43,7 +43,7 @@ public class ObjcProtoLibrary implements RuleConfiguredTargetFactory { ruleContext.getPrerequisites("deps", Mode.TARGET, ProtoSourcesProvider.class); Iterable<ObjcProtoProvider> objcProtoProviders = - ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProtoProvider.class); + ruleContext.getPrerequisites("deps", Mode.TARGET, ObjcProtoProvider.SKYLARK_CONSTRUCTOR); ProtobufSupport protoSupport = new ProtobufSupport( diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java index b8dd834ff0..2401682a7f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java @@ -16,9 +16,10 @@ package com.google.devtools.build.lib.rules.objc; import com.google.common.base.Preconditions; 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.packages.NativeInfo; +import com.google.devtools.build.lib.packages.NativeProvider; import com.google.devtools.build.lib.vfs.PathFragment; /** @@ -38,7 +39,14 @@ import com.google.devtools.build.lib.vfs.PathFragment; * all the time (whether protos are used or not), the dependency is specified on objc_proto_library * instead. */ -public class ObjcProtoProvider implements TransitiveInfoProvider { +public class ObjcProtoProvider extends NativeInfo { + + /** Skylark name for the ObjcProtoProvider. */ + public static final String SKYLARK_NAME = "ObjcProto"; + + /** Skylark constructor and identifier for AppleExecutableBinaryProvider. */ + public static final NativeProvider<ObjcProtoProvider> SKYLARK_CONSTRUCTOR = + new NativeProvider<ObjcProtoProvider>(ObjcProtoProvider.class, SKYLARK_NAME) {}; private final NestedSet<NestedSet<Artifact>> protoGroups; private final NestedSet<Artifact> protobufHeaders; @@ -50,6 +58,7 @@ public class ObjcProtoProvider implements TransitiveInfoProvider { NestedSet<Artifact> portableProtoFilters, NestedSet<Artifact> protobufHeaders, NestedSet<PathFragment> protobufHeaderSearchPaths) { + super(SKYLARK_CONSTRUCTOR); this.protoGroups = Preconditions.checkNotNull(protoGroups); this.portableProtoFilters = Preconditions.checkNotNull(portableProtoFilters); this.protobufHeaders = Preconditions.checkNotNull(protobufHeaders); |