aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-04-22 12:40:30 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-04-22 13:20:29 +0000
commit899416d11209288f7eafe57729ec8f07b23537e1 (patch)
treec29f6b652e7a233179fc6966c38a491df5abde4b /src/main/java/com/google/devtools/build
parent9e4c78fb5752fa554db82815f7336255831a95ab (diff)
Register instances instead of classes as Skylark-visible globals.
-- MOS_MIGRATED_REVID=120538736
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java4
4 files changed, 15 insertions, 17 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index aee043ad5e..56170ba839 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -45,7 +45,6 @@ import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.In
import com.google.devtools.build.lib.syntax.Environment;
import com.google.devtools.build.lib.syntax.Environment.Extension;
import com.google.devtools.build.lib.syntax.Mutability;
-import com.google.devtools.build.lib.syntax.SkylarkType;
import com.google.devtools.common.options.OptionsClassProvider;
import java.lang.reflect.Constructor;
@@ -105,7 +104,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
private ConfigurationCollectionFactory configurationCollectionFactory;
private Class<? extends BuildConfiguration.Fragment> universalFragment;
private PrerequisiteValidator prerequisiteValidator;
- private ImmutableMap<String, SkylarkType> skylarkAccessibleJavaClasses = ImmutableMap.of();
+ private ImmutableMap<String, Object> skylarkAccessibleTopLevels = ImmutableMap.of();
private ImmutableList.Builder<Class<?>> skylarkModules =
ImmutableList.<Class<?>>builder().addAll(SkylarkModules.MODULES);
private final List<Class<? extends FragmentOptions>> buildOptions = Lists.newArrayList();
@@ -193,8 +192,8 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
return this;
}
- public Builder setSkylarkAccessibleJavaClasses(ImmutableMap<String, SkylarkType> objects) {
- this.skylarkAccessibleJavaClasses = objects;
+ public Builder setSkylarkAccessibleTopLevels(ImmutableMap<String, Object> objects) {
+ this.skylarkAccessibleTopLevels = objects;
return this;
}
@@ -277,7 +276,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
configurationCollectionFactory,
universalFragment,
prerequisiteValidator,
- skylarkAccessibleJavaClasses,
+ skylarkAccessibleTopLevels,
skylarkModules.build(),
buildOptions);
}
@@ -394,7 +393,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
ConfigurationCollectionFactory configurationCollectionFactory,
Class<? extends BuildConfiguration.Fragment> universalFragment,
PrerequisiteValidator prerequisiteValidator,
- ImmutableMap<String, SkylarkType> skylarkAccessibleJavaClasses,
+ ImmutableMap<String, Object> skylarkAccessibleJavaClasses,
ImmutableList<Class<?>> skylarkModules,
List<Class<? extends FragmentOptions>> buildOptions) {
this.preludeLabel = preludeLabel;
@@ -514,13 +513,13 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider {
}
private Environment.Frame createGlobals(
- ImmutableMap<String, SkylarkType> skylarkAccessibleJavaClasses,
+ ImmutableMap<String, Object> skylarkAccessibleToplLevels,
ImmutableList<Class<?>> modules) {
try (Mutability mutability = Mutability.create("ConfiguredRuleClassProvider globals")) {
Environment env = createSkylarkRuleClassEnvironment(
mutability, SkylarkModules.getGlobals(modules), null, null, null);
- for (Map.Entry<String, SkylarkType> entry : skylarkAccessibleJavaClasses.entrySet()) {
- env.setup(entry.getKey(), entry.getValue().getType());
+ for (Map.Entry<String, Object> entry : skylarkAccessibleToplLevels.entrySet()) {
+ env.setup(entry.getKey(), entry.getValue());
}
return env.getGlobals();
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index ef0bca705c..61d5224b73 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -131,7 +131,6 @@ import com.google.devtools.build.lib.rules.repository.BindRule;
import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule;
import com.google.devtools.build.lib.rules.repository.NewLocalRepositoryRule;
import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule;
-import com.google.devtools.build.lib.syntax.SkylarkType;
import com.google.devtools.build.lib.util.ResourceFileLoader;
import java.io.IOException;
@@ -233,10 +232,10 @@ public class BazelRuleClassProvider {
/**
* Java objects accessible from Skylark rule implementations using this module.
*/
- public static final ImmutableMap<String, SkylarkType> skylarkBuiltinJavaObects =
+ public static final ImmutableMap<String, Object> skylarkBuiltinJavaObects =
ImmutableMap.of(
- "android_common", SkylarkType.of(AndroidSkylarkCommon.class),
- "apple_common", SkylarkType.of(AppleSkylarkCommon.class));
+ "android_common", new AndroidSkylarkCommon(),
+ "apple_common", new AppleSkylarkCommon());
public static void setup(ConfiguredRuleClassProvider.Builder builder) {
builder
@@ -248,7 +247,7 @@ public class BazelRuleClassProvider {
.setRunfilesPrefix("")
.setToolsRepository("@bazel_tools")
.setPrerequisiteValidator(new BazelPrerequisiteValidator())
- .setSkylarkAccessibleJavaClasses(skylarkBuiltinJavaObects);
+ .setSkylarkAccessibleTopLevels(skylarkBuiltinJavaObects);
builder.addBuildOptions(BUILD_OPTIONS);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java
index 1724cfa4f8..462407bcdb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkCommon.java
@@ -35,7 +35,7 @@ public class AndroidSkylarkCommon {
+ "a directory that designates resource kind (cf. "
+ "http://developer.android.com/guide/topics/resources/providing-resources.html)."
)
- public static PathFragment getSourceDirectoryRelativePathFromResource(Artifact resource) {
+ public PathFragment getSourceDirectoryRelativePathFromResource(Artifact resource) {
return AndroidCommon.getSourceDirectoryRelativePathFromResource(resource);
}
}
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 00b2c665d7..f77e8ba1b7 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
@@ -31,7 +31,7 @@ public class AppleSkylarkCommon {
name = "apple_toolchain",
doc = "Utilities for resolving items from the apple toolchain."
)
- public static AppleToolchain getAppleToolchain() {
+ public AppleToolchain getAppleToolchain() {
return new AppleToolchain();
}
@@ -40,7 +40,7 @@ public class AppleSkylarkCommon {
doc = "Retrieves ObjcProvider keys",
structField = true
)
- public static SkylarkKeyStore getKeys() {
+ public SkylarkKeyStore getKeys() {
return new SkylarkKeyStore();
}
}