public class CxxBinary extends AbstractBuildRuleWithDeclaredAndExtraDeps implements BinaryBuildRule, NativeTestable, HasRuntimeDeps, HasAppleDebugSymbolDeps, SupportsInputBasedRuleKey, HasSupplementaryOutputs
| Constructor and Description |
|---|
CxxBinary(BuildTarget buildTarget,
ProjectFilesystem projectFilesystem,
BuildRuleParams params,
CxxPlatform cxxPlatform,
BuildRule linkRule,
Tool executable,
Iterable<FrameworkPath> frameworks,
Iterable<BuildTarget> tests,
BuildTarget platformlessTarget,
boolean cacheable) |
| Modifier and Type | Method and Description |
|---|---|
java.util.stream.Stream<BuildRule> |
getAppleDebugSymbolDeps() |
com.google.common.collect.ImmutableList<Step> |
getBuildSteps(BuildContext context,
BuildableContext buildableContext) |
CxxPlatform |
getCxxPlatform() |
Tool |
getExecutableCommand(OutputLabel outputLabel)
Command to execute the output of this rule.
|
BuildRule |
getLinkRule() |
CxxPreprocessorInput |
getPrivateCxxPreprocessorInput(CxxPlatform cxxPlatform,
ActionGraphBuilder graphBuilder)
Return the
CxxPreprocessorInput to expose private headers of this rule. |
java.util.stream.Stream<BuildTarget> |
getRuntimeDeps(BuildRuleResolver buildRuleResolver) |
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. |
boolean |
isTestedBy(BuildTarget testRule)
Return true if this rule is tested by
testTarget, false otherwise. |
deprecatedGetExtraDeps, getBuildDeps, getDeclaredDeps, getTargetGraphOnlyDepsequals, getBuildTarget, getDependencies, getProjectFilesystem, getSourcePathOutputs, getType, hasBuildSteps, hashCode, injectFields, toString, updateBuildRuleResolverclone, finalize, getClass, notify, notifyAll, wait, wait, waitinputBasedRuleKeyIsEnabled, isSupportedcompareTo, getBuildDeps, getBuildTarget, getFullyQualifiedName, getProjectFilesystem, hasBuildSteps, outputFileCanBeCopied, shouldRespectInputSizeLimitForRemoteExecution, toString, updateBuildRuleResolvergetDependencies, getSourcePathOutputsgetTypepublic CxxBinary(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, BuildRuleParams params, CxxPlatform cxxPlatform, BuildRule linkRule, Tool executable, Iterable<FrameworkPath> frameworks, Iterable<BuildTarget> tests, BuildTarget platformlessTarget, boolean cacheable)
public Tool getExecutableCommand(OutputLabel outputLabel)
BinaryBuildRulegetExecutableCommand in interface BinaryBuildRuleoutputLabel - associated with the executablepublic com.google.common.collect.ImmutableList<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext)
getBuildSteps in interface BuildRulepublic SourcePath getSourcePathToOutput()
getSourcePathToOutput in interface BuildRulepublic BuildRule getLinkRule()
public boolean isTestedBy(BuildTarget testRule)
NativeTestabletestTarget, false otherwise.isTestedBy in interface NativeTestablepublic CxxPreprocessorInput getPrivateCxxPreprocessorInput(CxxPlatform cxxPlatform, ActionGraphBuilder graphBuilder)
NativeTestableCxxPreprocessorInput to expose private headers of this rule. This is used to
propagate private headers to the test testing this object. For convenience, tests can see
private headers visible in the rule being tested.getPrivateCxxPreprocessorInput in interface NativeTestablepublic java.util.stream.Stream<BuildRule> getAppleDebugSymbolDeps()
getAppleDebugSymbolDeps in interface HasAppleDebugSymbolDepspublic 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 AbstractBuildRulepublic java.util.stream.Stream<BuildTarget> getRuntimeDeps(BuildRuleResolver buildRuleResolver)
getRuntimeDeps in interface HasRuntimeDepspublic CxxPlatform getCxxPlatform()
@Nullable public SourcePath getSourcePathToSupplementaryOutput(String name)
HasSupplementaryOutputsgetSourcePathToSupplementaryOutput in interface HasSupplementaryOutputs