public class HaskellGhciDescription extends Object implements DescriptionWithTargetGraph<HaskellGhciDescriptionArg>, ImplicitDepsInferringDescription<com.facebook.buck.features.haskell.HaskellGhciDescription.AbstractHaskellGhciDescriptionArg>, VersionRoot<HaskellGhciDescriptionArg>
Constructor and Description |
---|
HaskellGhciDescription(ToolchainProvider toolchainProvider,
CxxBuckConfig cxxBuckConfig) |
Modifier and Type | Method and Description |
---|---|
BuildRule |
createBuildRule(BuildRuleCreationContextWithTargetGraph context,
BuildTarget buildTarget,
BuildRuleParams params,
HaskellGhciDescriptionArg args)
Create a
BuildRule for the given BuildRuleParams . |
void |
findDepsForTargetFromConstructorArgs(BuildTarget buildTarget,
CellNameResolver cellRoots,
com.facebook.buck.features.haskell.HaskellGhciDescription.AbstractHaskellGhciDescriptionArg constructorArg,
com.google.common.collect.ImmutableCollection.Builder<BuildTarget> extraDepsBuilder,
com.google.common.collect.ImmutableCollection.Builder<BuildTarget> targetGraphOnlyDepsBuilder) |
Class<HaskellGhciDescriptionArg> |
getConstructorArgType()
The type of the constructor argument that is used by this description to create a rule
|
static com.facebook.buck.features.haskell.HaskellGhciDescription.HaskellGhciOmnibusSpec |
getOmnibusSpec(BuildTarget baseTarget,
ActionGraphBuilder graphBuilder,
com.google.common.collect.ImmutableList<? extends NativeLinkable> omnibusRoots,
com.google.common.collect.ImmutableList<? extends NativeLinkable> excludedRoots) |
static Path |
getSoLibsRelDir(BuildTarget baseTarget)
Give the relative path from the omnibus to its shared library directory.
|
static BuildRule |
requireOmnibusSharedObject(CellPathResolver cellPathResolver,
BuildTarget baseTarget,
ProjectFilesystem projectFilesystem,
ActionGraphBuilder graphBuilder,
CxxPlatform cxxPlatform,
CxxBuckConfig cxxBuckConfig,
Iterable<NativeLinkable> body,
Iterable<NativeLinkable> deps,
com.google.common.collect.ImmutableList<Arg> extraLdFlags)
Give a rule for an omnibus object to be loaded into a ghci session
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isVersionRoot
producesCacheableSubgraph
getConfigurationDeps
public HaskellGhciDescription(ToolchainProvider toolchainProvider, CxxBuckConfig cxxBuckConfig)
public Class<HaskellGhciDescriptionArg> getConstructorArgType()
BaseDescription
getConstructorArgType
in interface BaseDescription<HaskellGhciDescriptionArg>
public static com.facebook.buck.features.haskell.HaskellGhciDescription.HaskellGhciOmnibusSpec getOmnibusSpec(BuildTarget baseTarget, ActionGraphBuilder graphBuilder, com.google.common.collect.ImmutableList<? extends NativeLinkable> omnibusRoots, com.google.common.collect.ImmutableList<? extends NativeLinkable> excludedRoots)
omnibusRoots
- roots of the graph of nodes (including transitive deps) to include in the
omnibus link.excludedRoots
- roots of a the graph of nodes (including transitive deps) that cannot be
included in the omnibus link.HaskellGhciOmnibusSpec
describing the omnibus link.public static Path getSoLibsRelDir(BuildTarget baseTarget)
public static BuildRule requireOmnibusSharedObject(CellPathResolver cellPathResolver, BuildTarget baseTarget, ProjectFilesystem projectFilesystem, ActionGraphBuilder graphBuilder, CxxPlatform cxxPlatform, CxxBuckConfig cxxBuckConfig, Iterable<NativeLinkable> body, Iterable<NativeLinkable> deps, com.google.common.collect.ImmutableList<Arg> extraLdFlags)
public BuildRule createBuildRule(BuildRuleCreationContextWithTargetGraph context, BuildTarget buildTarget, BuildRuleParams params, HaskellGhciDescriptionArg args)
DescriptionWithTargetGraph
BuildRule
for the given BuildRuleParams
. Note that the BuildTarget
referred to in the params
contains the Flavor
to create.createBuildRule
in interface DescriptionWithTargetGraph<HaskellGhciDescriptionArg>
args
- A constructor argument, of type as returned by BaseDescription.getConstructorArgType()
.BuildRule
that describes the default flavour of the rule being described.public void findDepsForTargetFromConstructorArgs(BuildTarget buildTarget, CellNameResolver cellRoots, com.facebook.buck.features.haskell.HaskellGhciDescription.AbstractHaskellGhciDescriptionArg constructorArg, com.google.common.collect.ImmutableCollection.Builder<BuildTarget> extraDepsBuilder, com.google.common.collect.ImmutableCollection.Builder<BuildTarget> targetGraphOnlyDepsBuilder)
findDepsForTargetFromConstructorArgs
in interface ImplicitDepsInferringDescription<com.facebook.buck.features.haskell.HaskellGhciDescription.AbstractHaskellGhciDescriptionArg>