packages feed

hs-bindgen-runtime-1.0.0.0: hs-bindgen-runtime.cabal

cabal-version:   3.0
name:            hs-bindgen-runtime
version:         1.0.0.0
synopsis:        Runtime support for code generated by hs-bindgen
license:         BSD-3-Clause
license-file:    LICENSE
author:          Well-Typed LLP
maintainer:      info@well-typed.com
category:        Development
build-type:      Simple
tested-with:
  GHC ==9.4.8
   || ==9.6.7
   || ==9.8.4
   || ==9.10.3
   || ==9.12.2
   || ==9.14.1

description:
  This library provides abstractions used by the code generated by @hs-bindgen@.
  In most cases it is also necessary for /interacting/ with that code. To do so,
  you will probably want to start by importing the prelude

  > HsBindgen.Runtime.Prelude

  and then import other modules as needed; with the exception of the prelude,
  all other modules are intended for qualified import.

extra-doc-files:
  CHANGELOG.md
  README.md

source-repository head
  type:     git
  location: https://github.com/well-typed/hs-bindgen
  subdir:   hs-bindgen-runtime

source-repository this
  type:     git
  location: https://github.com/well-typed/hs-bindgen
  subdir:   hs-bindgen-runtime
  tag:      release-1.0.0.0

common lang
  ghc-options:
    -Wall -Wcompat -Wincomplete-uni-patterns
    -Wincomplete-record-updates -Wpartial-fields -Widentities
    -Wredundant-constraints -Wmissing-export-lists
    -Wno-unticked-promoted-constructors -Wunused-packages
    -Wprepositive-qualified-module

  ghc-options:        -Werror=missing-deriving-strategies
  build-depends:      base >=4.17 && <4.23
  default-language:   GHC2021
  default-extensions:
    DataKinds
    DefaultSignatures
    DeriveAnyClass
    DerivingStrategies
    DerivingVia
    FunctionalDependencies
    LambdaCase
    PatternSynonyms
    RecordWildCards
    RoleAnnotations
    ScopedTypeVariables
    TypeFamilies
    UndecidableInstances
    ViewPatterns

  other-extensions:
    CPP
    MagicHash
    NoImplicitPrelude
    TemplateHaskell
    UnboxedTuples

library
  import:             lang
  exposed-modules:
    HsBindgen.Runtime.BitfieldPtr
    HsBindgen.Runtime.Block
    HsBindgen.Runtime.CBool
    HsBindgen.Runtime.CEnum
    HsBindgen.Runtime.ConstantArray
    HsBindgen.Runtime.FLAM
    HsBindgen.Runtime.HasCBitfield
    HsBindgen.Runtime.HasCField
    HsBindgen.Runtime.HasFFIType
    HsBindgen.Runtime.IncompleteArray
    HsBindgen.Runtime.IsArray
    HsBindgen.Runtime.LibC
    HsBindgen.Runtime.Macro
    HsBindgen.Runtime.Marshal
    HsBindgen.Runtime.Overloading
    HsBindgen.Runtime.Prelude
    HsBindgen.Runtime.PtrConst
    HsBindgen.Runtime.Struct
    HsBindgen.Runtime.Support
    HsBindgen.Runtime.Support.Bitfield
    HsBindgen.Runtime.Support.ByteArray
    HsBindgen.Runtime.Support.CAPI
    HsBindgen.Runtime.Support.CompatHasField
    HsBindgen.Runtime.Support.FunPtr
    HsBindgen.Runtime.Support.LibC.Auxiliary
    HsBindgen.Runtime.Support.Ptr
    HsBindgen.Runtime.Support.SizedByteArray
    HsBindgen.Runtime.Union

  other-modules:
    HsBindgen.Runtime.Support.FunPtr.Class
    HsBindgen.Runtime.Support.TH.Instances
    HsBindgen.Runtime.Support.TH.Types

  hs-source-dirs:     src

  -- Internal dependencies
  build-depends:

  -- External dependencies
  build-depends:
    , bytestring        >=0.11 && <0.13
    , containers        >=0.6  && <0.9
    , primitive         >=0.9  && <0.10
    , record-hasfield   >=1.0  && <2
    , template-haskell  >=2.19 && <2.25
    , vector            >=0.13 && <0.14

  build-tool-depends: hsc2hs:hsc2hs

test-suite test-hs-bindgen-runtime
  import:         lang
  hs-source-dirs: test
  type:           exitcode-stdio-1.0
  main-is:        test-runtime.hs
  other-modules:
    Test.HsBindgen.Runtime.Bitfield
    Test.HsBindgen.Runtime.CBool
    Test.HsBindgen.Runtime.CEnum
    Test.HsBindgen.Runtime.CEnumArbitrary
    Test.HsBindgen.Runtime.ConstantArray
    Test.HsBindgen.Runtime.IncompleteArray
    Test.HsBindgen.Runtime.Macro
    Test.HsBindgen.Runtime.SizedByteArray
    Test.HsBindgen.Runtime.Support.ByteArray
    Test.Util.Orphans
    Test.Util.QC
    Test.Util.Show
    Test.Util.Tasty

  -- Internal dependencies
  build-depends:  hs-bindgen-runtime

  -- External dependencies
  build-depends:
    , primitive               >=0.8    && <0.10
    , QuickCheck              >=2.14.3 && <2.18
    , tasty                   >=1.5    && <1.6
    , tasty-expected-failure  >=0.12.3 && <1.13
    , tasty-hunit             >=0.10.2 && <0.11
    , tasty-quickcheck        >=0.11   && <0.12
    , transformers            >=0.5    && <0.7