public class HaskellDescriptionUtils extends Object
Modifier and Type | Method and Description |
---|---|
protected static com.facebook.buck.features.haskell.HaskellCompilerFlags |
createCompileFlags(ActionGraphBuilder graphBuilder,
com.google.common.collect.ImmutableSet<BuildRule> deps,
com.facebook.buck.features.haskell.HaskellPlatform platform,
Linker.LinkableDepType depType,
boolean hsProfile,
com.google.common.collect.ImmutableList<String> additionalFlags)
Create common Haskell compile flags used by HaskellCompileRule or HaskellHaddockLibRule.
|
static HaskellLinkRule |
createLinkRule(BuildTarget target,
ProjectFilesystem projectFilesystem,
BuildRuleParams baseParams,
ActionGraphBuilder graphBuilder,
com.facebook.buck.features.haskell.HaskellPlatform platform,
Linker.LinkType linkType,
com.google.common.collect.ImmutableList<Arg> linkerFlags,
Iterable<Arg> linkerInputs,
Iterable<? extends NativeLinkableGroup> deps,
com.google.common.collect.ImmutableSet<BuildTarget> linkWholeDeps,
Linker.LinkableDepType depType,
Path outputPath,
Optional<String> soname,
boolean hsProfile)
Create a Haskell link rule that links the given inputs to a executable or shared library and
pulls in transitive native linkable deps from the given dep roots.
|
protected static BuildTarget |
getCompileBuildTarget(BuildTarget target,
com.facebook.buck.features.haskell.HaskellPlatform platform,
Linker.LinkableDepType depType,
boolean hsProfile) |
static void |
getParseTimeDeps(TargetConfiguration targetConfiguration,
Iterable<com.facebook.buck.features.haskell.HaskellPlatform> platforms,
com.google.common.collect.ImmutableCollection.Builder<BuildTarget> depsBuilder)
Accumulate parse-time deps needed by Haskell descriptions in depsBuilder.
|
static HaskellCompileRule |
requireCompileRule(BuildTarget buildTarget,
ProjectFilesystem projectFilesystem,
BuildRuleParams params,
ActionGraphBuilder graphBuilder,
com.google.common.collect.ImmutableSet<BuildRule> deps,
com.facebook.buck.features.haskell.HaskellPlatform platform,
Linker.LinkableDepType depType,
boolean hsProfile,
Optional<String> main,
Optional<com.facebook.buck.features.haskell.HaskellPackageInfo> packageInfo,
com.google.common.collect.ImmutableList<String> flags,
com.facebook.buck.features.haskell.HaskellSources srcs) |
static HaskellGhciRule |
requireGhciRule(BuildTarget buildTarget,
ProjectFilesystem projectFilesystem,
BuildRuleParams params,
CellPathResolver cellPathResolver,
ActionGraphBuilder graphBuilder,
com.facebook.buck.features.haskell.HaskellPlatform platform,
CxxBuckConfig cxxBuckConfig,
com.google.common.collect.ImmutableSortedSet<BuildTarget> argDeps,
PatternMatchedCollection<com.google.common.collect.ImmutableSortedSet<BuildTarget>> argPlatformDeps,
SourceSortedSet argSrcs,
com.google.common.collect.ImmutableSortedSet<BuildTarget> argPreloadDeps,
PatternMatchedCollection<com.google.common.collect.ImmutableSortedSet<BuildTarget>> argPlatformPreloadDeps,
com.google.common.collect.ImmutableList<String> argCompilerFlags,
Optional<BuildTarget> argGhciBinDep,
Optional<SourcePath> argGhciInit,
com.google.common.collect.ImmutableList<SourcePath> argExtraScriptTemplates,
boolean hsProfile)
Give a rule that will result in a ghci session for the target
|
protected static com.facebook.buck.features.haskell.HaskellCompilerFlags createCompileFlags(ActionGraphBuilder graphBuilder, com.google.common.collect.ImmutableSet<BuildRule> deps, com.facebook.buck.features.haskell.HaskellPlatform platform, Linker.LinkableDepType depType, boolean hsProfile, com.google.common.collect.ImmutableList<String> additionalFlags)
protected static BuildTarget getCompileBuildTarget(BuildTarget target, com.facebook.buck.features.haskell.HaskellPlatform platform, Linker.LinkableDepType depType, boolean hsProfile)
public static HaskellCompileRule requireCompileRule(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, BuildRuleParams params, ActionGraphBuilder graphBuilder, com.google.common.collect.ImmutableSet<BuildRule> deps, com.facebook.buck.features.haskell.HaskellPlatform platform, Linker.LinkableDepType depType, boolean hsProfile, Optional<String> main, Optional<com.facebook.buck.features.haskell.HaskellPackageInfo> packageInfo, com.google.common.collect.ImmutableList<String> flags, com.facebook.buck.features.haskell.HaskellSources srcs)
public static HaskellLinkRule createLinkRule(BuildTarget target, ProjectFilesystem projectFilesystem, BuildRuleParams baseParams, ActionGraphBuilder graphBuilder, com.facebook.buck.features.haskell.HaskellPlatform platform, Linker.LinkType linkType, com.google.common.collect.ImmutableList<Arg> linkerFlags, Iterable<Arg> linkerInputs, Iterable<? extends NativeLinkableGroup> deps, com.google.common.collect.ImmutableSet<BuildTarget> linkWholeDeps, Linker.LinkableDepType depType, Path outputPath, Optional<String> soname, boolean hsProfile)
public static void getParseTimeDeps(TargetConfiguration targetConfiguration, Iterable<com.facebook.buck.features.haskell.HaskellPlatform> platforms, com.google.common.collect.ImmutableCollection.Builder<BuildTarget> depsBuilder)
public static HaskellGhciRule requireGhciRule(BuildTarget buildTarget, ProjectFilesystem projectFilesystem, BuildRuleParams params, CellPathResolver cellPathResolver, ActionGraphBuilder graphBuilder, com.facebook.buck.features.haskell.HaskellPlatform platform, CxxBuckConfig cxxBuckConfig, com.google.common.collect.ImmutableSortedSet<BuildTarget> argDeps, PatternMatchedCollection<com.google.common.collect.ImmutableSortedSet<BuildTarget>> argPlatformDeps, SourceSortedSet argSrcs, com.google.common.collect.ImmutableSortedSet<BuildTarget> argPreloadDeps, PatternMatchedCollection<com.google.common.collect.ImmutableSortedSet<BuildTarget>> argPlatformPreloadDeps, com.google.common.collect.ImmutableList<String> argCompilerFlags, Optional<BuildTarget> argGhciBinDep, Optional<SourcePath> argGhciInit, com.google.common.collect.ImmutableList<SourcePath> argExtraScriptTemplates, boolean hsProfile)