cabal-version:       2.2
name:                hslua-packaging
version:             2.1.0
synopsis:            Utilities to build Lua modules.
description:         Utilities to package up Haskell functions and
                     values into a Lua module.
                     .
                     This package is part of HsLua, a Haskell framework
                     built around the embeddable scripting language
                     <https://lua.org Lua>.
homepage:            https://hslua.org/
bug-reports:         https://github.com/hslua/hslua/issues
license:             MIT
license-file:        LICENSE
author:              Albert Krewinkel
maintainer:          albert+hslua@zeitkraut.de
copyright:           © 2019-2022 Albert Krewinkel
category:            Foreign
extra-source-files:  README.md
                   , CHANGELOG.md
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.3
                   , GHC == 9.0.1
                   , GHC == 9.2.1

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

common common-options
  default-language:    Haskell2010
  build-depends:       base                    >= 4.8    && < 5
                     , hslua-core              >= 2.1    && < 2.2
                     , hslua-marshalling       >= 2.1    && < 2.2
                     , hslua-objectorientation >= 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.Packaging
                     , HsLua.Packaging.Convenience
                     , HsLua.Packaging.Documentation
                     , HsLua.Packaging.Function
                     , HsLua.Packaging.Module
                     , HsLua.Packaging.Rendering
                     , HsLua.Packaging.Types
                     , HsLua.Packaging.UDType
  hs-source-dirs:      src
  default-extensions:  LambdaCase
                     , StrictData
  other-extensions:    DeriveFunctor
                     , OverloadedStrings
  build-depends:       containers              >= 0.5.9    && < 0.7

test-suite test-hslua-packaging
  import:              common-options
  type:                exitcode-stdio-1.0
  main-is:             test-hslua-packaging.hs
  hs-source-dirs:      test
  ghc-options:         -threaded
  other-modules:       HsLua.PackagingTests
                     , HsLua.Packaging.DocumentationTests
                     , HsLua.Packaging.FunctionTests
                     , HsLua.Packaging.ModuleTests
                     , HsLua.Packaging.RenderingTests
                     , HsLua.Packaging.UDTypeTests
  build-depends:       hslua-packaging
                     , bytestring
                     , tasty-hslua
                     , tasty                   >= 0.11
                     , tasty-hunit             >= 0.9
  other-extensions:    OverloadedStrings
                     , TypeApplications
