packages feed

direct-sqlite-2.3.24: direct-sqlite.cabal

name:               direct-sqlite
version:            2.3.24
synopsis:           Low-level binding to SQLite3.  Includes UTF8 and BLOB support.
description:        This package is not very different from the other SQLite3 bindings out
                    there, but it fixes a few deficiencies I was finding.  As compared to
                    bindings-sqlite3, it is slightly higher-level, in that it supports
                    marshalling of data values to and from the database.  In particular,
                    it supports strings encoded as UTF8, and BLOBs represented as
                    ByteStrings.
license:            BSD3
license-file:       LICENSE
copyright:          Copyright (c) 2012 - 2014 Irene Knapp,
                                  2014 - 2018 Janne Hellsten,
                                  2018 - 2019 Sergey Bushnyak
author:             Irene Knapp <irene.knapp@icloud.com>
maintainer:         Sergey Bushnyak <sergey.bushnyak@sigrlami.eu>
category:           Database
homepage:           https://github.com/IreneKnapp/direct-sqlite
bug-reports:        https://github.com/IreneKnapp/direct-sqlite/issues/new
build-type:         Simple
extra-source-files: cbits/sqlite3.c
                    cbits/sqlite3.h
                    cbits/sqlite3ext.h
                    changelog
cabal-version:      >= 1.10

source-repository head
  type:     git
  location: git://github.com/IreneKnapp/direct-sqlite.git

flag systemlib
  default:     False
  description: Use the system-wide sqlite library

flag fulltextsearch
  default:     True
  description: Enable full-text search when using the bundled sqlite library

flag urifilenames
  default:     True
  description: Enable URI filenames when using the bundled sqlite library

flag haveusleep
  default:     True
  description: Enable use of os function usleep.

flag json1
  default:     True
  description: Enable json1 extension.

library
  exposed-modules:  Database.SQLite3
                    Database.SQLite3.Bindings
                    Database.SQLite3.Bindings.Types
                    Database.SQLite3.Direct
  build-depends:    base       >= 4.1 && < 5
                  , bytestring >= 0.9.2.1
                  , semigroups >= 0.18 && < 0.19
                  , text       >= 0.11
  default-language: Haskell2010
  include-dirs:     .
  ghc-options:      -Wall -fwarn-tabs

  if flag(systemlib)
    extra-libraries: sqlite3
    cpp-options:     -Ddirect_sqlite_systemlib
  else
    c-sources:        cbits/sqlite3.c
    install-includes: sqlite3.h, sqlite3ext.h
    include-dirs:     cbits

    if !os(windows) && !os(android)
      extra-libraries: pthread

    if flag(fulltextsearch)
      cc-options: -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS
                  -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5

    if flag(urifilenames)
      cc-options: -DSQLITE_USE_URI

    if flag(haveusleep)
      cc-options: -DHAVE_USLEEP

    if flag(json1)
      cc-options: -DSQLITE_ENABLE_JSON1

test-suite test
  type:               exitcode-stdio-1.0
  main-is:            Main.hs
  other-modules:      StrictEq
  hs-source-dirs:     test
  build-depends:      base
                    , HUnit
                    , base16-bytestring
                    , bytestring
                    , direct-sqlite
                    , directory
                    , temporary
                    , text
  default-language:   Haskell2010
  default-extensions: Rank2Types
                      ScopedTypeVariables
                      NamedFieldPuns
                      RecordWildCards
                      OverloadedStrings
                      DeriveDataTypeable
  ghc-options:        -Wall -threaded -fno-warn-name-shadowing -fno-warn-unused-do-bind