aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-07-11 16:45:02 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-07-11 18:26:13 +0200
commit2d05de2185920e9270edcfcc66e2e8b92668864d (patch)
tree5f3844a8ca1aedd00a20527d6c6c3deeff5d3b73 /src
parentf07773b31450b1863dd6f9390b9bb8b3040e2d6d (diff)
MakeVariableProvider should be declared provider only.
RELNOTES: None. PiperOrigin-RevId: 161527470
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/MakeVariableProvider.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAlias.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeProvider.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java2
14 files changed, 21 insertions, 42 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index c159037231..a27427a9e0 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -1064,7 +1064,7 @@ public final class RuleContext extends TargetContext
continue;
}
makeVariableProvidersBuilder.addAll(
- getPrerequisites(attributeName, Mode.TARGET, MakeVariableProvider.class));
+ getPrerequisites(attributeName, Mode.TARGET, MakeVariableProvider.SKYLARK_CONSTRUCTOR));
}
for (MakeVariableProvider makeVariableProvider : makeVariableProvidersBuilder.build()) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/MakeVariableProvider.java b/src/main/java/com/google/devtools/build/lib/rules/MakeVariableProvider.java
index 46ad5446b5..be35e55174 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/MakeVariableProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/MakeVariableProvider.java
@@ -15,9 +15,7 @@
package com.google.devtools.build.lib.rules;
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.packages.ClassObjectConstructor;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
@@ -26,11 +24,10 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
/** Provides access to make variables from the current fragments. */
@SkylarkModule(name = "MakeVariables", doc = "Make variables exposed by the current target.")
@Immutable
-public final class MakeVariableProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public final class MakeVariableProvider extends SkylarkClassObject {
public static final String SKYLARK_NAME = "MakeVariableInfo";
- public static final ClassObjectConstructor SKYLARK_CONSTRUCTOR =
+ public static final NativeClassObjectConstructor<MakeVariableProvider> SKYLARK_CONSTRUCTOR =
new NativeClassObjectConstructor<MakeVariableProvider>(
MakeVariableProvider.class, SKYLARK_NAME) {};
diff --git a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
index fbb1b4b616..21d8da4785 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
@@ -61,7 +61,7 @@ public class ToolchainType implements RuleConfiguredTargetFactory {
// out the lookup rule -> toolchain rule mapping. For now, it only provides Make variables that
// come from BuildConfiguration so no need to ask Skyframe.
return new RuleConfiguredTargetBuilder(ruleContext)
- .addProvider(new MakeVariableProvider(ImmutableMap.copyOf(makeVariables)))
+ .addNativeDeclaredProvider(new MakeVariableProvider(ImmutableMap.copyOf(makeVariables)))
.addProvider(RunfilesProvider.simple(Runfiles.EMPTY))
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
index 3a7ddfb1e1..c464e57692 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchain.java
@@ -388,7 +388,6 @@ public class CcToolchain implements RuleConfiguredTargetFactory {
new RuleConfiguredTargetBuilder(ruleContext)
.addProvider(ccProvider)
.addNativeDeclaredProvider(ccProvider)
- .addProvider(makeVariableProvider)
.addNativeDeclaredProvider(makeVariableProvider)
.addProvider(
fdoSupport.getFdoSupport().createFdoSupportProvider(ruleContext, profileArtifact))
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java
index 2e9bbf3f31..7ab2ca6b53 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java
@@ -21,11 +21,9 @@ import static com.google.devtools.build.lib.packages.BuildType.OUTPUT_LIST;
import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
import static com.google.devtools.build.lib.syntax.Type.STRING;
-import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.Attribute;
@@ -111,10 +109,8 @@ public class GenRuleBaseRule implements RuleDefinition {
.add(
attr("toolchains", LABEL_LIST)
.allowedFileTypes(FileTypeSet.NO_FILE)
- .mandatoryNativeProviders(
- ImmutableList.<Class<? extends TransitiveInfoProvider>>of(
- MakeVariableProvider.class)))
-
+ .mandatoryProviders(MakeVariableProvider.SKYLARK_CONSTRUCTOR.id())
+ )
/* <!-- #BLAZE_RULE(genrule).ATTRIBUTE(outs) -->
A list of files generated by this rule.
<p>
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
index c734e0a9b4..3bc2227645 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaBinary.java
@@ -509,7 +509,7 @@ public class JavaBinary implements RuleConfiguredTargetFactory {
TransitiveInfoCollection javabaseTarget = ruleContext.getPrerequisite(":jvm", Mode.TARGET);
JavaRuntimeProvider javaRuntime = null;
if (javabaseTarget != null) {
- javaRuntime = javabaseTarget.getProvider(JavaRuntimeProvider.class);
+ javaRuntime = javabaseTarget.get(JavaRuntimeProvider.SKYLARK_CONSTRUCTOR);
builder.addTransitiveArtifacts(javaRuntime.javaBaseInputs());
// Add symlinks to the C++ runtime libraries under a path that can be built
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java
index cb06a32b1f..d7032fa684 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHelper.java
@@ -155,7 +155,7 @@ public abstract class JavaHelper {
}
TransitiveInfoCollection jvm = ruleContext.getPrerequisite(":jvm", Mode.TARGET);
- return jvm == null ? null : jvm.getProvider(JavaRuntimeProvider.class);
+ return jvm == null ? null : jvm.get(JavaRuntimeProvider.SKYLARK_CONSTRUCTOR);
}
public static JavaRuntimeProvider getHostJavaRuntime(RuleContext ruleContext) {
@@ -164,7 +164,7 @@ public abstract class JavaHelper {
}
TransitiveInfoCollection jvm = ruleContext.getPrerequisite(":host_jdk", Mode.HOST);
- return jvm == null ? null : jvm.getProvider(JavaRuntimeProvider.class);
+ return jvm == null ? null : jvm.get(JavaRuntimeProvider.SKYLARK_CONSTRUCTOR);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java
index 108edd055c..ccda5e7dbd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntime.java
@@ -83,10 +83,8 @@ public class JavaRuntime implements RuleConfiguredTargetFactory {
return new RuleConfiguredTargetBuilder(ruleContext)
.addProvider(RunfilesProvider.class, RunfilesProvider.simple(runfiles))
.setFilesToBuild(filesToBuild)
- .addProvider(JavaRuntimeProvider.class, javaRuntime)
.addNativeDeclaredProvider(javaRuntime)
.addProvider(MiddlemanProvider.class, new MiddlemanProvider(middleman))
- .addProvider(makeVariableProvider)
.addNativeDeclaredProvider(makeVariableProvider)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAlias.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAlias.java
index 7ef88ce193..6b52df7455 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAlias.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeAlias.java
@@ -48,13 +48,9 @@ public class JavaRuntimeAlias implements RuleConfiguredTargetFactory {
RuleConfiguredTargetBuilder builder = new RuleConfiguredTargetBuilder(ruleContext);
if (runtime != null) {
- MakeVariableProvider makeVariableProvider = runtime.getProvider(MakeVariableProvider.class);
- JavaRuntimeProvider javaRuntimeProvider = runtime.getProvider(JavaRuntimeProvider.class);
builder
- .addProvider(javaRuntimeProvider)
- .addNativeDeclaredProvider(javaRuntimeProvider)
- .addProvider(makeVariableProvider)
- .addNativeDeclaredProvider(makeVariableProvider)
+ .addNativeDeclaredProvider(runtime.get(JavaRuntimeProvider.SKYLARK_CONSTRUCTOR))
+ .addNativeDeclaredProvider(runtime.get(MakeVariableProvider.SKYLARK_CONSTRUCTOR))
.addProvider(RunfilesProvider.class, runtime.getProvider(RunfilesProvider.class))
.addProvider(MiddlemanProvider.class, runtime.getProvider(MiddlemanProvider.class))
.setFilesToBuild(runtime.getProvider(FileProvider.class).getFilesToBuild());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeProvider.java
index 33235a3d04..558ff04baa 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeProvider.java
@@ -16,10 +16,8 @@ package com.google.devtools.build.lib.rules.java;
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.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.packages.ClassObjectConstructor;
import com.google.devtools.build.lib.packages.NativeClassObjectConstructor;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
@@ -32,12 +30,12 @@ import com.google.devtools.build.lib.vfs.PathFragment;
doc = "Information about the Java runtime being used."
)
@Immutable
-public class JavaRuntimeProvider extends SkylarkClassObject
- implements TransitiveInfoProvider {
+public class JavaRuntimeProvider extends SkylarkClassObject {
public static final String SKYLARK_NAME = "JavaRuntimeInfo";
- public static final ClassObjectConstructor SKYLARK_CONSTRUCTOR =
- new NativeClassObjectConstructor(JavaToolchainProvider.class, SKYLARK_NAME) {};
+ public static final NativeClassObjectConstructor<JavaRuntimeProvider> SKYLARK_CONSTRUCTOR =
+ new NativeClassObjectConstructor<JavaRuntimeProvider>(
+ JavaRuntimeProvider.class, SKYLARK_NAME) {};
private final NestedSet<Artifact> javaBaseInputs;
private final PathFragment javaHome;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java
index cab0d2c481..5299823427 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuite.java
@@ -41,14 +41,13 @@ public class JavaRuntimeSuite implements RuleConfiguredTargetFactory {
"could not resolve runtime for cpu " + ruleContext.getConfiguration().getCpu());
}
- MakeVariableProvider makeVariableProvider = runtime.getProvider(MakeVariableProvider.class);
+ MakeVariableProvider makeVariableProvider =
+ runtime.get(MakeVariableProvider.SKYLARK_CONSTRUCTOR);
return new RuleConfiguredTargetBuilder(ruleContext)
- .addProvider(JavaRuntimeProvider.class, runtime.getProvider(JavaRuntimeProvider.class))
- .addNativeDeclaredProvider(runtime.get(JavaRuntimeProvider.SKYLARK_CONSTRUCTOR.getKey()))
+ .addNativeDeclaredProvider(runtime.get(JavaRuntimeProvider.SKYLARK_CONSTRUCTOR))
.addProvider(RunfilesProvider.class, runtime.getProvider(RunfilesProvider.class))
.addProvider(MiddlemanProvider.class, runtime.getProvider(MiddlemanProvider.class))
- .addProvider(makeVariableProvider)
.addNativeDeclaredProvider(makeVariableProvider)
.setFilesToBuild(runtime.getProvider(FileProvider.class).getFilesToBuild())
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java
index 22de4df4a3..379501e107 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeSuiteRule.java
@@ -17,11 +17,9 @@ package com.google.devtools.build.lib.rules.java;
import static com.google.devtools.build.lib.packages.Attribute.attr;
import static com.google.devtools.build.lib.packages.BuildType.LICENSE;
-import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleDefinition;
import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;
-import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
@@ -43,9 +41,7 @@ public final class JavaRuntimeSuiteRule implements RuleDefinition {
<!-- #END_BLAZE_RULE.ATTRIBUTE --> */
.add(
attr("default", BuildType.LABEL)
- .mandatoryNativeProviders(
- ImmutableList.<Class<? extends TransitiveInfoProvider>>of(
- JavaRuntimeProvider.class))
+ .mandatoryProviders(JavaRuntimeProvider.SKYLARK_CONSTRUCTOR.id())
.allowedFileTypes(FileTypeSet.NO_FILE))
.add(attr("output_licenses", LICENSE))
.build();
diff --git a/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java b/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java
index a4990af350..85320516e5 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/ToolchainTypeTest.java
@@ -28,7 +28,7 @@ public class ToolchainTypeTest extends BuildViewTestCase {
public void testSmoke() throws Exception {
ConfiguredTarget cc = getConfiguredTarget(getRuleClassProvider().getToolsRepository()
+ "//tools/cpp:toolchain_type");
- assertThat(cc.getProvider(MakeVariableProvider.class).getMakeVariables())
+ assertThat(cc.get(MakeVariableProvider.SKYLARK_CONSTRUCTOR).getMakeVariables())
.containsKey("TARGET_CPU");
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java
index 2c7419cb12..a2924f116d 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CrosstoolConfigurationLoaderTest.java
@@ -489,7 +489,7 @@ public class CrosstoolConfigurationLoaderTest extends AnalysisTestCase {
create(loader, "--cpu=piii", "--host_cpu=piii", "--android_cpu=", "--fat_apk_cpu=");
ConfiguredTarget ccToolchainA = getCcToolchainTarget(toolchainA);
CcToolchainProvider ccProviderA = ccToolchainA.getProvider(CcToolchainProvider.class);
- MakeVariableProvider makeProviderA = ccToolchainA.getProvider(MakeVariableProvider.class);
+ MakeVariableProvider makeProviderA = ccToolchainA.get(MakeVariableProvider.SKYLARK_CONSTRUCTOR);
assertThat(toolchainA.getToolchainIdentifier()).isEqualTo("toolchain-identifier-A");
assertThat(toolchainA.getHostSystemName()).isEqualTo("host-system-name-A");
assertThat(toolchainA.getTargetGnuSystemName()).isEqualTo("target-system-name-A");