packages feed

duckdb-ffi-0.1.4.1: duckdb-ffi.cabal

cabal-version:      3.4
name:               duckdb-ffi
version:            0.1.4.1
author:             Matthias Pall Gissurarson
maintainer:         mpg@mpg.is
category:           Database
build-type:         Custom
license:            MPL-2.0
license-file:       LICENSE
synopsis:           Haskell FFI bindings for DuckDB
homepage:       https://github.com/Tritlo/duckdb-haskell
bug-reports:    https://github.com/Tritlo/duckdb-haskell/issues
description:
    This library provides low-level FFI bindings to DuckDB.
    Tested with DuckDB version 1.4.0, and 1.4.0.
    Exposes the full DuckDB C API.
    Note: requires libduckdb and duckdb.h to be installed on the system.
extra-doc-files:    CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/Tritlo/duckdb-haskell.git
  subdir:  duckdb-ffi


custom-setup
  setup-depends: base >=4.18 && <4.21,
                 Cabal >=3.4 && <3.16,
                 directory >= 1.3 && <1.4,
                 filepath >= 1.4 && <1.5,
                 process >= 1.6 && <1.7,

library
  default-language:
    Haskell2010
  default-extensions:
        AllowAmbiguousTypes
      , DataKinds
      , GADTs
      , GeneralizedNewtypeDeriving
      , ImportQualifiedPost
      , LambdaCase
      , MultiParamTypeClasses
      , OverloadedStrings
      , RankNTypes
      , TypeApplications
      , ScopedTypeVariables
  hs-source-dirs:
    src
  exposed-modules:
    Database.DuckDB.FFI
  other-modules:
    Database.DuckDB.FFI.AggregateFunctions
    Database.DuckDB.FFI.Appender
    Database.DuckDB.FFI.Arrow
    Database.DuckDB.FFI.BindValues
    Database.DuckDB.FFI.CastFunctions
    Database.DuckDB.FFI.Configuration
    Database.DuckDB.FFI.DataChunk
    Database.DuckDB.FFI.ErrorData
    Database.DuckDB.FFI.ExecutePrepared
    Database.DuckDB.FFI.Expression
    Database.DuckDB.FFI.ExtractStatements
    Database.DuckDB.FFI.Helpers
    Database.DuckDB.FFI.LogicalTypes
    Database.DuckDB.FFI.OpenConnect
    Database.DuckDB.FFI.PendingResult
    Database.DuckDB.FFI.PreparedStatements
    Database.DuckDB.FFI.ProfilingInfo
    Database.DuckDB.FFI.QueryExecution
    Database.DuckDB.FFI.ReplacementScans
    Database.DuckDB.FFI.ResultFunctions
    Database.DuckDB.FFI.SafeFetch
    Database.DuckDB.FFI.ScalarFunctions
    Database.DuckDB.FFI.SelectionVector
    Database.DuckDB.FFI.StreamingResult
    Database.DuckDB.FFI.TableDescription
    Database.DuckDB.FFI.TableFunctions
    Database.DuckDB.FFI.Threading
    Database.DuckDB.FFI.Types
    Database.DuckDB.FFI.Validity
    Database.DuckDB.FFI.ValueInterface
    Database.DuckDB.FFI.Vector
  include-dirs: cbits/
  install-includes: duckdb.h
  extra-libraries: duckdb

  c-sources: cbits/duckdb_stub.c
  build-depends:
      base >=4.18 && <4.19
    , bytestring >= 0.11 && <0.12
    , containers >= 0.6 && <0.7
    , exceptions >= 0.10 && <0.11
    , mtl >= 2.3 && <2.4
    , text >= 2.0 && <2.1
    , transformers >= 0.6 && <0.7
    , time >= 1.12 && <1.13
  if os(linux)
    ghc-options:    -optl-Wl,-rpath,'$ORIGIN/../cbits/duckdb'
    ld-options:       -Wl,-rpath,'$ORIGIN/../cbits/duckdb'

test-suite duckdb-ffi-tests
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Main.hs
  other-modules:
    ConfigurationTest
    ErrorDataTest
    OpenConnectTest
    PreparedStatementsTest
    BindValuesTest
    ExecutePreparedStatementsTest
    ExtractStatementsTest
    LogicalTypesTest
    DataChunkTest
    VectorTest
    ValidityMaskTest
    ScalarFunctionsTest
    TableFunctionsTest
    SelectionVectorTest
    AggregateFunctionsTest
    PendingResultTest
    ValueInterfaceTest
    QueryExecutionTest
    ResultFunctionsTest
    SafeFetchTest
    HelpersTest
    TableDescriptionTest
    AppenderTest
    ProfilingInfoTest
    CastFunctionsTest
    ExpressionTest
    ReplacementScansTest
    ArrowInterfaceDeprecatedTests
    ArrowInterfaceTest
    StreamingResultTest
    ThreadingTest
    Utils
  ghc-options:        -threaded
  default-language:    Haskell2010
  build-depends:
      base >=4.18 && <4.19
    , duckdb-ffi
    , tasty >=1.5 && <1.6
    , tasty-hunit >=0.10 && <0.11
    , tasty-expected-failure >= 0.12 && < 0.13
    , text >= 2.0 && <2.1
    , time >= 1.12 && <1.13