cabal-version: 1.12
name: MissingH
version: 1.4.3.1

build-type: Simple
license: BSD3
author: John Goerzen
copyright: Copyright (c) 2004-2018 John Goerzen
maintainer: Herbert Valerio Riedel <hvr@gnu.org>
license-file: LICENSE

tested-with:
  GHC == 9.2.1
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2
  GHC == 8.0.2
  GHC == 7.10.3
  GHC == 7.8.4
  GHC == 7.6.3
  GHC == 7.4.2

synopsis: Large utility library
description:
  @MissingH@ is a library of all sorts of utility functions for Haskell
  programmers.  It is written in pure Haskell and thus should be
  extremely portable and easy to use.
category: Unclassified
bug-reports: https://github.com/hvr/missingh/issues

extra-source-files:
  CHANGES.md
  LICENSE
  announcements/0.10.0.txt
  announcements/0.8.0.txt
  announcements/0.9.0.txt
  testsrc/gzfiles/empty.gz
  testsrc/gzfiles/t1.gz
  testsrc/gzfiles/t1bad.gz
  testsrc/gzfiles/t2.gz
  testsrc/gzfiles/zeros.gz
  testsrc/mime.types.test
  3rd-party-licenses/BSD
  3rd-party-licenses/LGPL-2.1
  examples/simplegrep.hs
  examples/test2.hs
  examples/test3.hs

flag network--GE-3_0_0
  description: [network](http://hackage.haskell.org/package/network) ≥ 3.0.0
  default: True
  manual: False

source-repository head
  type: git
  location: https://github.com/hvr/missingh.git

library
  hs-source-dirs: src
  exposed-modules:
    Control.Concurrent.Thread.Utils
    Data.BinPacking
    Data.Bits.Utils
    Data.CSV
    Data.Compression.Inflate
    Data.Either.Utils
    Data.Hash.CRC32.GZip
    Data.Hash.MD5
    Data.Hash.MD5.Zord64_HARD
    Data.List.Utils
    Data.MIME.Types
    Data.Map.Utils
    Data.Maybe.Utils
    Data.Progress.Meter
    Data.Progress.Tracker
    Data.Quantity
    Data.String.Utils
    Data.Tuple.Utils
    Network.Email.Mailbox
    Network.Email.Sendmail
    Network.SocketServer
    Network.Utils
    System.Cmd.Utils
    System.Console.GetOpt.Utils
    System.Daemon
    System.Debian
    System.Debian.ControlParser
    System.FileArchive.GZip
    System.IO.Binary
    System.IO.HVFS
    System.IO.HVFS.Combinators
    System.IO.HVFS.InstanceHelpers
    System.IO.HVFS.Utils
    System.IO.HVIO
    System.IO.PlafCompat
    System.IO.StatCompat
    System.IO.Utils
    System.IO.WindowsCompat
    System.Path
    System.Path.Glob
    System.Path.NameManip
    System.Path.WildMatch
    System.Posix.Consts
    System.Time.Utils
    Text.ParserCombinators.Parsec.Utils

  default-language: Haskell2010
  default-extensions:
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    MultiParamTypeClasses
    OverlappingInstances
    Rank2Types
    ScopedTypeVariables
    UndecidableInstances
  other-extensions:
    CPP
    Safe
    Trustworthy
    TypeSynonymInstances

  build-depends:
      array               >= 0.4.0.0 && < 0.6
    , base                >= 4.5.0.0 && < 4.17
    , containers          >= 0.4.2.1 && < 0.7
    , directory           >= 1.1.0.2 && < 1.4
    , filepath            >= 1.3.0.0 && < 1.5
    , hslogger            >= 1.3.0.0 && < 1.4
    , mtl                 >= 1.1.1.0 && < 2.3
    , old-locale          == 1.0.*
    , old-time            == 1.1.*
    , parsec              == 3.1.*   && (< 3.1.12 || >= 3.1.13)
    , process             >= 1.1.0.1 && < 1.7
    , regex-compat        >= 0.95.1  && < 0.96
    , time                >= 1.4     && < 1.13

  if flag(network--GE-3_0_0)
    build-depends: network-bsd >= 2.8.1 && <2.9,
                   network >= 3.0 && <3.2
  else
    build-depends: network >= 2.6.3.1 && <2.9

  If !os(windows)
    Build-Depends: unix   >= 2.5.1.0 && < 2.8

  ghc-options: -fno-warn-deprecations

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

test-suite runtests
  type: exitcode-stdio-1.0

  hs-source-dirs: testsrc
  main-is: runtests.hs
  other-modules:
    TestUtils

    Bitstest
    CRC32GZIPtest
    Eithertest
    GZiptest
    Globtest
    HVFStest
    HVIOtest
    IOtest
    Listtest
    MIMETypestest
    Maptest
    Pathtest
    ProgressTrackertest
    Str.CSVtest
    Strtest
    Tests
    Timetest
    WildMatchtest

  default-language: Haskell2010
  other-extensions:
    CPP

  -- intra-package dependency
  build-depends: MissingH

  -- deps with version bounds inherited via lib:MissingH component
  build-depends:
      base
    , containers
    , directory
    , filepath
    , old-time
    , parsec
    , regex-compat
    , time

  if !os(windows)
    build-depends: unix

  -- additional testsuite-specific dependencies
  build-depends:
      HUnit                  == 1.6.*

  if impl(ghc < 7.8)
    -- really, we would like to test for base < 4.7
    build-depends:
      errorcall-eq-instance  == 0.3.*

  ghc-options: -fno-warn-deprecations