emacs-module-0.2.1: emacs-module.cabal
cabal-version: 3.0
name:
emacs-module
version:
0.2.1
category: Foreign, Foreign binding
synopsis:
Utilities to write Emacs dynamic modules
description:
This package provides a full set of bindings to emacs-module.h that
allows to develop Emacs modules in Haskell. Bindings are based on
Emacs 28 version of the interface and thus should work in all
subsequent versions of Emacs, but will now work with earlier versions.
For pointers on how to write minimal Emacs module, please refer to
tutorial https://github.com/sergv/emacs-module/blob/master/Tutorial.md.
Entry point: Emacs.Module module.
license:
Apache-2.0
license-file:
LICENSE
author:
Sergey Vinokurov
maintainer:
Sergey Vinokurov <serg.foo@gmail.com>
tested-with:
, GHC == 9.2.8
, GHC == 9.4.7
, GHC == 9.6.3
, GHC == 9.8.1
extra-source-files:
cbits/emacs-module.h
extra-source-files:
Changelog.md
Readme.md
build-type:
Simple
homepage: https://github.com/sergv/emacs-module
source-repository head
type: git
location: https://github.com/sergv/emacs-module.git
flag call-stacks
description:
Enable call stacks
default:
False
manual:
True
flag assertions
description:
Enable runtime assertions
default:
False
manual:
True
common ghc-options
default-language:
GHC2021
default-extensions:
LambdaCase
ghc-options:
-Weverything
-Wno-all-missed-specialisations
-Wno-implicit-prelude
-Wno-missed-specialisations
-Wno-missing-import-lists
-Wno-missing-local-signatures
-Wno-missing-safe-haskell-mode
-Wno-redundant-constraints
-Wno-safe
-Wno-type-defaults
-Wno-unsafe
if impl(ghc >= 8.8)
ghc-options:
-Wno-missing-deriving-strategies
if impl(ghc >= 9.2)
ghc-options:
-Wno-missing-kind-signatures
if impl(ghc >= 9.8)
ghc-options:
-Wno-missing-role-annotations
-Wno-missing-poly-kind-signatures
library
import: ghc-options
if flag(call-stacks)
cpp-options: -DCALL_STACKS
if flag(assertions)
cpp-options: -DASSERTIONS
exposed-modules:
Data.Emacs.Module.Args
Data.Emacs.Module.Doc
Data.Emacs.Module.Env
Data.Emacs.Module.Env.Functions
Data.Emacs.Module.Env.ProcessInput
Data.Emacs.Module.GetRawValue
Data.Emacs.Module.NonNullPtr
Data.Emacs.Module.Runtime
Data.Emacs.Module.SymbolName
Data.Emacs.Module.SymbolName.Predefined
Data.Emacs.Module.SymbolName.Predefined.Funcall
Data.Emacs.Module.SymbolName.TH
Data.Emacs.Module.Value
Emacs.Module
Emacs.Module.Assert
Emacs.Module.Errors
Emacs.Module.Functions
Emacs.Module.Monad
Emacs.Module.Monad.Class
other-modules:
Data.Emacs.Module.NonNullPtr.Internal
Data.Emacs.Module.Raw.Env
Data.Emacs.Module.Raw.Env.Internal
Data.Emacs.Module.Raw.Env.TH
Data.Emacs.Module.Raw.Value
Data.Emacs.Module.Raw.Value.Internal
Data.Emacs.Module.SymbolName.Internal
Data.Emacs.Module.Value.Internal
Emacs.Module.Monad.Common
Foreign.Ptr.Builder
hs-source-dirs:
src
build-depends:
, base >= 4.16 && < 5
, bytestring
, deepseq
, exceptions
, filepath >= 1.4.100
, monad-control
, monad-interleave >= 0.2
, mtl >= 2.3
, primitive
, prettyprinter >= 1.7
, prettyprinter-combinators
, text >= 2
, template-haskell
, transformers-base
, tuples-homogenous-h98
, vector >= 0.13
, void
includes:
emacs-module.h
install-includes:
emacs-module.h
include-dirs:
cbits
build-tool-depends:
hsc2hs:hsc2hs