aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundle.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcFramework.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImport.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoLibrary.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java4
11 files changed, 35 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java
index 4660a63a85..f4351001cc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java
@@ -129,6 +129,23 @@ public class AppleSkylarkCommon {
}
@SkylarkCallable(
+ // TODO(b/63899207): This currently does not match ObjcProvider.SKYLARK_NAME as it requires
+ // a migration of existing skylark rules.
+ name = "Objc",
+ doc = "The constructor/key for the <code>Objc</code> provider.<p>"
+ + "If a target propagates the <code>Objc</code> provider, use this as the"
+ + "key with which to retrieve it. Example:<br>"
+ + "<pre class='language-python'>\n"
+ + "dep = ctx.attr.deps[0]\n"
+ + "p = dep[apple_common.Objc]\n"
+ + "</pre>",
+ structField = true
+ )
+ public ClassObjectConstructor getObjcProviderConstructor() {
+ return ObjcProvider.SKYLARK_CONSTRUCTOR;
+ }
+
+ @SkylarkCallable(
name = AppleDynamicFrameworkProvider.SKYLARK_NAME,
doc =
"Returns the provider constructor for AppleDynamicFramework. If a target propagates "
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java b/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java
index ce098ad7f0..304930f441 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/BinaryLinkingTargetFactory.java
@@ -183,6 +183,7 @@ abstract class BinaryLinkingTargetFactory implements RuleConfiguredTargetFactory
RuleConfiguredTargetBuilder targetBuilder =
ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build())
.addProvider(ObjcProvider.class, objcProvider)
+ .addNativeDeclaredProvider(objcProvider)
.addProvider(
InstrumentedFilesProvider.class,
compilationSupport.getInstrumentedFilesProvider(common))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
index c4b5e9a361..e1537d07cd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
@@ -110,6 +110,7 @@ public class J2ObjcLibrary implements RuleConfiguredTargetFactory {
.addProvider(J2ObjcEntryClassProvider.class, j2ObjcEntryClassProvider)
.addProvider(J2ObjcMappingFileProvider.class, j2ObjcMappingFileProvider)
.addProvider(ObjcProvider.class, objcProvider)
+ .addNativeDeclaredProvider(objcProvider)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundle.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundle.java
index 0dd4dc4a15..dd7eda81fa 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundle.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundle.java
@@ -46,6 +46,7 @@ public class ObjcBundle implements RuleConfiguredTargetFactory {
NestedSet<Artifact> filesToBuild = NestedSetBuilder.emptySet(STABLE_ORDER);
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild)
.addProvider(ObjcProvider.class, common.getObjcProvider())
+ .addNativeDeclaredProvider(common.getObjcProvider())
.build();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java
index 4d538ce395..b44cd2dfac 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcBundleLibrary.java
@@ -75,6 +75,7 @@ public class ObjcBundleLibrary implements RuleConfiguredTargetFactory {
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build())
.addProvider(ObjcProvider.class, nestedBundleProvider)
+ .addNativeDeclaredProvider(nestedBundleProvider)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcFramework.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcFramework.java
index 90df6a21a2..e11a01ef46 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcFramework.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcFramework.java
@@ -69,6 +69,7 @@ public class ObjcFramework implements RuleConfiguredTargetFactory {
NestedSet<Artifact> filesToBuild = NestedSetBuilder.emptySet(STABLE_ORDER);
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild)
.addProvider(ObjcProvider.class, objcProvider)
+ .addNativeDeclaredProvider(objcProvider)
.addNativeDeclaredProvider(frameworkProvider)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImport.java
index 08d2b26cef..37c8cb6f87 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcImport.java
@@ -65,6 +65,7 @@ public class ObjcImport implements RuleConfiguredTargetFactory {
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build())
.addProvider(ObjcProvider.class, common.getObjcProvider())
+ .addNativeDeclaredProvider(common.getObjcProvider())
.build();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
index b1db0b322b..814e3717bc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java
@@ -90,6 +90,7 @@ public class ObjcLibrary implements RuleConfiguredTargetFactory {
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build())
.addProvider(ObjcProvider.class, common.getObjcProvider())
+ .addNativeDeclaredProvider(common.getObjcProvider())
.addProvider(J2ObjcEntryClassProvider.class, j2ObjcEntryClassProvider)
.addProvider(J2ObjcMappingFileProvider.class, j2ObjcMappingFileProvider)
.addProvider(
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 cb056b9356..64bdc18eed 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
@@ -68,6 +68,7 @@ public class ObjcProtoLibrary implements RuleConfiguredTargetFactory {
return ObjcRuleClasses.ruleConfiguredTarget(ruleContext, filesToBuild.build())
.addProvider(ObjcProvider.class, protoSupport.getObjcProvider().get())
+ .addNativeDeclaredProvider(protoSupport.getObjcProvider().get())
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
index b040c629ff..dfe934a344 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java
@@ -58,14 +58,12 @@ import java.util.Map;
public final class ObjcProvider extends SkylarkClassObject
implements TransitiveInfoProvider, TransitiveInfoProvider.WithLegacySkylarkName {
- /**
- * The skylark struct key name for a rule implementation to use when exporting an ObjcProvider.
- */
- public static final String OBJC_SKYLARK_PROVIDER_NAME = "objc";
+ /** Skylark name for the ObjcProvider. */
+ public static final String SKYLARK_NAME = "objc";
@Override
public String getSkylarkName() {
- return OBJC_SKYLARK_PROVIDER_NAME;
+ return SKYLARK_NAME;
}
/**
@@ -506,8 +504,9 @@ public final class ObjcProvider extends SkylarkClassObject
// Items which should be passed to strictly direct dependers, but not transitive dependers.
private final ImmutableMap<Key<?>, NestedSet<?>> strictDependencyItems;
- private static final NativeClassObjectConstructor<ObjcProvider> OBJC_PROVIDER =
- new NativeClassObjectConstructor<ObjcProvider>(ObjcProvider.class, "objc_provider") {
+ /** Skylark constructor and identifier for ObjcProvider. */
+ public static final NativeClassObjectConstructor<ObjcProvider> SKYLARK_CONSTRUCTOR =
+ new NativeClassObjectConstructor<ObjcProvider>(ObjcProvider.class, SKYLARK_NAME) {
@Override
public String getErrorMessageFormatForInstances() {
return "ObjcProvider field %s could not be instantiated";
@@ -519,7 +518,7 @@ public final class ObjcProvider extends SkylarkClassObject
ImmutableMap<Key<?>, NestedSet<?>> nonPropagatedItems,
ImmutableMap<Key<?>, NestedSet<?>> strictDependencyItems,
ImmutableMap<String, Object> skylarkFields) {
- super(OBJC_PROVIDER, skylarkFields);
+ super(SKYLARK_CONSTRUCTOR, skylarkFields);
this.items = Preconditions.checkNotNull(items);
this.nonPropagatedItems = Preconditions.checkNotNull(nonPropagatedItems);
this.strictDependencyItems = Preconditions.checkNotNull(strictDependencyItems);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java
index a6a18a3962..68acca2432 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingTargetFactory.java
@@ -86,7 +86,9 @@ public abstract class ReleaseBundlingTargetFactory implements RuleConfiguredTarg
ObjcProvider exposedObjcProvider = exposedObjcProvider(ruleContext, releaseBundlingSupport);
if (exposedObjcProvider != null) {
- targetBuilder.addProvider(ObjcProvider.class, exposedObjcProvider);
+ targetBuilder
+ .addProvider(ObjcProvider.class, exposedObjcProvider)
+ .addNativeDeclaredProvider(exposedObjcProvider);
}
configureTarget(targetBuilder, ruleContext, releaseBundlingSupport);