cabal-version:       >=1.10
name:                construct
version:             0.1
synopsis:            Haskell version of the Construct library for easy specification of file formats
description:
   A Haskell version of the <https://construct.readthedocs.io/en/latest/intro.html Construct> library for Python. A
   succinct file format specification provides both a parser and the serializer for the format.
bug-reports:         https://github.com/blamario/construct/issues
license:             BSD3
license-file:        LICENSE
author:              Mario Blažević
maintainer:          Mario Blažević <blamario@protonmail.com>
copyright:           Mario Blažević 2020
category:            Data, Parsing, Serialization
build-type:          Custom
extra-source-files:  CHANGELOG.md, README.md, test/README.lhs
data-dir:            test/examples/
data-files:          wmf1.wmf
custom-setup
 setup-depends:
   base >= 4 && <5,
   Cabal,
   cabal-doctest >= 1 && <1.1
 

library
  -- other-extensions:
  hs-source-dirs:      src
  exposed-modules:     Construct, Construct.Bits, Construct.Classes
  other-modules:       Construct.Internal
  build-depends:       base >=4.11 && <4.13,
                       bytestring >= 0.10 && < 0.11,
                       text >= 0.10 && < 1.3,
                       monoid-subclasses >= 1.0 && < 1.1,
                       incremental-parser >= 0.4 && < 0.5,
                       parsers >= 0.11 && < 0.13,
                       attoparsec >= 0.12 && < 0.14,
                       cereal >= 0.5 && < 0.6,
                       rank2classes >= 1 && < 1.4
  default-language:    Haskell2010
  ghc-options:         -Wall

test-suite             doctests
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  default-language:    Haskell2010
  main-is:             Doctest.hs
  other-modules:       README
  ghc-options:         -threaded -pgmL markdown-unlit
  build-depends:       base, construct,
                       bytestring >= 0.10 && < 0.11, incremental-parser >= 0.4 && < 0.5, rank2classes >= 1.0.2 && < 1.4,
                       doctest >= 0.8
  build-tool-depends:  markdown-unlit:markdown-unlit >= 0.5 && < 0.6
  x-doctest-options:   -XTypeApplications

test-suite             examples
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  x-uses-tf:           true
  build-depends:       base >=4.9 && < 5, construct,
                       bytestring < 0.11, text < 1.3, cereal, rank2classes >= 1.0.2 && < 1.4,
                       monoid-subclasses >= 1.0 && < 1.1, incremental-parser < 0.5, attoparsec >= 0.12 && < 0.14,
                       directory < 2, filepath < 1.5,
                       tasty >= 0.7, tasty-hunit
  main-is:             Test.hs
  other-modules:       MBR, TAR, URI, WMF
  default-language:    Haskell2010