diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc')
8 files changed, 41 insertions, 26 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsInfo.java index af5833c17b..37f7ae2bf0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsInfo.java @@ -91,7 +91,7 @@ public final class AppleDebugOutputsInfo extends NativeInfo { * </ul> */ private AppleDebugOutputsInfo(ImmutableMap<String, ImmutableMap<String, Artifact>> map) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR); this.outputsMap = map; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryInfo.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryInfo.java index 814191b8b3..aeed29b092 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryInfo.java @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.rules.objc; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.NativeInfo; @@ -55,7 +54,7 @@ public final class AppleDylibBinaryInfo extends NativeInfo { public AppleDylibBinaryInfo(Artifact dylibBinary, ObjcProvider depsObjcProvider) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR); this.dylibBinary = dylibBinary; this.depsObjcProvider = depsObjcProvider; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java index 7d9b97e1f1..6555f8a951 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkInfo.java @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.rules.objc; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; @@ -74,7 +73,7 @@ public final class AppleDynamicFrameworkInfo extends NativeInfo { ObjcProvider depsObjcProvider, NestedSet<PathFragment> dynamicFrameworkDirs, NestedSet<Artifact> dynamicFrameworkFiles) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR); this.dylibBinary = dylibBinary; this.depsObjcProvider = depsObjcProvider; this.dynamicFrameworkDirs = dynamicFrameworkDirs; diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryInfo.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryInfo.java index 134d89a70a..374d9bedaf 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryInfo.java @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.rules.objc; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.NativeInfo; @@ -60,7 +59,7 @@ public final class AppleExecutableBinaryInfo extends NativeInfo { */ public AppleExecutableBinaryInfo(Artifact appleExecutableBinary, ObjcProvider depsObjcProvider) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR); this.appleExecutableBinary = appleExecutableBinary; this.depsObjcProvider = depsObjcProvider; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryInfo.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryInfo.java index cfb1cc3672..ea2cb6602f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryInfo.java @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.rules.objc; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.NativeInfo; @@ -59,7 +58,7 @@ public final class AppleLoadableBundleBinaryInfo extends NativeInfo { */ public AppleLoadableBundleBinaryInfo(Artifact appleLoadableBundleBinary, ObjcProvider depsObjcProvider) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR); this.appleLoadableBundleBinary = appleLoadableBundleBinary; this.depsObjcProvider = depsObjcProvider; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryInfo.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryInfo.java index 3bbdc6807f..2280bd7487 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryInfo.java @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.rules.objc; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.packages.NativeInfo; import com.google.devtools.build.lib.packages.NativeProvider; @@ -60,7 +59,7 @@ public final class AppleStaticLibraryInfo extends NativeInfo { */ public AppleStaticLibraryInfo(Artifact multiArchArchive, ObjcProvider depsObjcProvider) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR); this.multiArchArchive = multiArchArchive; this.depsObjcProvider = depsObjcProvider; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosDeviceProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosDeviceProvider.java index 1ce7085140..bbd98f7943 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosDeviceProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosDeviceProvider.java @@ -16,17 +16,23 @@ package com.google.devtools.build.lib.rules.objc; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction.Substitution; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.NativeInfo; import com.google.devtools.build.lib.packages.NativeProvider; import com.google.devtools.build.lib.rules.apple.DottedVersion; -import java.util.Map; +import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import javax.annotation.Nullable; /** Provider that describes a simulator device. */ @Immutable +@SkylarkModule( + name = "IosDevice", + category = SkylarkModuleCategory.PROVIDER, + doc = "<b>Deprecated. Use the new Skylark testing rules instead.</b>" +) public final class IosDeviceProvider extends NativeInfo { /** A builder of {@link IosDeviceProvider}s. */ public static final class Builder { @@ -85,13 +91,38 @@ public final class IosDeviceProvider extends NativeInfo { private final String locale; private IosDeviceProvider(Builder builder) { - super(SKYLARK_CONSTRUCTOR, getSkylarkFields(builder)); + super(SKYLARK_CONSTRUCTOR); this.type = Preconditions.checkNotNull(builder.type); this.iosVersion = Preconditions.checkNotNull(builder.iosVersion); this.locale = Preconditions.checkNotNull(builder.locale); this.xcodeVersion = builder.xcodeVersion; } + @SkylarkCallable( + name = "ios_version", + doc = "The iOS version of the simulator to use.", + structField = true + ) + public String getIosVersionString() { + return iosVersion.toString(); + } + + @SkylarkCallable( + name = "xcode_version", + doc = "The xcode version to obtain the iOS simulator from, or <code>None</code> if unknown.", + structField = true, + allowReturnNones = true + ) + @Nullable + public String getXcodeVersionString() { + return xcodeVersion != null ? xcodeVersion.toString() : null; + } + + @SkylarkCallable( + name = "type", + doc = "The hardware type of the device, corresponding to the simctl device type.", + structField = true + ) public String getType() { return type; } @@ -120,15 +151,4 @@ public final class IosDeviceProvider extends NativeInfo { Substitution.of("%(simulator_sdk)s", getIosVersion().toString()), Substitution.of("%(locale)s", getLocale()))); } - - private static Map<String, Object> getSkylarkFields(Builder builder) { - ImmutableMap.Builder<String, Object> skylarkFields = - new ImmutableMap.Builder<String, Object>() - .put("type", builder.type) - .put("ios_version", builder.iosVersion.toString()); - if (builder.xcodeVersion != null) { - skylarkFields.put("xcode_version", builder.xcodeVersion.toString()); - } - return skylarkFields.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 bcde3803bc..3dfada91b2 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 @@ -818,7 +818,7 @@ public final class ObjcProvider extends NativeInfo { ImmutableMap<Key<?>, NestedSet<?>> items, ImmutableMap<Key<?>, NestedSet<?>> nonPropagatedItems, ImmutableMap<Key<?>, NestedSet<?>> strictDependencyItems) { - super(SKYLARK_CONSTRUCTOR, ImmutableMap.<String, Object>of()); + super(SKYLARK_CONSTRUCTOR); this.items = Preconditions.checkNotNull(items); this.nonPropagatedItems = Preconditions.checkNotNull(nonPropagatedItems); this.strictDependencyItems = Preconditions.checkNotNull(strictDependencyItems); |