packages feed

cassava-0.5.0.0: cassava.cabal

Name:                cassava
Version:             0.5.0.0
Synopsis:            A CSV parsing and encoding library
Description:
  A CSV parsing and encoding library optimized for ease of use and high
  performance.
Homepage:            https://github.com/hvr/cassava
License:             BSD3
License-file:        LICENSE
Bug-reports:         https://github.com/hvr/cassava/issues
Copyright:           (c) 2012 Johan Tibell
                     (c) 2012 Bryan O'Sullivan
                     (c) 2011 MailRank, Inc.
Author:              Johan Tibell
Maintainer:          hvr@gnu.org
Category:            Text, Web, CSV
Build-type:          Simple
Cabal-version:       >=1.10
Extra-source-files:  examples/*.hs,
                     CHANGES.md
Tested-with:         GHC ==8.2.1, GHC ==8.0.2, GHC ==8.0.1, GHC ==7.10.3, GHC ==7.8.4, GHC ==7.6.3, GHC ==7.4.2

----------------------------------------------------------------------------

flag pre-bytestring-0-10-4
  description: bytestring < 0.10.4

Library
  default-language: Haskell2010
  other-extensions:
    BangPatterns
    CPP
    DataKinds
    DefaultSignatures
    DeriveFunctor
    FlexibleContexts
    FlexibleInstances
    KindSignatures
    MultiParamTypeClasses
    OverloadedStrings
    PolyKinds
    Rank2Types
    ScopedTypeVariables
    TypeOperators
    UndecidableInstances

  if impl(ghc >= 8.0)
    other-extensions:
      DataKinds
      PolyKinds

  Exposed-modules:
    Data.Csv
    Data.Csv.Builder
    Data.Csv.Incremental
    Data.Csv.Parser
    Data.Csv.Streaming

  Other-modules:
    Data.Csv.Conversion
    Data.Csv.Conversion.Internal
    Data.Csv.Encoding
    Data.Csv.Types
    Data.Csv.Util

  Build-depends:
    array >= 0.4 && < 0.6,
    attoparsec >= 0.10.2 && < 0.14,
    base >= 4.5 && < 5,
    bytestring >= 0.9.2 && < 0.11,
    containers >= 0.4.2 && < 0.6,
    deepseq >= 1.1 && < 1.5,
    hashable < 1.3,
    text < 1.3,
    unordered-containers < 0.3,
    vector >= 0.8 && < 0.13,
    Only >= 0.1 && < 0.1.1

  if flag(pre-bytestring-0-10-4)
    build-depends: bytestring <  0.10.4
                 , bytestring-builder >= 0.10.8 && < 0.11
  else
    build-depends: bytestring >= 0.10.4
                 , text-short == 0.1.*

  -- GHC.Generics lived in `ghc-prim` for GHC 7.2 & GHC 7.4 only
  if impl(ghc < 7.6)
    build-depends: ghc-prim == 0.2.*

  -- https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#Recommendationsforforward-compatibility
  if impl(ghc >= 8.0)
    ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
  else
    -- provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8
    build-depends: fail == 4.9.*, semigroups == 0.18.*

  if impl(ghc >= 8.2)
    ghc-options: -Wcpp-undef

  ghc-options: -Wall -O2

----------------------------------------------------------------------------

Test-suite unit-tests
  default-language: Haskell2010

  Type: exitcode-stdio-1.0
  Main-is: UnitTests.hs
  -- dependencies with version constraints inherited via lib:cassava
  Build-depends: attoparsec
               , base
               , bytestring
               , cassava
               , hashable
               , text
               , unordered-containers
               , vector
  -- extra dependencies not already used by lib:cassava
  build-depends: HUnit < 1.7
               , QuickCheck == 2.10.*
               , test-framework == 0.8.*
               , test-framework-hunit == 0.3.*
               , test-framework-quickcheck2 == 0.3.*

  hs-source-dirs: tests

  -- https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0#Recommendationsforforward-compatibility
  if impl(ghc >= 8.0)
    ghc-options: -Wcompat -Wnoncanonical-monad-instances -Wnoncanonical-monadfail-instances
  else
    -- provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8
    build-depends: fail == 4.9.*, semigroups == 0.18.*

  if impl(ghc >= 8.2)
    ghc-options: -Wcpp-undef

  ghc-options: -Wall