name:                   verbosity
version:                0.1.0.0
synopsis:               Simple enum that encodes application verbosity.
description:
  Simple enum that encodes application verbosity with various useful instances.

homepage:               https://github.com/trskop/verbosity
bug-reports:            https://github.com/trskop/verbosity/issues
license:                BSD3
license-file:           LICENSE
author:                 Peter Trško
maintainer:             peter.trsko@gmail.com
copyright:              (c) 2015, Peter Trško
category:               Data
build-type:             Simple
cabal-version:          >=1.10

extra-source-files:     ChangeLog.md, README.md

flag pedantic
  description:          Pass additional warning flags to GHC.
  default:              False
  manual:               True

flag data-typeable
  description:          Derive instances for Data and Typeable type classes.
  default:              True

flag ghc-generics
  description:          Derive instances for Data and Typeable type classes.
  default:              True

flag binary
  description:          Derive instances for Binary type class.
  default:              True

flag data-default
  description:          Derive instances for Default type class.
  default:              True

library
  hs-source-dirs:       src
  exposed-modules:      Data.Verbosity

  default-language:     Haskell2010
  other-extensions:
      CPP
    , NoImplicitPrelude
    , DeriveDataTypeable
    -- ^ With -fdata-typeable
    , DeriveGeneric
    -- ^ With -fghc-generics

  build-depends:        base >=4 && <5
  ghc-options:          -Wall -fwarn-tabs

  if flag(pedantic)
    ghc-options:        -fwarn-implicit-prelude -fwarn-missing-import-lists

  if flag(ghc-generics)
    cpp-options:        -DDERIVE_GHC_GENERICS

    -- GHC.Generics moved from ghc-prim to base with GHC 7.6 release.
    if impl(ghc >=7.2 && <7.6)
      build-depends:    ghc-prim

  if flag(data-typeable)
    cpp-options:        -DDERIVE_DATA_TYPEABLE

  if flag(binary)
    build-depends:      binary >=0.5 && <0.8
    cpp-options:        -DDECLARE_BINARY_INSTANCE

  if flag(data-default)
    build-depends:      data-default-class ==0.0.*
    cpp-options:        -DDECLARE_DEFAULT_INSTANCE

source-repository head
  type:                 git
  location:             git://github.com/trskop/verbosity

source-repository this
  type:                 git
  location:             git://github.com/trskop/verbosity.git
  tag:                  v0.1.0.0