Class VersionedTool

  • All Implemented Interfaces:
    AddsToRuleKey, HasCustomInputsLogic, Tool

    public abstract class VersionedTool
    extends Object
    implements Tool, HasCustomInputsLogic
    A Tool which only contributes a fixed name and version when appended to a rule key. This class also holds a Path reference to the tool and additional flags used when invoking the tool, which do *not* themselves contribute to the rule key. This is useful in situations such as supporting cross-compilation, in which case the different tools themselves might not be bit-by-bit identical (and, similarly, they might need to invoked with slightly different flags) but we know that they produce identical output, in which case they should also generate identical rule keys.