name:                butcher
version:             1.1.1.0
synopsis:            Chops a command or program invocation into digestable pieces.
description:         See the <https://github.com/lspitzner/butcher/blob/master/README.md README> (it is properly formatted on github).
license:             BSD3
license-file:        LICENSE
author:              Lennart Spitzner
maintainer:          Lennart Spitzner <hexagoxel@hexagoxel.de>
copyright:           Copyright (C) 2016-2017 Lennart Spitzner
category:            UI
build-type:          Simple
Stability:           experimental
extra-source-files: {
  ChangeLog.md
  srcinc/prelude.inc
  README.md
}
cabal-version:       >=1.10
homepage:            https://github.com/lspitzner/butcher/
bug-reports:         https://github.com/lspitzner/butcher/issues

source-repository head {
  type: git
  location: https://github.com/lspitzner/butcher.git
}

flag butcher-dev
  description: dev options
  default: False
  manual: True

library
  exposed-modules:     UI.Butcher.Monadic.Types
                       UI.Butcher.Monadic
                       UI.Butcher.Monadic.Command
                       UI.Butcher.Monadic.Param
                       UI.Butcher.Monadic.Flag
                       UI.Butcher.Monadic.Pretty
                       UI.Butcher.Monadic.IO
                       UI.Butcher.Monadic.BuiltinCommands
  other-modules:       UI.Butcher.Monadic.Internal.Types
                       UI.Butcher.Monadic.Internal.Core
  build-depends:
    { base >=4.8 && <4.11
    , free
    , unsafe
    , microlens
    , microlens-th
    , multistate
    , pretty
    , containers
    , either
    , transformers
    , mtl
    , extra
    , void
    , bifunctors
    , deque
    }
  if flag(butcher-dev) {
    build-depends:
      hspec
  }
  hs-source-dirs:      src
  default-language:    Haskell2010
  default-extensions: {
    CPP

    NoImplicitPrelude

    GADTs

    FlexibleContexts
    FlexibleInstances
    ScopedTypeVariables
    MonadComprehensions
    LambdaCase
    MultiWayIf
    KindSignatures
  }
  other-extensions: {
    DeriveFunctor
    ExistentialQuantification
    GeneralizedNewtypeDeriving
    StandaloneDeriving
    DataKinds
    TypeOperators
    TemplateHaskell
  }
  ghc-options: {
    -Wall
    -fno-spec-constr
    -fno-warn-unused-imports
    -fno-warn-orphans
  }
  if flag(butcher-dev) {
    ghc-options: -O0 -Werror -fprof-auto -fprof-cafs
  }
  include-dirs:
    srcinc

test-suite tests
  type:             exitcode-stdio-1.0
  default-language: Haskell2010
  build-depends:
    { base >=4.8 && <4.11
    , butcher
    , free
    , unsafe
    , microlens
    , microlens-th
    , multistate
    , pretty
    , containers
    , either
    , transformers
    , mtl
    , extra
    , deque
    }
  if flag(butcher-dev) {
    buildable:        True
    build-depends:
      hspec
  } else {
    buildable:        False
  }
  ghc-options:      -Wall
  main-is:          TestMain.hs
  other-modules:    
  hs-source-dirs:   src-tests
  default-extensions: {
    CPP

    NoImplicitPrelude

    GADTs

    FlexibleContexts
    FlexibleInstances
    ScopedTypeVariables
    MonadComprehensions
    LambdaCase
    MultiWayIf
    KindSignatures
  }
  ghc-options: {
    -Wall
    -fno-spec-constr
    -fno-warn-unused-imports
    -fno-warn-orphans
  }
  if flag(butcher-dev) {
    ghc-options: -Werror -fprof-auto -fprof-cafs -O0
  }