aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleImplementationFunctions.java
diff options
context:
space:
mode:
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.java49
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(