aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-07-12 14:59:07 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-07-12 16:03:11 +0200
commit4e9fa1947c838882befd94f95233275e68be82f1 (patch)
tree93cf377d0e0f8dcd18e77bf74dd215c9cd445adf /src/main/java/com/google/devtools/build/lib/rules/objc
parent425f2496d65d1e190f633236575009e49e1252b3 (diff)
Make native declared providers not implement TransitiveInfoCollection.
(Almost) all native declared providers are accessed as such and not as native non-declared providers (inheritors of TransitiveInfoCollaction). There are still three providers that use TransitiveInfoCollection.WithLegacySkylarkName mechanism, I'll address them in the follow-up CL. RELNOTES: None. PiperOrigin-RevId: 161655315
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/IosDeviceProvider.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcLibrary.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java5
13 files changed, 17 insertions, 33 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java
index 6bbfc3bbac..d296905dfc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java
@@ -239,9 +239,9 @@ public class AppleBinary implements RuleConfiguredTargetFactory {
extraLinkArgs.add("-Xlinker", "-rpath", "-Xlinker", "@loader_path/Frameworks");
if (didProvideBundleLoader) {
AppleExecutableBinaryProvider executableProvider =
- (AppleExecutableBinaryProvider) ruleContext.getPrerequisite(
+ ruleContext.getPrerequisite(
BUNDLE_LOADER_ATTR_NAME, Mode.TARGET,
- AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR.getKey());
+ AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR);
extraLinkArgs.add(
"-bundle_loader", executableProvider.getAppleExecutableBinary().getExecPathString());
}
@@ -290,9 +290,9 @@ public class AppleBinary implements RuleConfiguredTargetFactory {
private static Iterable<Artifact> getExtraLinkInputs(RuleContext ruleContext) {
AppleExecutableBinaryProvider executableProvider =
- (AppleExecutableBinaryProvider) ruleContext.getPrerequisite(
+ ruleContext.getPrerequisite(
BUNDLE_LOADER_ATTR_NAME, Mode.TARGET,
- AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR.getKey());
+ AppleExecutableBinaryProvider.SKYLARK_CONSTRUCTOR);
if (executableProvider != null) {
return ImmutableSet.<Artifact>of(executableProvider.getAppleExecutableBinary());
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java
index 10ff0d389d..650e1eeb76 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDebugOutputsProvider.java
@@ -16,7 +16,6 @@ package com.google.devtools.build.lib.rules.objc;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
@@ -38,8 +37,7 @@ import java.util.Map.Entry;
* <p>Example: { "arm64": { "bitcode_symbols": Artifact, "dsym_binary": Artifact } }
*/
@Immutable
-public final class AppleDebugOutputsProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public final class AppleDebugOutputsProvider extends SkylarkClassObject {
/** Expected types of debug outputs. */
enum OutputType {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryProvider.java
index 7afae2ef62..97adf8208e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDylibBinaryProvider.java
@@ -16,7 +16,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.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
@@ -30,8 +29,7 @@ import com.google.devtools.build.lib.packages.SkylarkClassObject;
* avoid relinking symbols included in the dylib</li>
* </ul>
*/
-public final class AppleDylibBinaryProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public final class AppleDylibBinaryProvider extends SkylarkClassObject {
/** Skylark name for the AppleDylibBinaryProvider. */
public static final String SKYLARK_NAME = "AppleDylibBinary";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkProvider.java
index 2ab05d6dac..e17e7f2344 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleDynamicFrameworkProvider.java
@@ -16,7 +16,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.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
@@ -36,8 +35,7 @@ import javax.annotation.Nullable;
* executable may avoid relinking symbols included in the loadable binary</li>
* </ul>
*/
-public final class AppleDynamicFrameworkProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public final class AppleDynamicFrameworkProvider extends SkylarkClassObject {
/** Skylark name for the AppleDynamicFrameworkProvider. */
public static final String SKYLARK_NAME = "AppleDynamicFramework";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryProvider.java
index 347b1111d3..7b072bd136 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleExecutableBinaryProvider.java
@@ -16,7 +16,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.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
@@ -30,8 +29,7 @@ import com.google.devtools.build.lib.packages.SkylarkClassObject;
* executable may avoid relinking symbols included in the loadable binary</li>
* </ul>
*/
-public final class AppleExecutableBinaryProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public final class AppleExecutableBinaryProvider extends SkylarkClassObject {
/** Skylark name for the AppleExecutableBinaryProvider. */
public static final String SKYLARK_NAME = "AppleExecutableBinary";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryProvider.java
index cd014bcf43..c276dc7e63 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleLoadableBundleBinaryProvider.java
@@ -16,7 +16,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.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
@@ -27,8 +26,7 @@ import com.google.devtools.build.lib.packages.SkylarkClassObject;
* <li>'binary': The binary artifact output by apple_binary</li>
* </ul>
*/
-public final class AppleLoadableBundleBinaryProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public final class AppleLoadableBundleBinaryProvider extends SkylarkClassObject {
/** Skylark name for the AppleLoadableBundleBinary. */
public static final String SKYLARK_NAME = "AppleLoadableBundleBinary";
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 2e0fa615bf..49575aa0de 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
@@ -84,7 +84,7 @@ public class AppleStaticLibrary implements RuleConfiguredTargetFactory {
Mode.SPLIT, ObjcProvider.class);
ImmutableListMultimap<BuildConfiguration, CcLinkParamsProvider> configToCcAvoidDepsMap =
ruleContext.getPrerequisitesByConfiguration(AppleStaticLibraryRule.AVOID_DEPS_ATTR_NAME,
- Mode.SPLIT, CcLinkParamsProvider.class);
+ Mode.SPLIT, CcLinkParamsProvider.CC_LINK_PARAMS);
Iterable<ObjcProtoProvider> avoidProtoProviders =
ruleContext.getPrerequisites(AppleStaticLibraryRule.AVOID_DEPS_ATTR_NAME, Mode.TARGET,
ObjcProtoProvider.class);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryProvider.java
index 6cb613f973..f18a9b476e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibraryProvider.java
@@ -16,7 +16,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.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
@@ -31,8 +30,7 @@ import com.google.devtools.build.lib.packages.SkylarkClassObject;
* symbols included in this archive multiple times).</li>
* </ul>
*/
-public final class AppleStaticLibraryProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public final class AppleStaticLibraryProvider extends SkylarkClassObject {
/** Skylark name for the AppleStaticLibraryProvider. */
public static final String SKYLARK_NAME = "AppleStaticLibrary";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java b/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java
index 3228825ce1..2a0a2142da 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/IosDevice.java
@@ -43,11 +43,10 @@ public final class IosDevice implements RuleConfiguredTargetFactory {
String iosVersionAttribute =
context.attributes().get(IosDeviceRule.IOS_VERSION_ATTR_NAME, STRING);
XcodeVersionProperties xcodeVersionProperties =
- (XcodeVersionProperties)
context.getPrerequisite(
IosDeviceRule.XCODE_ATTR_NAME,
Mode.TARGET,
- XcodeVersionProperties.SKYLARK_CONSTRUCTOR.getKey());
+ XcodeVersionProperties.SKYLARK_CONSTRUCTOR);
DottedVersion xcodeVersion = null;
if (xcodeVersionProperties != null && xcodeVersionProperties.getXcodeVersion().isPresent()) {
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 d22fdca486..1128ae8acb 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,7 +16,6 @@ package com.google.devtools.build.lib.rules.objc;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
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.NativeClassObjectConstructor;
@@ -28,7 +27,7 @@ import javax.annotation.Nullable;
/** Provider that describes a simulator device. */
@Immutable
-public final class IosDeviceProvider extends SkylarkClassObject implements TransitiveInfoProvider {
+public final class IosDeviceProvider extends SkylarkClassObject {
/** A builder of {@link IosDeviceProvider}s. */
public static final class Builder {
private String type;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
index bb284155bd..443144b571 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
@@ -260,7 +260,7 @@ public final class ObjcCommon {
addAnyProviders(propagatedObjcDeps, dep, ObjcProvider.class);
addAnyProviders(cppDeps, dep, CppCompilationContext.class);
if (isCcLibrary(dep)) {
- cppDepLinkParams.add(dep.getProvider(CcLinkParamsProvider.class));
+ cppDepLinkParams.add(dep.get(CcLinkParamsProvider.CC_LINK_PARAMS));
addDefines(dep.getProvider(CppCompilationContext.class).getDefines());
}
}
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 e0b7341dbe..b1db0b322b 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
@@ -95,8 +95,7 @@ public class ObjcLibrary implements RuleConfiguredTargetFactory {
.addProvider(
InstrumentedFilesProvider.class,
compilationSupport.getInstrumentedFilesProvider(common))
- .addProvider(
- CcLinkParamsProvider.class,
+ .addNativeDeclaredProvider(
new CcLinkParamsProvider(new ObjcLibraryCcLinkParamsStore(common)))
.addOutputGroups(outputGroupCollector)
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
index b11c77eadb..47f5a3031c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/TestSupport.java
@@ -257,9 +257,8 @@ public class TestSupport {
*/
public Iterable<SkylarkClassObject> getExtraProviders() {
IosDeviceProvider deviceProvider =
- (IosDeviceProvider)
- ruleContext.getPrerequisite(
- IosTest.TARGET_DEVICE, Mode.TARGET, IosDeviceProvider.SKYLARK_CONSTRUCTOR.getKey());
+ ruleContext.getPrerequisite(
+ IosTest.TARGET_DEVICE, Mode.TARGET, IosDeviceProvider.SKYLARK_CONSTRUCTOR);
DottedVersion xcodeVersion = deviceProvider.getXcodeVersion();
AppleConfiguration configuration = ruleContext.getFragment(AppleConfiguration.class);