packages feed

proto-lens-protoc-0.2.2.0: proto-lens-protoc.cabal

name:                proto-lens-protoc
version:             0.2.2.0
synopsis:            Protocol buffer compiler for the proto-lens library.
description:
  Turn protocol buffer files (.proto) into Haskell files (.hs) which
  can be used with the proto-lens package.

  The library component of this package contains compiler code (namely
  Data.ProtoLens.Compiler.*) that is not guaranteed to have stable APIs.
license:             BSD3
license-file:        LICENSE
author:              Judah Jacobson
maintainer:          proto-lens@googlegroups.com
copyright:           Google Inc.
category:            Data
build-type:          Simple
cabal-version:       >=1.21
extra-source-files:  Changelog.md

-- Work around stack bug, since we don't want to build the library
-- during bootstrapping:
-- https://github.com/commercialhaskell/stack/issues/1406
flag only-executable
    Description: Only build the executable.  Used for bootstrapping.
    Default: False

library
  if flag(only-executable) {
      buildable: False
  } else {
    exposed-modules:
        Data.ProtoLens.Compiler.Combinators
        Data.ProtoLens.Compiler.Definitions
        Data.ProtoLens.Compiler.Generate
        Data.ProtoLens.Compiler.Plugin
        Data.ProtoLens.Setup
    default-language:  Haskell2010
    hs-source-dirs:    src
    build-depends:
          Cabal >= 1.22 && < 2.1
        , base >= 4.8 && < 4.11
        , bytestring == 0.10.*
        , containers == 0.5.*
        , data-default-class >= 0.0 && < 0.2
        , directory >= 1.2 && < 1.4
        , filepath >= 1.4 && < 1.6
        , haskell-src-exts >= 1.17 && < 1.20
        , lens-family == 1.2.*
        , lens-labels == 0.1.*
        , process >= 1.2 && < 1.5
        -- Specify a more precise version of `proto-lens`, since it depends on
        -- the exact definition of the Message class.
        , proto-lens == 0.2.2.*
        , proto-lens-descriptors == 0.2.2.*
        , text == 1.2.*
    reexported-modules:
        -- Modules that are needed by the generated Haskell files.
        -- For forwards compatibility, reexport them as new module names so that
        -- other packages don't accidentally write non-generated code that
        -- relies on these modules being reexported by proto-lens-protoc.
          Prelude as Data.ProtoLens.Reexport.Prelude
        , Data.Int as Data.ProtoLens.Reexport.Data.Int
        , Data.Word as Data.ProtoLens.Reexport.Data.Word
        , Data.ByteString as Data.ProtoLens.Reexport.Data.ByteString
        , Data.Default.Class as Data.ProtoLens.Reexport.Data.Default.Class
        , Data.Map as Data.ProtoLens.Reexport.Data.Map
        , Data.ProtoLens as Data.ProtoLens.Reexport.Data.ProtoLens
        , Data.ProtoLens.Message.Enum as Data.ProtoLens.Reexport.Data.ProtoLens.Message.Enum
        , Data.Text as Data.ProtoLens.Reexport.Data.Text
        , Lens.Family2 as Data.ProtoLens.Reexport.Lens.Family2
        , Lens.Family2.Unchecked as Data.ProtoLens.Reexport.Lens.Family2.Unchecked
        , Lens.Labels as Data.ProtoLens.Reexport.Lens.Labels
    }

executable proto-lens-protoc
  main-is:  protoc-gen-haskell.hs

  build-depends:
        base >= 4.8 && < 4.11
      , bytestring == 0.10.*
      , containers == 0.5.*
      , data-default-class >= 0.0 && < 0.2
      , filepath >= 1.4 && < 1.6
      , haskell-src-exts >= 1.17 && < 1.20
      , lens-family == 1.2.*
      -- Specify a more precise version of `proto-lens`, since it depends on
      -- the exact definition of the Message class.
      , proto-lens == 0.2.2.*
      , proto-lens-descriptors == 0.2.2.*
      , text == 1.2.*
  hs-source-dirs:      src
  other-modules:
      Data.ProtoLens.Compiler.Combinators
      Data.ProtoLens.Compiler.Definitions
      Data.ProtoLens.Compiler.Generate
      Data.ProtoLens.Compiler.Plugin

  default-language:    Haskell2010