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, wait
getNativeLinkableInput
public 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 NativeLinkable
public boolean supportsOmnibusLinking()
supportsOmnibusLinking
in interface NativeLinkable
NativeLinkable
supports omnibus linking.public boolean isPrebuiltSOForHaskellOmnibus(ActionGraphBuilder graphBuilder)
isPrebuiltSOForHaskellOmnibus
in interface NativeLinkable
public boolean supportsOmnibusLinkingForHaskell()
supportsOmnibusLinkingForHaskell
in interface NativeLinkable
public boolean forceLinkWholeForHaskellOmnibus()
forceLinkWholeForHaskellOmnibus
in interface NativeLinkable
public BuildTarget getBuildTarget()
getBuildTarget
in interface NativeLinkable
BuildTarget
for this linkable.public Iterable<? extends NativeLinkable> getNativeLinkableDeps(ActionGraphBuilder graphBuilder)
getNativeLinkableDeps
in interface NativeLinkable
public Iterable<? extends NativeLinkable> getNativeLinkableExportedDeps(ActionGraphBuilder graphBuilder)
getNativeLinkableExportedDeps
in interface NativeLinkable
public NativeLinkableInput getNativeLinkableInput(Linker.LinkableDepType type, boolean forceLinkWhole, ActionGraphBuilder graphBuilder, TargetConfiguration targetConfiguration)
NativeLinkable
getNativeLinkableInput
in interface NativeLinkable
public Optional<NativeLinkTarget> getNativeLinkTarget(ActionGraphBuilder graphBuilder, boolean includePrivateLinkerFlags)
NativeLinkable
NativeLinkTarget
. Most implementations of NativeLinkable are
themselves instances of NativeLinkTarget.getNativeLinkTarget
in interface NativeLinkable
includePrivateLinkerFlags
- whether to include rule-specific non-exported linker flags.public NativeLinkableGroup.Linkage getPreferredLinkage()
getPreferredLinkage
in interface NativeLinkable
NativeLinkableGroup.Linkage
for this linkable.public com.google.common.collect.ImmutableMap<String,SourcePath> getSharedLibraries(ActionGraphBuilder graphBuilder)
getSharedLibraries
in interface NativeLinkable
CxxPlatform
.public Iterable<? extends Arg> getExportedLinkerFlags(ActionGraphBuilder graphBuilder)
getExportedLinkerFlags
in interface NativeLinkable
public Iterable<? extends Arg> getExportedPostLinkerFlags(ActionGraphBuilder graphBuilder)
getExportedPostLinkerFlags
in interface NativeLinkable
public boolean shouldBeLinkedInAppleTestAndHost()
shouldBeLinkedInAppleTestAndHost
in interface NativeLinkable