diff options
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java index b8c7471065..b93f357939 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java @@ -36,6 +36,7 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.ActionsProvider; import com.google.devtools.build.lib.analysis.BaseRuleClasses; import com.google.devtools.build.lib.analysis.DefaultInfo; +import com.google.devtools.build.lib.analysis.TemplateVariableInfo; import com.google.devtools.build.lib.analysis.config.ConfigAwareRuleClassBuilder; import com.google.devtools.build.lib.analysis.config.HostTransition; import com.google.devtools.build.lib.analysis.config.transitions.PatchTransition; @@ -88,6 +89,7 @@ import com.google.devtools.build.lib.syntax.SkylarkType; import com.google.devtools.build.lib.syntax.SkylarkUtils; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.syntax.Type.ConversionException; +import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.util.Pair; import java.util.Map; import java.util.concurrent.ExecutionException; @@ -120,6 +122,11 @@ public class SkylarkRuleClassFunctions implements SkylarkRuleFunctionsApi<Artifa BaseRuleClasses.nameAttribute( new RuleClass.Builder("$base_rule", RuleClassType.ABSTRACT, true)) .add(attr("expect_failure", STRING))) + // TODO(skylark-team): Allow Skylark rules to extend native rules and remove duplication. + .add( + attr("toolchains", LABEL_LIST) + .allowedFileTypes(FileTypeSet.NO_FILE) + .mandatoryProviders(ImmutableList.of(TemplateVariableInfo.PROVIDER.id()))) .build(); /** Parent rule class for executable non-test Skylark rules. */ diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java index 55a386bff5..2634773cdc 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleContext.java @@ -759,11 +759,10 @@ public final class SkylarkRuleContext implements SkylarkRuleContextApi { checkMutable("expand_make_variables"); ConfigurationMakeVariableContext makeVariableContext = new ConfigurationMakeVariableContext( - // TODO(lberki): This should be removed. But only after either verifying that no one - // uses it or providing an alternative. - ruleContext.getMakeVariables(ImmutableList.of(":cc_toolchain")), + this.getRuleContext(), ruleContext.getRule().getPackage(), - ruleContext.getConfiguration()) { + ruleContext.getConfiguration(), + ImmutableList.of()) { @Override public String lookupVariable(String variableName) throws ExpansionException { if (additionalSubstitutions.containsKey(variableName)) { |