cabal-version:       2.2
name:                lzma
version:             0.0.0.3
x-revision:          5

synopsis:            LZMA/XZ compression and decompression
homepage:            https://github.com/hvr/lzma
bug-reports:         https://github.com/hvr/lzma/issues
license:             BSD-3-Clause
license-file:        LICENSE
author:              Herbert Valerio Riedel
maintainer:          hvr@gnu.org
copyright:           (c) 2015, Herbert Valerio Riedel
stability:           experimental
category:            Codec, Compression
build-type:          Simple
tested-with:         GHC ==7.4.2, GHC ==7.6.3, GHC ==7.8.4, GHC ==7.10.3, GHC ==8.0.1, GHC ==8.0.2, GHC ==8.2.2, GHC ==8.4.4, GHC==8.6.5, GHC==8.8.3, GHC==8.10.1
description:
    This package provides a pure interface for compressing and
    decompressing
    <https://en.wikipedia.org/wiki/LZMA LZMA (Lempel–Ziv–Markov chain algorithm)>
    streams of data represented as lazy @ByteString@s. A
    monadic incremental interface is provided as well. This package
    relies on the <http://tukaani.org/xz/ liblzma C library>.
    .
    The following packages are based on this package and provide
    API support for popular streaming frameworks:
    .
      * </package/lzma-streams lzma-streams> (for </package/io-streams io-streams>)
    .
      * </package/pipes-lzma pipes-lzma> (for </package/pipes pipes>)
    .
      * </package/lzma-conduit lzma-conduit> (for </package/conduit conduit>)
    .

extra-source-files:
  Changelog.md

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

flag static
  default:     False
  manual:      True
  description: Use the bundled sources (this is default for windows and darwin)

library
  default-language:    Haskell2010
  other-extensions:    BangPatterns, RecordWildCards, DeriveDataTypeable
  hs-source-dirs:      src

  exposed-modules:     Codec.Compression.Lzma
  other-modules:       LibLzma

  build-depends:       base       >=4.5    && <4.15
                     , bytestring >=0.9.2  && <0.11

  if flag(static)
    build-depends:     lzma-clib >= 5.2.2.1
  else
    if os(windows)
      build-depends:     lzma-clib
    elif os(darwin)
      build-depends:     lzma-clib >= 5.2.2.1
    else
      includes:          lzma.h
      extra-libraries:   lzma

  c-sources:           cbits/lzma_wrapper.c

  ghc-options:         -Wall


test-suite lzma-tests
  default-language:    Haskell2010
  other-extensions:    OverloadedStrings
  hs-source-dirs:      src-tests
  type:                exitcode-stdio-1.0
  main-is:             lzma-tests.hs

  -- dependencies with version bounds inherited from the library stanza
  build-depends:       lzma
                     , base
                     , bytestring
  -- additional dependencies that require version bounds
  build-depends:       HUnit                      >= 1.2      && <1.7
                     , QuickCheck                 >= 2.8      && <2.14
                     , tasty                      >= 0.10     && <1.4
                     , tasty-hunit                >= 0.9      && <0.11
                     , tasty-quickcheck           >= 0.8.3.2  && <0.11

  ghc-options:         -Wall -threaded
