aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java33
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java10
4 files changed, 10 insertions, 55 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index b5291a1de9..8c3caa8e97 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -196,22 +196,6 @@ public final class BuildConfiguration implements ClassObject {
}
/**
- * Determines whether this fragment can be accessed in Skylark as a field of
- * ctx.configuration
- */
- public boolean isSkylarkVisible() {
- return false;
- }
-
- /**
- * If this fragment is skylarkVisible, it will be accessible in Skylark via
- * ctx.configuration.NAME where NAME = getName()
- */
- public String getName() {
- return getClass().getName();
- }
-
- /**
* Returns a fragment of the output directory name for this configuration. The output
* directory for the whole configuration contains all the short names by all fragments.
*/
@@ -910,7 +894,7 @@ public final class BuildConfiguration implements ClassObject {
private Set<BuildConfiguration> allReachableConfigurations;
private final ImmutableMap<Class<? extends Fragment>, Fragment> fragments;
- private final ImmutableMap<String, Fragment> skylarkVisibleFragments;
+ private final ImmutableMap<String, Class<? extends Fragment>> skylarkVisibleFragments;
/**
* Directories in the output tree.
@@ -1136,15 +1120,15 @@ public final class BuildConfiguration implements ClassObject {
checksum = Fingerprint.md5Digest(buildOptions.computeCacheKey());
}
- private ImmutableMap<String, Fragment> buildIndexOfVisibleFragments() {
- ImmutableMap.Builder<String, Fragment> builder = ImmutableMap.builder();
+ private ImmutableMap<String, Class<? extends Fragment>> buildIndexOfVisibleFragments() {
+ ImmutableMap.Builder<String, Class<? extends Fragment>> builder = ImmutableMap.builder();
- for (Fragment fragment : fragments.values()) {
- if (fragment.isSkylarkVisible()) {
- builder.put(fragment.getName(), fragment);
+ for (Class<? extends Fragment> fragmentClass : fragments.keySet()) {
+ SkylarkModule annotation = fragmentClass.getAnnotation(SkylarkModule.class);
+ if (annotation != null) {
+ builder.put(annotation.name(), fragmentClass);
}
}
-
return builder.build();
}
@@ -1948,7 +1932,8 @@ public final class BuildConfiguration implements ClassObject {
@Override
@Nullable
public Object getValue(String name) {
- return skylarkVisibleFragments.get(name);
+ Class<? extends Fragment> fragmentClass = skylarkVisibleFragments.get(name);
+ return (fragmentClass == null) ? null : fragments.get(fragmentClass);
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index b410f7e691..f72c4f34c0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -663,16 +663,6 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
this.additionalMakeVariables = ImmutableMap.copyOf(makeVariablesBuilder);
}
- @Override
- public boolean isSkylarkVisible() {
- return true;
- }
-
- @Override
- public String getName() {
- return "cpp";
- }
-
private List<OptionalFlag> convertOptionalOptions(
List<CrosstoolConfig.CToolchain.OptionalFlag> optionalFlagList)
throws IllegalArgumentException {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
index 71454c6ef5..2151bffc2c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -34,7 +34,7 @@ import java.util.List;
* A java compiler configuration containing the flags required for compilation.
*/
@Immutable
-@SkylarkModule(name = "java_configuration", doc = "A java compiler configuration")
+@SkylarkModule(name = "java", doc = "A java compiler configuration")
public final class JavaConfiguration extends Fragment {
/**
* Values for the --experimental_java_classpath option
@@ -104,16 +104,6 @@ public final class JavaConfiguration extends Fragment {
}
this.translationTargets = translationsBuilder.build();
}
-
- @Override
- public boolean isSkylarkVisible() {
- return true;
- }
-
- @Override
- public String getName() {
- return "java";
- }
@SkylarkCallable(name = "default_javac_flags", structField = true,
doc = "The default flags for the Java compiler.")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java b/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
index 378dc60462..d822da836c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/Jvm.java
@@ -46,16 +46,6 @@ public final class Jvm extends BuildConfiguration.Fragment {
this.javaHome = javaHome;
this.jvmLabel = jvmLabel;
}
-
- @Override
- public boolean isSkylarkVisible() {
- return true;
- }
-
- @Override
- public String getName() {
- return "jvm";
- }
@Override
public void addImplicitLabels(Multimap<String, Label> implicitLabels) {