lua-2.0.1: lua.cabal
cabal-version: 2.2
name: lua
version: 2.0.1
synopsis: Lua, an embeddable scripting language
description: This package provides bindings and types to bridge
Haskell and <https://www.lua.org/ Lua>.
.
The full Lua interpreter version 5.3.6 is included.
Alternatively, a system-wide Lua installation can be
linked instead.
homepage: https://hslua.org/
bug-reports: https://github.com/hslua/hslua/issues
license: MIT
license-file: LICENSE
author: Albert Krewinkel
maintainer: Albert Krewinkel <albert+hslua@zeitkraut.de>
copyright: © 2007–2012 Gracjan Polak;
© 2012–2016 Ömer Sinan Ağacan;
© 2017-2021 Albert Krewinkel
category: Foreign
build-type: Simple
extra-source-files: cbits/lua-5.3.6/*.h
, cbits/hslua/*.h
, 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.4
, GHC == 9.0.1
source-repository head
type: git
location: https://github.com/hslua/hslua.git
subdir: lua
flag system-lua
default: False
manual: True
description: Use the system-wide Lua instead of the bundled copy.
flag apicheck
default: False
manual: True
description: Compile Lua with -DLUA_USE_APICHECK.
flag lua_32bits
default: False
manual: True
description: Compile Lua with -DLUA_32BITS
flag allow-unsafe-gc
default: True
manual: True
description: Allow optimizations which make Lua's garbage collection
potentially unsafe; enabling this should be safe if
there are no callbacks into Haskell during Lua garbage
collection cycles. The flag should be *disabled* if Lua
objects can have Haskell finalizers, i.e., @__gc@
metamethods that call Haskell function.
flag export-dynamic
default: True
manual: True
description: Add all symbols to dynamic symbol table; disabling this
will make it possible to create fully static binaries,
but renders loading of dynamic C libraries impossible.
flag pkg-config
default: False
manual: True
description: Use @pkg-config@ to discover library and include paths.
Setting this flag implies `system-lua`.
flag hardcode-reg-keys
default: True
manual: True
description: Don't use CAPI to determine the names of certain
registry key names but use hard coded values instead.
This flag is required when compiling against Lua 5.3.3
or earlier, as those versions do not expose the
necessary information in the @lauxlib.h@ header file.
Setting this flag should usually be unproblematic,
except if the used Lua version has been patched
heavily.
common common-options
default-language: Haskell2010
build-depends: base >= 4.8 && < 5
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
if flag(lua_32bits)
cc-options: -DLUA_32BITS
if flag(apicheck)
cc-options: -DLUA_USE_APICHECK
if flag(allow-unsafe-gc)
cpp-options: -DALLOW_UNSAFE_GC
if flag(hardcode-reg-keys)
cpp-options: -DHARDCODE_REG_KEYS
library
import: common-options
exposed-modules: Lua
, Lua.Auxiliary
, Lua.Call
, Lua.Constants
, Lua.Ersatz
, Lua.Ersatz.Auxiliary
, Lua.Ersatz.Functions
, Lua.Lib
, Lua.Primary
, Lua.Types
, Lua.Userdata
hs-source-dirs: src
default-extensions: CApiFFI
, ForeignFunctionInterface
, LambdaCase
other-extensions: CPP
, DeriveGeneric
, GeneralizedNewtypeDeriving
, PatternSynonyms
c-sources: cbits/hslua/hsludata.c
, cbits/hslua/hslcall.c
, cbits/hslua/hslauxlib.c
, cbits/hslua/hslua.c
include-dirs: cbits/hslua
includes: lua.h
, luaconf.h
, lauxlib.h
if flag(system-lua) || flag(pkg-config)
if flag(pkg-config)
pkgconfig-depends: lua5.3
else
extra-libraries: lua
else
include-dirs: cbits/lua-5.3.6
install-includes: lua.h
, luaconf.h
, lauxlib.h
c-sources: cbits/lua-5.3.6/lapi.c
, cbits/lua-5.3.6/lcode.c
, cbits/lua-5.3.6/lctype.c
, cbits/lua-5.3.6/ldebug.c
, cbits/lua-5.3.6/ldo.c
, cbits/lua-5.3.6/ldump.c
, cbits/lua-5.3.6/lfunc.c
, cbits/lua-5.3.6/lgc.c
, cbits/lua-5.3.6/llex.c
, cbits/lua-5.3.6/lmem.c
, cbits/lua-5.3.6/lobject.c
, cbits/lua-5.3.6/lopcodes.c
, cbits/lua-5.3.6/lparser.c
, cbits/lua-5.3.6/lstate.c
, cbits/lua-5.3.6/lstring.c
, cbits/lua-5.3.6/ltable.c
, cbits/lua-5.3.6/ltm.c
, cbits/lua-5.3.6/lundump.c
, cbits/lua-5.3.6/lvm.c
, cbits/lua-5.3.6/lzio.c
, cbits/lua-5.3.6/lauxlib.c
, cbits/lua-5.3.6/lbaselib.c
, cbits/lua-5.3.6/lbitlib.c
, cbits/lua-5.3.6/lcorolib.c
, cbits/lua-5.3.6/ldblib.c
, cbits/lua-5.3.6/liolib.c
, cbits/lua-5.3.6/lmathlib.c
, cbits/lua-5.3.6/lstrlib.c
, cbits/lua-5.3.6/loslib.c
, cbits/lua-5.3.6/ltablib.c
, cbits/lua-5.3.6/lutf8lib.c
, cbits/lua-5.3.6/loadlib.c
, cbits/lua-5.3.6/linit.c
if os(linux)
cc-options: -DLUA_USE_LINUX
if flag(export-dynamic)
ld-options: -Wl,-E
if os(darwin)
cc-options: -DLUA_USE_MACOSX
if os(freebsd)
cc-options: -DLUA_USE_POSIX
if flag(export-dynamic)
ld-options: -Wl,-E
test-suite test-lua
import: common-options
type: exitcode-stdio-1.0
main-is: test-lua.hs
hs-source-dirs: test
other-modules: Lua.UnsafeTests
build-depends: lua
, tasty >= 0.11
, tasty-hunit >= 0.9