packages feed

direct-sqlite-2.3.12: direct-sqlite.cabal

name: direct-sqlite
version: 2.3.12
build-type: Simple
license: BSD3
license-file: LICENSE
copyright: Copyright (c) 2012, 2013 Irene Knapp
author: Irene Knapp <irene.knapp@icloud.com>
maintainer: irene.knapp@icloud.com
homepage: http://ireneknapp.com/software/
bug-reports: https://github.com/IreneKnapp/direct-sqlite/issues/new
category: Database
synopsis: Low-level binding to SQLite3.  Includes UTF8 and BLOB support.
Cabal-version: >= 1.10
Build-type: Simple
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.
  .
  Release history:
  .
  [Version 2.3.12] Upgrade bundled SQLite3 to 3.8.4.1.
  .
  [Version 2.3.11] Add support for URI filenames, and default to having them on. Among other things, this enables using in-memory databases.
  .
  [Version 2.3.10] Add support for compiling the bundled SQLite3 with URI filename support. Specifying flags that would have affected the bundled SQLite3 no longer causes build failure if the "systemlib" flag is specified.
  .
  [Version 2.3.9] Update bounds on the requirement on the "text" library.
  .
  [Version 2.3.8] Upgrade bundled SQLite3 to 3.8.1.
  .
  [Version 2.3.7] Fix a test failure related to 64-bit math on column indices.
  .
  [Version 2.3.6] Re-apply the stat64 hack after upgrade to the bundled
  SQLite3.  Oops!
  .
  [Version 2.3.5] Add support to compile bundled SQLite3 with full-text search.  Upgrade bundled SQLite3 to 3.7.17.
  .
  [Version 2.3.4] Work around a linker error on some systems; add
  column-name reporting.
  .
  [Version 2.3.3.1] Upgrade bundled SQLite3 to 3.7.15.2.
  .
  [Version 2.3.3] Add trace support, as a feature for debugging.
  .
  [Version 2.3.2] Add execPrint, execWithCallback, and interruptibly functions.
  Add bindings for sqlite3_last_insert_rowid and sqlite3_changes.  Change the
  Show instance of the Utf8 newtype to better match the IsString instance.
  .
  [Version 2.3.1] Upgrade the bundled SQLite3 to 3.7.15.  Add bindings for
  sqlite3_interrupt.  Export Int rather than CInt.
  .
  [Version 2.3] Mark some FFI calls "unsafe", for a substantial performance
  benefit.
  .
  [Version 2.2.1] Bump down text library version to match with the
  latest Haskell Platform.
  .
  [Version 2.2] actually does what version 2.1 claimed to, since the author
  made a mistake with git.
  .
  [Version 2.1] improves handling of invalid UTF-8 and changes error handling
  to be more complete.  It also adds a build flag to build against the system
  sqlite instead of the bundled one, optionally (disabled by default).
  .
  [Version 2.0] uses Text for strings instead of String.
  .
  [Version 1.1.0.1] switches to the Faction packaging system and makes no other
  changes.
  .
  [Version 1.1] adds the SQLite amalgamation file (version 3.7.5) to the
  project, so that there are no external dependencies.

extra-source-files:
  cbits/sqlite3.c
  cbits/sqlite3.h

Source-Repository head
  type: git
  location: git://github.com/IreneKnapp/direct-sqlite.git

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

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

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

Library
  exposed-modules:
    Database.SQLite3
    Database.SQLite3.Direct
    Database.SQLite3.Bindings
    Database.SQLite3.Bindings.Types

  if flag(systemlib) {
    cpp-options: -Ddirect_sqlite_systemlib
    extra-libraries: sqlite3
  } else {
    if !os(windows) {
      extra-libraries: pthread
    }
    c-sources: cbits/sqlite3.c
    if flag(fulltextsearch) && flag(urifilenames) {
      cc-options: -DSQLITE_ENABLE_FTS3
                  -DSQLITE_ENABLE_FTS3_PARENTHESIS
                  -DSQLITE_ENABLE_FTS4
                  -DSQLITE_USE_URI
    } else {
      if flag(fulltextsearch) {
        cc-options: -DSQLITE_ENABLE_FTS3
                    -DSQLITE_ENABLE_FTS3_PARENTHESIS
                    -DSQLITE_ENABLE_FTS4
      }
      if flag(urifilenames) {
        cc-options: -DSQLITE_USE_URI
      }
    }
  }

  include-dirs: .
  build-depends: base >= 4.1 && < 5,
                 bytestring >= 0.9.2.1 && < 1,
                 text >= 0.11 && < 1.2
  ghc-options: -Wall -fwarn-tabs
  default-language: Haskell2010


test-suite test
  type:           exitcode-stdio-1.0

  hs-source-dirs: test
  main-is:        Main.hs
  other-modules:
    StrictEq

  ghc-options: -Wall -threaded -fno-warn-name-shadowing -fno-warn-unused-do-bind

  default-language: Haskell2010

  default-extensions: DeriveDataTypeable
                    , NamedFieldPuns
                    , OverloadedStrings
                    , Rank2Types
                    , RecordWildCards
                    , ScopedTypeVariables

  build-depends: base
               , base16-bytestring
               , bytestring
               , directory
               , HUnit
               , direct-sqlite
               , text