cabal-version:       2.2
name:                hslua-aeson
version:             2.3.0
synopsis:            Allow aeson data types to be used with Lua.
description:         This package provides instances to push and receive any
                     datatype encodable as JSON to and from the Lua stack.
homepage:            https://hslua.org/
license:             MIT
license-file:        LICENSE
author:              Albert Krewinkel
maintainer:          Albert Krewinkel <albert+hslua@zeitkraut.de>
copyright:           © 2017–2023 Albert Krewinkel
category:            Foreign
extra-source-files:  README.md
                   , CHANGELOG.md
tested-with:         GHC == 8.4.4
                   , GHC == 8.6.5
                   , GHC == 8.8.4
                   , GHC == 8.10.7
                   , GHC == 9.0.2
                   , GHC == 9.2.5
                   , GHC == 9.4.4

source-repository head
  type:                git
  location:            https://github.com/hslua/hslua
  subdir:              hslua-aeson

common common-options
  default-language:    Haskell2010
  build-depends:       base                 >= 4.8    && < 5
                     , aeson                >= 1.5    && < 2.2
                     , bytestring           >= 0.10.2 && < 0.12
                     , containers           >= 0.5.9  && < 0.7
                     , hashable             >= 1.2    && < 1.5
                     , hslua-core           >= 2.0    && < 2.4
                     , hslua-marshalling    >= 2.1    && < 2.3
                     , mtl                  >= 2.2    && < 2.4
                     , scientific           >= 0.3    && < 0.4
                     , unordered-containers >= 0.2    && < 0.3
                     , text                 >= 1.2    && < 2.1
                     , vector               >= 0.7
  default-extensions:  BangPatterns
                     , CPP
                     , LambdaCase
                     , OverloadedStrings
                     , TypeApplications
  ghc-options:         -Wall
                       -Wincomplete-record-updates
                       -Wnoncanonical-monad-instances
                       -Wredundant-constraints
  if impl(ghc >= 8.2)
    ghc-options:         -Wcpp-undef
                         -Werror=missing-home-modules
  if impl(ghc >= 8.4)
    ghc-options:         -Widentities
                         -Wincomplete-uni-patterns
                         -Wpartial-fields
                         -fhide-source-paths

library
  import:              common-options
  exposed-modules:     HsLua.Aeson
  hs-source-dirs:      src
  build-depends:       base                 >= 4.7    && < 5
  default-language:    Haskell2010

test-suite test-hslua-aeson
  import:              common-options
  type:                exitcode-stdio-1.0
  main-is:             test-hslua-aeson.hs
  hs-source-dirs:      test
  build-depends:       hslua-aeson
                     , QuickCheck
                     , quickcheck-instances
                     , tasty                >= 0.11
                     , tasty-quickcheck     >= 0.8
                     , tasty-hunit          >= 0.10
  ghc-options:         -threaded
  default-language:    Haskell2010
