diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java | 49 |
1 files changed, 5 insertions, 44 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java index 5908834a0f..9488165e06 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java @@ -16,17 +16,13 @@ package com.google.devtools.build.lib.rules; import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.devtools.build.lib.actions.Action; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.RunfilesSupplier; -import com.google.devtools.build.lib.actions.extra.SpawnInfo; import com.google.devtools.build.lib.analysis.AbstractConfiguredTarget; import com.google.devtools.build.lib.analysis.CommandHelper; import com.google.devtools.build.lib.analysis.FileProvider; import com.google.devtools.build.lib.analysis.FilesToRunProvider; import com.google.devtools.build.lib.analysis.LocationExpander; -import com.google.devtools.build.lib.analysis.PseudoAction; -import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; @@ -35,8 +31,6 @@ import com.google.devtools.build.lib.analysis.actions.SpawnAction; import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction; import com.google.devtools.build.lib.analysis.actions.TemplateExpansionAction.Substitution; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.collect.nestedset.NestedSet; -import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.skylarkinterface.Param; import com.google.devtools.build.lib.skylarkinterface.ParamType; @@ -62,7 +56,6 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; // TODO(bazel-team): function argument names are often duplicated, // figure out a nicely readable way to get rid of the duplications. @@ -444,7 +437,9 @@ public class SkylarkRuleImplementationFunctions { @SkylarkSignature( name = "empty_action", doc = - "Creates an empty action that neither executes a command nor produces any " + "DEPRECATED. Use <a href=\"actions.html#do_nothing\">ctx.actions.do_nothing</a> instead." + + " <br>" + + "Creates an empty action that neither executes a command nor produces any " + "output, but that is useful for inserting 'extra actions'.", objectType = SkylarkRuleContext.class, returnType = Runtime.NoneType.class, @@ -475,45 +470,11 @@ public class SkylarkRuleImplementationFunctions { new BuiltinFunction("empty_action") { @SuppressWarnings("unused") public Runtime.NoneType invoke(SkylarkRuleContext ctx, String mnemonic, Object inputs) - throws EvalException, ConversionException { + throws EvalException { ctx.checkMutable("empty_action"); - RuleContext ruleContext = ctx.getRuleContext(); - NestedSet<Artifact> inputSet = inputs instanceof SkylarkNestedSet - ? ((SkylarkNestedSet) inputs).getSet(Artifact.class) - : convertInputs((SkylarkList) inputs); - Action action = - new PseudoAction<>( - generateUuid(ruleContext), - ruleContext.getActionOwner(), - inputSet, - generateDummyOutputs(ruleContext), - mnemonic, - SpawnInfo.spawnInfo, - createEmptySpawnInfo()); - ruleContext.registerAction(action); - + ctx.actions().doNothing(mnemonic, inputs); return Runtime.NONE; } - - private NestedSet<Artifact> convertInputs(SkylarkList inputs) throws EvalException { - return NestedSetBuilder.<Artifact>compileOrder() - .addAll(inputs.getContents(Artifact.class, "inputs")) - .build(); - } - - protected UUID generateUuid(RuleContext ruleContext) { - return UUID.nameUUIDFromBytes( - String.format("empty action %s", ruleContext.getLabel()) - .getBytes(StandardCharsets.UTF_8)); - } - - protected ImmutableList<Artifact> generateDummyOutputs(RuleContext ruleContext) { - return ImmutableList.of(PseudoAction.getDummyOutput(ruleContext)); - } - - protected SpawnInfo createEmptySpawnInfo() { - return SpawnInfo.newBuilder().build(); - } }; @SkylarkSignature( |