diff options
author | 2017-01-27 19:30:34 +0000 | |
---|---|---|
committer | 2017-01-30 09:01:24 +0000 | |
commit | 4a877386b0d647885dbba48714d1be36a36362f4 (patch) | |
tree | f629b9892f5afb7efb2ac37e2817fa87dade3e65 /src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java | |
parent | d7e965a3676026d09bb5450425792571aa257a00 (diff) |
Switch to RunfilesSuppliers for communicating runfiles
ActionSpawn/SpawnAction now deal exclusively in RunfilesSuppliers, manifests
maps are no more.
There is some lingering awkwardness, in particular:
- Manifests still need to be tracked in some places, we can work out if this is
still necessary on a case by case basis.
- Skylark makes actions' runfiles available via 'resolve_command' where they are
consumed by 'action'. I've updated the documentation, though the name isn't
entirely accurate anymore. That being said these interfaces _are_ marked as
experimental, so we _should_ be able to be flexible here.
Overall, I think the benefits consolidating runfiles into suppliers, from both
code cleanliness and performance perspectives (no longer needing to parse
manifests), outweights the awkwardnesses.
RELNOTES: resolve_command/action's input_manifest return/parameter is now list
--
PiperOrigin-RevId: 145817429
MOS_MIGRATED_REVID=145817429
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java index e1b3c11b99..ef7062303b 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionFactory.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.rules.extra; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.devtools.build.lib.actions.Artifact; +import com.google.devtools.build.lib.actions.CompositeRunfilesSupplier; import com.google.devtools.build.lib.analysis.CommandHelper; import com.google.devtools.build.lib.analysis.ConfigurationMakeVariableContext; import com.google.devtools.build.lib.analysis.ConfiguredTarget; @@ -27,11 +28,9 @@ import com.google.devtools.build.lib.analysis.Runfiles; import com.google.devtools.build.lib.analysis.RunfilesProvider; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory; import com.google.devtools.build.lib.syntax.Type; - import java.util.List; /** @@ -78,7 +77,7 @@ public final class ExtraActionFactory implements RuleConfiguredTargetFactory { ExtraActionSpec spec = new ExtraActionSpec( commandHelper.getResolvedTools(), - commandHelper.getRemoteRunfileManifestMap(), + new CompositeRunfilesSupplier(commandHelper.getToolsRunfilesSuppliers()), resolvedData, outputTemplates, command, |