diff options
Diffstat (limited to 'third_party/bazel/rules_haskell/haskell/plugins.bzl')
-rw-r--r-- | third_party/bazel/rules_haskell/haskell/plugins.bzl | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/third_party/bazel/rules_haskell/haskell/plugins.bzl b/third_party/bazel/rules_haskell/haskell/plugins.bzl deleted file mode 100644 index 5769eeaf7ef6..000000000000 --- a/third_party/bazel/rules_haskell/haskell/plugins.bzl +++ /dev/null @@ -1,64 +0,0 @@ -load(":providers.bzl", "GhcPluginInfo", "HaskellLibraryInfo") - -def ghc_plugin_impl(ctx): - args = ctx.attr.args - args = [ctx.expand_location(arg, ctx.attr.tools) for arg in args] - args = [ctx.expand_make_variables("args", arg, {}) for arg in args] - - # XXX Ideally we'd resolve tools downstream. - (tool_inputs, tool_input_manifests) = ctx.resolve_tools(tools = ctx.attr.tools) - return [ - GhcPluginInfo( - module = ctx.attr.module, - deps = ctx.attr.deps, - tool_inputs = tool_inputs, - tool_input_manifests = tool_input_manifests, - args = args, - ), - ] - -ghc_plugin = rule( - ghc_plugin_impl, - attrs = { - "module": attr.string( - doc = "Plugin entrypoint.", - ), - "deps": attr.label_list( - doc = "Plugin dependencies. These are compile-time dependencies only.", - providers = [HaskellLibraryInfo], - ), - "args": attr.string_list( - doc = "Plugin options.", - ), - "tools": attr.label_list( - doc = "Tools needed by the plugin when it used.", - ), - }, -) -"""Declare a GHC plugin. - -Example: - ```bzl - haskell_library( - name = "plugin-lib", - srcs = ["Plugin.hs"], - ) - - ghc_plugin( - name = "plugin", - module = "Plugin", - deps = [":plugin-lib"], - ) - - haskell_binary( - name = "some-binary", - srcs = ["Main.hs"], - plugins = [":plugin"], - ``` - -Plugins to use during compilation by GHC are given by the `plugins` -attribute to Haskell rules. Plugins are haskell libraries with some -extra metadata, like the name of the module that acts as the -entrypoint for the plugin and plugin options. - -""" |