Buck: haskell_library()

haskell_library()

This is liable to change in the future.

A haskell_library() rule is used to identity a group of Haskell sources.

Arguments

  • name (required) #

    The name of the rule.

  • srcs (defaults to []) #

    A list of Haskell sources to be built by this rule.

  • compiler_flags (defaults to []) #

    Flags to pass to the Haskell compiler when compiling this rule's sources.

  • deps (defaults to []) #

    Either haskell_library or prebuilt_haskell_library rules from which this rules sources import modules or native linkable rules exporting symbols this rules sources call into.

  • preferred_linkage (defaults to any) #

    Controls how a library should be linked.

    any
    The library will be linked based on its dependents link_style.
    shared
    The library will be always be linked as a shared library.
    static
    The library will be linked as a static library.
    Note: since shared libraries re-export its dependencies, depending on multiple shared libraries which themselves have overlapping static dependencies will cause duplicate symbols.

  • visibility (defaults to []) #

    List of build target patterns that identify the build rules that can include this rule in its deps.

  • licenses (defaults to []) #

    Set of license files for this library. To get the list of license files for a given build rule and all of its dependencies, you can use buck query.

  • labels (defaults to []) #

    Set of arbitrary strings which allow you to annotate a build rule with tags that can be searched for over an entire dependency tree using buck query attrfilter.

Examples

haskell_library(
  name = 'fileutil',
  srcs = [
    'FileUtil.hs',
  ],
)