This is liable to change in the future.
rule is used to identity a group of Haskell sources.
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
prebuilt_haskell_library rules from which this rules sources import modules or native linkable rules exporting symbols this rules sources call into.
link_whole (defaults to
On some platforms, the linker may choose to drop objects from libraries if it determines they may be unused. This parameter causes the linker to always include the entire library in top-level executables or shared libraries.
preferred_linkage (defaults to
Controls how a library should be linked.
Note: since shared libraries re-export its dependencies, depending on multiple shared libraries which themselves have overlapping static dependencies will cause duplicate symbols.
- The library will be linked based on its dependents
- The library will be always be linked as a shared library.
- The library will be linked as a static library.
visibility (defaults to
List of build target patterns that identify the build rules that can include this rule as a dependency, for example, by listing it in their
exported_deps attributes. For more information, see visibility.
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
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.
name = 'fileutil',
srcs = [