packages feed

safe-money-0.6: safe-money.cabal

name: safe-money
version: 0.6
license: BSD3
license-file: LICENSE
copyright: Copyright (c) Renzo Carbonara 2016-2018
author: Renzo Carbonara
maintainer: renλren!zone
stability: Experimental
tested-with: GHC==8.2.2, GHC==8.0.2, GHCJS
homepage: https://github.com/k0001/safe-money
bug-reports: https://github.com/k0001/safe-money/issues
category: Money
build-type: Simple
cabal-version: >=1.10
extra-source-files: README.md changelog.md
synopsis:
  Type-safe and lossless encoding and manipulation of money, fiat currencies,
  crypto currencies and precious metals.
description:
  Type-safe and lossless encoding and manipulation of money, fiat currencies,
  crypto currencies and precious metals.
  .
  NOTICE that the only mandatory dependencies of this package are @base@,
  @binary@, @constraints@, @deepseq@ and @text@. Except for
  @constraints@, all of them are included with a standard GHC distribution. The
  rest of the dependencies are OPTIONAL but enabled by default (except @store@
  which is disabled when building with GHCJS because it doesn't compile ther).
  All of the optional dependencies can be disabled with Cabal flags.

source-repository head
  type: git
  location: https://github.com/k0001/safe-money

library
  default-language: Haskell2010
  hs-source-dirs: src
  ghc-options: -Wall -O2
  build-depends:
    base (>=4.8 && <5.0),
    binary,
    constraints,
    deepseq,
    text
  exposed-modules:
    Money
    Money.Internal

  if flag(aeson)
    build-depends: aeson (>=0.9)
    cpp-options: -DHAS_aeson
  if flag(cereal)
    build-depends: cereal (>=0.5)
    cpp-options: -DHAS_cereal
  if flag(hashable)
    build-depends: hashable (>=1.2)
    cpp-options: -DHAS_hashable
  if flag(serialise)
    build-depends: serialise (>=0.2)
    cpp-options: -DHAS_serialise
  if (flag(store) && !impl(ghcjs))
    build-depends: store (>=0.2)
    cpp-options: -DHAS_store
  if flag(vector-space)
    build-depends: vector-space (>=0.12)
    cpp-options: -DHAS_vector_space
  if flag(xmlbf)
    build-depends: xmlbf (>=0.2)
    cpp-options: -DHAS_xmlbf

test-suite test
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  build-depends:
    base,
    binary,
    bytestring,
    constraints,
    deepseq,
    safe-money,
    tasty,
    tasty-hunit,
    tasty-quickcheck,
    text

  if flag(aeson)
    build-depends: aeson
    cpp-options: -DHAS_aeson
  if flag(cereal)
    build-depends: cereal
    cpp-options: -DHAS_cereal
  if flag(hashable)
    build-depends: hashable
    cpp-options: -DHAS_hashable
  if flag(serialise)
    build-depends: serialise
    cpp-options: -DHAS_serialise
  if (flag(store) && !impl(ghcjs))
    build-depends: store
    cpp-options: -DHAS_store
  if flag(vector-space)
    build-depends: vector-space
    cpp-options: -DHAS_vector_space
  if flag(xmlbf)
    build-depends: xmlbf
    cpp-options: -DHAS_xmlbf

flag aeson
  description: Provide instances for @aeson@
  default: True
  manual: True
flag cereal
  description: Provide instances for @cereal@
  default: True
  manual: True
flag store
  description: Provide instances for @store@
  default: True
  manual: True
flag hashable
  description: Provide instances for @hashable@
  default: True
  manual: True
flag serialise
  description: Provide instances for @serialise@
  default: True
  manual: True
flag vector-space
  description: Provide instances for @vector-space@
  default: True
  manual: True
flag xmlbf
  description: Provide instances for @xmlbf@
  default: True
  manual: True