diff options
author | 2017-12-04 11:39:33 -0800 | |
---|---|---|
committer | 2017-12-04 11:41:29 -0800 | |
commit | bb406b9b2f7b44d96cd5d0d1202503c19e0e6480 (patch) | |
tree | 0ab446cbb08ebc9ccc7f55decda0e2e0663914ab /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java | |
parent | b4ba96f52a0cadcbfdf0cc56055ed61768b191f2 (diff) |
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
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoProvider.java | 13 |
1 files changed, 11 insertions, 2 deletions
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); |