File vector-algorithms.cabal of Package ghc-vector-algorithms

cabal-version:     >= 1.10
name:              vector-algorithms
version:           0.9.0.2
x-revision: 1
license:           BSD3
license-file:      LICENSE
author:            Dan Doel
maintainer:        Dan Doel <dan.doel@gmail.com>
                   Erik de Castro Lopo <erikd@mega-nerd.com>
copyright:         (c) 2008,2009,2010,2011,2012,2013,2014,2015 Dan Doel
                   (c) 2015 Tim Baumann
homepage:          https://github.com/erikd/vector-algorithms/
category:          Data
synopsis:          Efficient algorithms for vector arrays
description:       Efficient algorithms for sorting vector arrays. At some stage
                   other vector algorithms may be added.
build-type:        Simple

extra-source-files: CHANGELOG.md

tested-with:
  GHC == 9.8.1
  GHC == 9.6.3
  GHC == 9.4.7
  GHC == 9.2.8
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2
  GHC == 8.0.2
  GHC == 7.10.3

flag BoundsChecks
  description: Enable bounds checking
  default: True

flag UnsafeChecks
  description: Enable bounds checking in unsafe operations at the cost of a
               significant performance penalty.
  default: False

flag InternalChecks
  description: Enable internal consistency checks at the cost of a
               significant performance penalty.
  default: False

flag bench
  description: Build a benchmarking program to test vector-algorithms
               performance
  default: True

flag properties
  description: Enable the quickcheck tests
  default: True

-- flag dump-simpl
--   description: Dumps the simplified core during compilation
--   default: False

flag llvm
  description: Build using llvm
  default: False

source-repository head
  type:     git
  location: https://github.com/erikd/vector-algorithms/

library
  hs-source-dirs: src
  default-language: Haskell2010

  build-depends: base >= 4.8 && < 5,
                 bitvec >= 1.0 && < 1.2,
                 vector >= 0.6 && < 0.14,
                 primitive >= 0.6.2.0 && < 0.10,
                 bytestring >= 0.9 && < 1

  if ! impl (ghc >= 7.8)
    build-depends: tagged >= 0.4 && < 0.9

  exposed-modules:
    Data.Vector.Algorithms
    Data.Vector.Algorithms.Optimal
    Data.Vector.Algorithms.Insertion
    Data.Vector.Algorithms.Intro
    Data.Vector.Algorithms.Merge
    Data.Vector.Algorithms.Radix
    Data.Vector.Algorithms.Search
    Data.Vector.Algorithms.Heap
    Data.Vector.Algorithms.AmericanFlag
    Data.Vector.Algorithms.Tim

  other-modules:
    Data.Vector.Algorithms.Common

  ghc-options:
    -funbox-strict-fields

  -- Cabal/Hackage complains about these
  -- if flag(dump-simpl)
  --   ghc-options: -ddump-simpl -ddump-to-file

  if flag(llvm)
    ghc-options: -fllvm

  include-dirs:
    include

  install-includes:
    vector.h

  if flag(BoundsChecks)
    cpp-options: -DVECTOR_BOUNDS_CHECKS

  if flag(UnsafeChecks)
    cpp-options: -DVECTOR_UNSAFE_CHECKS

  if flag(InternalChecks)
    cpp-options: -DVECTOR_INTERNAL_CHECKS

benchmark simple-bench
  hs-source-dirs: bench/simple
  type: exitcode-stdio-1.0
  default-language: Haskell2010

  if !flag(bench)
    buildable: False

  main-is: Main.hs

  other-modules:
    Blocks

  build-depends: base, mwc-random, vector, vector-algorithms
  ghc-options: -Wall

  -- Cabal/Hackage complains about these
  -- if flag(dump-simpl)
  --   ghc-options: -ddump-simpl -ddump-to-file

  if flag(llvm)
    ghc-options: -fllvm

test-suite properties
  hs-source-dirs: tests/properties
  type: exitcode-stdio-1.0
  main-is: Tests.hs
  default-language: Haskell2010

  other-modules:
    Optimal
    Properties
    Util

  if !flag(properties)
    buildable: False
  else
    build-depends:
      base >= 4.9,
      bytestring,
      containers,
      QuickCheck > 2.9 && < 2.16,
      vector,
      vector-algorithms

  if flag(llvm)
    ghc-options: -fllvm
openSUSE Build Service is sponsored by