public class AppleDsym extends AbstractBuildRule implements HasPostBuildSteps, SupportsInputBasedRuleKey
| Modifier and Type | Field and Description |
|---|---|
static String |
DSYM_DWARF_FILE_FOLDER |
static Flavor |
RULE_FLAVOR |
| Constructor and Description |
|---|
AppleDsym(BuildTarget buildTarget,
ProjectFilesystem projectFilesystem,
SourcePathRuleFinder sourcePathRuleFinder,
Tool dsymutil,
Tool lldb,
SourcePath unstrippedBinarySourcePath,
com.google.common.collect.ImmutableSortedSet<SourcePath> additionalSymbolDeps,
Path dsymOutputPath,
boolean isCacheable) |
| Modifier and Type | Method and Description |
|---|---|
SortedSet<BuildRule> |
getBuildDeps() |
com.google.common.collect.ImmutableList<Step> |
getBuildSteps(BuildContext context,
BuildableContext buildableContext) |
static Path |
getDsymOutputPath(BuildTarget target,
ProjectFilesystem filesystem) |
static String |
getDwarfFilenameForDsymTarget(BuildTarget dsymTarget) |
com.google.common.collect.ImmutableList<Step> |
getPostBuildSteps(BuildContext context) |
SourcePath |
getSourcePathToOutput() |
boolean |
isCacheable()
Whether this
BuildRule can be cached. |
void |
updateBuildRuleResolver(BuildRuleResolver ruleResolver)
Updates the BuildRuleResolver and associated objects for this build rule.
|
equals, getBuildTarget, getDependencies, getProjectFilesystem, getSourcePathOutputs, getType, hasBuildSteps, hashCode, injectFields, toStringclone, finalize, getClass, notify, notifyAll, wait, wait, waitinputBasedRuleKeyIsEnabled, isSupportedcompareTo, getBuildTarget, getFullyQualifiedName, getProjectFilesystem, hasBuildSteps, outputFileCanBeCopied, shouldRespectInputSizeLimitForRemoteExecution, toStringgetDependencies, getSourcePathOutputsgetTypepublic static final Flavor RULE_FLAVOR
public static final String DSYM_DWARF_FILE_FOLDER
public AppleDsym(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, SourcePathRuleFinder sourcePathRuleFinder, Tool dsymutil, Tool lldb, SourcePath unstrippedBinarySourcePath, com.google.common.collect.ImmutableSortedSet<SourcePath> additionalSymbolDeps, Path dsymOutputPath, boolean isCacheable)
public static Path getDsymOutputPath(BuildTarget target, ProjectFilesystem filesystem)
public static String getDwarfFilenameForDsymTarget(BuildTarget dsymTarget)
public com.google.common.collect.ImmutableList<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext)
getBuildSteps in interface BuildRulepublic SourcePath getSourcePathToOutput()
getSourcePathToOutput in interface BuildRulepublic com.google.common.collect.ImmutableList<Step> getPostBuildSteps(BuildContext context)
getPostBuildSteps in interface HasPostBuildStepsSteps that run after the build regardless of whether this build rule
actually ran or hit in the cache.public SortedSet<BuildRule> getBuildDeps()
getBuildDeps in interface BuildRuledeps argument for this build rule in the build file in which it was defined.
However, there are special cases where other arguments pull in implicit dependencies
(e.g., the keystore argument in android_binary). In these cases, the
implicit dependencies are also included in the set returned by this method. The value of
the original deps argument, as defined in the build file, must be accessed via a
custom getter provided by the build rule.
public void updateBuildRuleResolver(BuildRuleResolver ruleResolver)
BuildRuleBuild rules sometimes hold field references to build rule resolvers. If this build rule is to be cached, it must update its BuildRuleResolver when a new action graph is constructed to avoid leaking the entire action graph it was originally associated with.
updateBuildRuleResolver in interface BuildRuleupdateBuildRuleResolver in class AbstractBuildRulepublic boolean isCacheable()
BuildRuleBuildRule can be cached.
Uncached build rules are never written out to cache, never read from cache, and does not count in cache statistics. This rule is useful for artifacts which cannot be easily normalized.
Uncached rules are not always rebuilt, however, as long as the existing on-disk
representation is up to date. This means that these rules can take advantage of SupportsInputBasedRuleKey to prevent rebuilding.
isCacheable in interface BuildEngineActionisCacheable in interface BuildRuleisCacheable in class AbstractBuildRule