public class PrebuiltAppleFramework extends AbstractBuildRuleWithDeclaredAndExtraDeps implements CxxPreprocessorDep, LegacyNativeLinkableGroup, HasOutputName
NativeLinkableGroup.Linkage
Constructor and Description |
---|
PrebuiltAppleFramework(BuildTarget buildTarget,
ProjectFilesystem projectFilesystem,
BuildRuleParams params,
ActionGraphBuilder graphBuilder,
SourcePath frameworkPath,
NativeLinkableGroup.Linkage preferredLinkage,
com.google.common.collect.ImmutableSet<FrameworkPath> frameworks,
Optional<Pattern> supportedPlatformsRegex,
java.util.function.Function<? super CxxPlatform,com.google.common.collect.ImmutableList<String>> exportedLinkerFlags,
FlavorDomain<UnresolvedAppleCxxPlatform> applePlatformFlavorDomain) |
deprecatedGetExtraDeps, getBuildDeps, getDeclaredDeps, getTargetGraphOnlyDeps
equals, getBuildTarget, getDependencies, getProjectFilesystem, getSourcePathOutputs, getType, hasBuildSteps, hashCode, injectFields, toString, updateBuildRuleResolver
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getBuildTarget
forceLinkWholeForHaskellOmnibus, getExportedLinkerFlags, getExportedPostLinkerFlags, getNativeLinkable, getNativeLinkableCache, getNativeLinkableExportedDepsForPlatform, getNativeLinkableInput, getNativeLinkTarget, getRuleType, isPrebuiltSOForHaskellOmnibus, shouldBeLinkedInAppleTestAndHost, supportsOmnibusLinking, supportsOmnibusLinkingForHaskell
getBuildTarget
compareTo, getFullyQualifiedName, outputFileCanBeCopied, shouldRespectInputSizeLimitForRemoteExecution
public PrebuiltAppleFramework(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, BuildRuleParams params, ActionGraphBuilder graphBuilder, SourcePath frameworkPath, NativeLinkableGroup.Linkage preferredLinkage, com.google.common.collect.ImmutableSet<FrameworkPath> frameworks, Optional<Pattern> supportedPlatformsRegex, java.util.function.Function<? super CxxPlatform,com.google.common.collect.ImmutableList<String>> exportedLinkerFlags, FlavorDomain<UnresolvedAppleCxxPlatform> applePlatformFlavorDomain)
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 com.google.common.collect.ImmutableList<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext)
getBuildSteps
in interface BuildRule
public SourcePath getSourcePathToOutput()
getSourcePathToOutput
in interface BuildRule
public String getOutputName(OutputLabel outputLabel)
HasOutputName
getOutputName
in interface HasOutputName
public PlatformLockedNativeLinkableGroup.Cache getNativeLinkableCompatibilityCache()
getNativeLinkableCompatibilityCache
in interface LegacyNativeLinkableGroup
public Iterable<CxxPreprocessorDep> getCxxPreprocessorDeps(CxxPlatform cxxPlatform, BuildRuleResolver ruleResolver)
getCxxPreprocessorDeps
in interface CxxPreprocessorDep
public CxxPreprocessorInput getCxxPreprocessorInput(CxxPlatform cxxPlatform, ActionGraphBuilder graphBuilder)
CxxPreprocessorDep
getCxxPreprocessorInput
in interface CxxPreprocessorDep
public com.google.common.collect.ImmutableMap<BuildTarget,CxxPreprocessorInput> getTransitiveCxxPreprocessorInput(CxxPlatform cxxPlatform, ActionGraphBuilder graphBuilder)
CxxPreprocessorDep
getTransitiveCxxPreprocessorInput
in interface CxxPreprocessorDep
public Iterable<NativeLinkableGroup> getNativeLinkableDeps(BuildRuleResolver ruleResolver)
getNativeLinkableDeps
in interface LegacyNativeLinkableGroup
public Iterable<NativeLinkableGroup> getNativeLinkableDepsForPlatform(CxxPlatform cxxPlatform, BuildRuleResolver ruleResolver)
getNativeLinkableDepsForPlatform
in interface LegacyNativeLinkableGroup
public Iterable<? extends NativeLinkableGroup> getNativeLinkableExportedDeps(BuildRuleResolver ruleResolver)
getNativeLinkableExportedDeps
in interface LegacyNativeLinkableGroup
public NativeLinkableInput getNativeLinkableInput(CxxPlatform cxxPlatform, Linker.LinkableDepType type, boolean forceLinkWhole, ActionGraphBuilder graphBuilder, TargetConfiguration targetConfiguration)
LegacyNativeLinkableGroup
getNativeLinkableInput
in interface LegacyNativeLinkableGroup
public NativeLinkableGroup.Linkage getPreferredLinkage(CxxPlatform cxxPlatform)
getPreferredLinkage
in interface LegacyNativeLinkableGroup
public com.google.common.collect.ImmutableMap<String,SourcePath> getSharedLibraries(CxxPlatform cxxPlatform, ActionGraphBuilder graphBuilder)
getSharedLibraries
in interface LegacyNativeLinkableGroup
CxxPlatform
.