cabal-version:       2.2
name:                hslua-core
version:             2.1.0
synopsis:            Bindings to Lua, an embeddable scripting language
description:         Wrappers and helpers to bridge Haskell and
                     <https://www.lua.org/ Lua>.
                     .
                     It builds upon the /lua/ package, which allows to bundle
                     a Lua interpreter with a Haskell program.
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:          albert+hslua@zeitkraut.de
copyright:           © 2007–2012 Gracjan Polak;
                     © 2012–2016 Ömer Sinan Ağacan;
                     © 2017-2022 Albert Krewinkel
category:            Foreign
build-type:          Simple
extra-source-files:  README.md
                   , CHANGELOG.md
                   , test/lua/*.lua
tested-with:         GHC == 8.0.2
                   , GHC == 8.2.2
                   , GHC == 8.4.4
                   , GHC == 8.6.5
                   , GHC == 8.8.4
                   , GHC == 8.10.7
                   , GHC == 9.0.1
                   , GHC == 9.2.1

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

common common-options
  default-language:    Haskell2010
  build-depends:       base          >= 4.8    && < 5
                     , bytestring    >= 0.10.2 && < 0.12
                     , exceptions    >= 0.8    && < 0.11
                     , lua           >= 2.1    && < 2.2
                     , mtl           >= 2.2    && < 2.3
                     , text          >= 1.2    && < 2.1
  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.Core
                     , HsLua.Core.Closures
                     , HsLua.Core.Error
                     , HsLua.Core.Package
                     , HsLua.Core.Run
                     , HsLua.Core.Trace
                     , HsLua.Core.Types
                     , HsLua.Core.Unsafe
                     , HsLua.Core.Userdata
                     , HsLua.Core.Utf8
  other-modules:       HsLua.Core.Auxiliary
                     , HsLua.Core.Primary
  reexported-modules:  lua:Lua
  hs-source-dirs:      src
  default-extensions:  LambdaCase
                     , StrictData
  other-extensions:    CPP
                     , DeriveDataTypeable
                     , GeneralizedNewtypeDeriving
                     , OverloadedStrings
                     , ScopedTypeVariables
                     , TypeApplications

test-suite test-hslua-core
  import:              common-options
  type:                exitcode-stdio-1.0
  main-is:             test-hslua-core.hs
  hs-source-dirs:      test
  ghc-options:         -threaded -Wno-unused-do-bind
  other-modules:       HsLua.CoreTests
                     , HsLua.Core.AuxiliaryTests
                     , HsLua.Core.ClosuresTests
                     , HsLua.Core.ErrorTests
                     , HsLua.Core.PackageTests
                     , HsLua.Core.PrimaryTests
                     , HsLua.Core.RunTests
                     , HsLua.Core.TraceTests
                     , HsLua.Core.UnsafeTests
                     , HsLua.Core.UserdataTests
                     , Test.Tasty.HsLua
                     , Test.HsLua.Arbitrary
  build-depends:       hslua-core
                     , lua-arbitrary        >= 1.0
                     , QuickCheck           >= 2.7
                     , quickcheck-instances >= 0.3
                     , tasty                >= 0.11
                     , tasty-hunit          >= 0.9
                     , tasty-quickcheck     >= 0.8
