public class CxxLink extends ModernBuildRule<CxxLink.Impl> implements HasAppleDebugSymbolDeps, OverrideScheduleRule, HasSupplementaryOutputs
Modifier and Type | Class and Description |
---|---|
static class |
CxxLink.Impl
Buildable implementation of CxxLink.
|
Constructor and Description |
---|
CxxLink(BuildTarget buildTarget,
ProjectFilesystem projectFilesystem,
SourcePathRuleFinder ruleFinder,
CellPathResolver cellResolver,
Linker linker,
Path output,
com.google.common.collect.ImmutableMap<String,Path> extraOutputs,
com.google.common.collect.ImmutableList<Arg> args,
Optional<LinkOutputPostprocessor> postprocessor,
Optional<RuleScheduleInfo> ruleScheduleInfo,
boolean cacheable,
boolean thinLto,
boolean fatLto) |
Modifier and Type | Method and Description |
---|---|
java.util.stream.Stream<BuildRule> |
getAppleDebugSymbolDeps() |
com.google.common.collect.ImmutableList<Arg> |
getArgs() |
Linker |
getLinker() |
Optional<Path> |
getLinkerMapPath() |
RuleScheduleInfo |
getRuleScheduleInfo() |
SourcePath |
getSourcePathToOutput() |
SourcePath |
getSourcePathToSupplementaryOutput(String name)
Returns a SourcePath to a named supplementary output, or null if it does not exist.
|
boolean |
isCacheable()
Whether this
BuildRule can be cached. |
compareTo, getBuildable, getBuildCellPathFactory, getBuildDeps, getBuildSteps, getOutputPathResolver, getSetupStepsForBuildable, getSourcePath, getSourcePaths, injectFieldsIfNecessary, inputBasedRuleKeyIsEnabled, recordOutputs, recordOutputs, recordOutputs, stepsForBuildable, stepsForBuildable, updateBuildRuleResolver
equals, getBuildTarget, getDependencies, getProjectFilesystem, getSourcePathOutputs, getType, hasBuildSteps, hashCode, injectFields, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
compareTo, getBuildDeps, getBuildSteps, getBuildTarget, getFullyQualifiedName, getProjectFilesystem, hasBuildSteps, outputFileCanBeCopied, shouldRespectInputSizeLimitForRemoteExecution, toString, updateBuildRuleResolver
getDependencies, getSourcePathOutputs
getType
isSupported
public CxxLink(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, SourcePathRuleFinder ruleFinder, CellPathResolver cellResolver, Linker linker, Path output, com.google.common.collect.ImmutableMap<String,Path> extraOutputs, com.google.common.collect.ImmutableList<Arg> args, Optional<LinkOutputPostprocessor> postprocessor, Optional<RuleScheduleInfo> ruleScheduleInfo, boolean cacheable, boolean thinLto, boolean fatLto)
public java.util.stream.Stream<BuildRule> getAppleDebugSymbolDeps()
getAppleDebugSymbolDeps
in interface HasAppleDebugSymbolDeps
public SourcePath getSourcePathToOutput()
getSourcePathToOutput
in interface BuildRule
getSourcePathToOutput
in class ModernBuildRule<CxxLink.Impl>
@Nullable public SourcePath getSourcePathToSupplementaryOutput(String name)
HasSupplementaryOutputs
getSourcePathToSupplementaryOutput
in interface HasSupplementaryOutputs
public RuleScheduleInfo getRuleScheduleInfo()
getRuleScheduleInfo
in interface OverrideScheduleRule
public boolean isCacheable()
BuildRule
BuildRule
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 BuildEngineAction
isCacheable
in interface BuildRule
isCacheable
in class AbstractBuildRule
public Linker getLinker()
public com.google.common.collect.ImmutableList<Arg> getArgs()