Support for protocol buffers
haskell_proto_library
haskell_proto_library(name, deps)
Generate Haskell library allowing to use protobuf definitions.
Uses proto-lens.
Examples
proto_library(
  name = "foo_proto",
  srcs = ["foo.proto"],
)
haskell_proto_library(
  name = "foo_haskell_proto",
  deps = [":foo_proto"],
)haskell_proto_library targets require haskell_proto_toolchain to be registered.
Attributes
| name | Name; required A unique name for this target. | 
| deps | List of labels; required 
List of  | 
haskell_proto_toolchain
haskell_proto_toolchain(name, plugin, deps, protoc, kwargs)
Declare a Haskell protobuf toolchain.
You need at least one of these declared somewhere in your BUILD files for the haskell_proto_library rules to work. Once declared, you then need to register the toolchain using register_toolchains in your WORKSPACE file (see example below).
Examples
In a BUILD file:
haskell_proto_toolchain(
  name = "protobuf-toolchain",
  protoc = "@com_google_protobuf//:protoc",
  plugin = "@stackage-exe//proto-lens-protoc",
  deps = [
    "base",
    "bytestring",
    "containers",
    "data-default-class",
    "lens-family",
    "proto-lens",
    "text",
  ],
)The deps attribute is for specifying Haskell libraries to use when compiling the auto-generated source files.
In WORKSPACE you could have something like this:
http_archive(
  name = "com_google_protobuf",
  sha256 = "cef7f1b5a7c5fba672bec2a319246e8feba471f04dcebfe362d55930ee7c1c30",
  strip_prefix = "protobuf-3.5.0",
  urls = ["https://github.com/google/protobuf/archive/v3.5.0.zip"],
)
nixpkgs_package(
  name = "protoc_gen_haskell",
  repository = "@nixpkgs",
  attribute_path = "haskell.packages.ghc822.proto-lens-protoc
)
register_toolchains(
  "//tests:ghc", # assuming you called your Haskell toolchain "ghc"
  "//tests:protobuf-toolchain",
)Attributes
| name | required A unique name for this toolchain. | 
| plugin | required Proto-lens-protoc plugin for protoc. | 
| deps | optional; default is []List of other Haskell libraries to be linked to protobuf libraries. | 
| protoc | optional; default is Label("@com_google_protobuf//:protoc")Protoc compiler. | 
| kwargs | optional |