packages feed

hslua-classes-2.3.2: hslua-classes.cabal

cabal-version:       2.2
name:                hslua-classes
version:             2.3.2
synopsis:            Type classes for HsLua
description:         Type classes for convenient marshalling and calling of
                     Lua functions.
homepage:            https://hslua.org/
bug-reports:         https://github.com/hslua/hslua/issues
license:             MIT
license-file:        LICENSE
author:              Albert Krewinkel, Gracjan Polak, Ömer Sinan Ağacan
maintainer:          tarleb@hslua.org
copyright:           © 2007–2012 Gracjan Polak;
                     © 2012–2016 Ömer Sinan Ağacan;
                     © 2017-2026 Albert Krewinkel
category:            Foreign
build-type:          Simple
extra-source-files:  README.md
                   , CHANGELOG.md
tested-with:         GHC == 9.6
                   , GHC == 9.8
                   , GHC == 9.10
                   , GHC == 9.12

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

common common-options
  default-language:    Haskell2010
  build-depends:       base              >= 4.11   && < 5
                     , bytestring        >= 0.10.2 && < 0.13
                     , containers        >= 0.5.9  && < 0.9
                     , hslua-core        >= 2.1    && < 2.4
                     , text              >= 1.2    && < 2.2
  ghc-options:         -Wall
                       -Wcpp-undef
                       -Werror=missing-home-modules
                       -Widentities
                       -Wincomplete-record-updates
                       -Wincomplete-uni-patterns
                       -Wnoncanonical-monad-instances
                       -Wpartial-fields
                       -Wredundant-constraints
                       -fhide-source-paths
  if impl(ghc >= 8.10)
    ghc-options:         -Wunused-packages
  if impl(ghc >= 9.0)
    ghc-options:         -Winvalid-haddock

library
  import:              common-options
  exposed-modules:     HsLua.Classes
                     , HsLua.Class.Exposable
                     , HsLua.Class.Invokable
                     , HsLua.Class.Peekable
                     , HsLua.Class.Pushable
                     , HsLua.Class.Util
  hs-source-dirs:      src
  build-depends:       hslua-marshalling >= 2.1    && < 2.4
  default-extensions:  LambdaCase
  other-extensions:    AllowAmbiguousTypes
                     , CPP
                     , FlexibleInstances
                     , MultiParamTypeClasses
                     , OverloadedStrings
                     , ScopedTypeVariables
                     , TypeApplications

test-suite test-hslua-classes
  import:              common-options
  type:                exitcode-stdio-1.0
  main-is:             test-hslua-classes.hs
  hs-source-dirs:      test
  ghc-options:         -threaded -Wno-unused-do-bind
  other-modules:       HsLua.ClassesTests
                     , HsLua.Class.ExposableTests
                     , HsLua.Class.InvokableTests
                     , HsLua.Class.PeekableTests
                     , HsLua.Class.PushableTests
                     , HsLua.Class.UtilTests
  build-depends:       hslua-classes
                     , lua-arbitrary        >= 1.0
                     , QuickCheck           >= 2.7
                     , quickcheck-instances >= 0.3
                     , tasty                >= 0.11
                     , tasty-hslua          >= 1.0
                     , tasty-hunit          >= 0.9
                     , tasty-quickcheck     >= 0.8
  other-extensions:    OverloadedStrings
                     , TypeApplications