From bb406b9b2f7b44d96cd5d0d1202503c19e0e6480 Mon Sep 17 00:00:00 2001 From: cparsons Date: Mon, 4 Dec 2017 11:39:33 -0800 Subject: Expose ObjcProtoProvider as a Skylark object. This does not provide any meaningful API to interact with ObjcProtoProvider from a skylark context -- it simply allows ObjcProtoProvider to be passed between skylark API calls as an opaque object. This helps facilitate exposure of an Apple Linking API to Skylark which will take place in future changes. RELNOTES: None. PiperOrigin-RevId: 177844029 --- .../devtools/build/lib/rules/objc/ObjcProtoProvider.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java') 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 SKYLARK_CONSTRUCTOR = + new NativeProvider(ObjcProtoProvider.class, SKYLARK_NAME) {}; private final NestedSet> protoGroups; private final NestedSet protobufHeaders; @@ -50,6 +58,7 @@ public class ObjcProtoProvider implements TransitiveInfoProvider { NestedSet portableProtoFilters, NestedSet protobufHeaders, NestedSet protobufHeaderSearchPaths) { + super(SKYLARK_CONSTRUCTOR); this.protoGroups = Preconditions.checkNotNull(protoGroups); this.portableProtoFilters = Preconditions.checkNotNull(portableProtoFilters); this.protobufHeaders = Preconditions.checkNotNull(protobufHeaders); -- cgit v1.2.3