diff options
Diffstat (limited to 'src/main/java/com')
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) { |