public class NativeLinkableInfo extends Object implements NativeLinkable
NativeLinkable where (most of) the behavior is fixed when created.| Modifier and Type | Class and Description |
|---|---|
static class |
NativeLinkableInfo.Configuration
Configuration is used for configuring the less-commonly changed parts of the @{link
NativeLinkableInfo}.
|
static interface |
NativeLinkableInfo.Delegate
The Delegate allows instances to create
NativeLinkableInput when requested. |
| Constructor and Description |
|---|
NativeLinkableInfo(BuildTarget buildTarget,
String ruleType,
com.google.common.collect.ImmutableList<NativeLinkable> deps,
com.google.common.collect.ImmutableList<NativeLinkable> exportedDeps,
NativeLinkableGroup.Linkage preferredLinkage,
NativeLinkableInfo.Delegate delegate,
NativeLinkableInfo.Configuration config) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetNativeLinkableInputpublic NativeLinkableInfo(BuildTarget buildTarget, String ruleType, com.google.common.collect.ImmutableList<NativeLinkable> deps, com.google.common.collect.ImmutableList<NativeLinkable> exportedDeps, NativeLinkableGroup.Linkage preferredLinkage, NativeLinkableInfo.Delegate delegate, NativeLinkableInfo.Configuration config)
public static NativeLinkableInfo.Delegate fixedDelegate(NativeLinkableInput instance, com.google.common.collect.ImmutableMap<String,SourcePath> sharedLibraries)
public static NativeLinkableInfo.Configuration defaults()
public String getRuleType()
getRuleType in interface NativeLinkablepublic boolean supportsOmnibusLinking()
supportsOmnibusLinking in interface NativeLinkableNativeLinkable supports omnibus linking.public boolean isPrebuiltSOForHaskellOmnibus(ActionGraphBuilder graphBuilder)
isPrebuiltSOForHaskellOmnibus in interface NativeLinkablepublic boolean supportsOmnibusLinkingForHaskell()
supportsOmnibusLinkingForHaskell in interface NativeLinkablepublic boolean forceLinkWholeForHaskellOmnibus()
forceLinkWholeForHaskellOmnibus in interface NativeLinkablepublic BuildTarget getBuildTarget()
getBuildTarget in interface NativeLinkableBuildTarget for this linkable.public Iterable<? extends NativeLinkable> getNativeLinkableDeps(ActionGraphBuilder graphBuilder)
getNativeLinkableDeps in interface NativeLinkablepublic Iterable<? extends NativeLinkable> getNativeLinkableExportedDeps(ActionGraphBuilder graphBuilder)
getNativeLinkableExportedDeps in interface NativeLinkablepublic NativeLinkableInput getNativeLinkableInput(Linker.LinkableDepType type, boolean forceLinkWhole, ActionGraphBuilder graphBuilder, TargetConfiguration targetConfiguration)
NativeLinkablegetNativeLinkableInput in interface NativeLinkablepublic Optional<NativeLinkTarget> getNativeLinkTarget(ActionGraphBuilder graphBuilder, boolean includePrivateLinkerFlags)
NativeLinkableNativeLinkTarget. Most implementations of NativeLinkable are
themselves instances of NativeLinkTarget.getNativeLinkTarget in interface NativeLinkableincludePrivateLinkerFlags - whether to include rule-specific non-exported linker flags.public NativeLinkableGroup.Linkage getPreferredLinkage()
getPreferredLinkage in interface NativeLinkableNativeLinkableGroup.Linkage for this linkable.public com.google.common.collect.ImmutableMap<String,SourcePath> getSharedLibraries(ActionGraphBuilder graphBuilder)
getSharedLibraries in interface NativeLinkableCxxPlatform.public Iterable<? extends Arg> getExportedLinkerFlags(ActionGraphBuilder graphBuilder)
getExportedLinkerFlags in interface NativeLinkablepublic Iterable<? extends Arg> getExportedPostLinkerFlags(ActionGraphBuilder graphBuilder)
getExportedPostLinkerFlags in interface NativeLinkablepublic boolean shouldBeLinkedInAppleTestAndHost()
shouldBeLinkedInAppleTestAndHost in interface NativeLinkable