packages feed

dawgdic-0.1.0: dawgdic.cabal

cabal-version:      3.12
-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.

-- Initial package description 'dawgdic' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:               dawgdic

-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary:     +-+------- breaking API changes
--                  | | +----- non-breaking API additions
--                  | | | +--- code changes with no API change
version:            0.1.0

-- A short (one-line) description of the package.
synopsis: Generation and traversal of compressed directed acyclic dawg graphs

-- A longer description of the package.
description: Generation and traversal of compressed directed acyclic dawg graphs

-- The license under which the package is released.
license:            BSD-3-Clause

-- The file containing the license text.
license-file:       LICENSE

-- The package author(s).
author:             Andrey Prokopenko

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:         persiantiger@yandex.ru

-- A copyright notice.
-- copyright:
category:           Data
build-type:         Simple

-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files:    CHANGELOG.md
                    COPYING
                    README.md

-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
-- extra-source-files:

common warnings
    ghc-options: -Wall

flag trace
     description: Enable tracing
     manual: True
     default: False

library
    -- Import common warning flags.
    import:           warnings

    default-extensions: BlockArguments
                      , DeriveAnyClass
                      , DerivingStrategies
                      , ImplicitParams
                      , LambdaCase
                      , OverloadedStrings
                      , RecordWildCards
                      , StrictData

    -- Modules exported by the library.
    exposed-modules:  Data.Primitive.PrimArray.Combinators
                      Data.DAWG.Internal.BaseType
                      Data.DAWG.Internal.BaseUnit
                      Data.DAWG.Internal.Completer
                      Data.DAWG.Internal.DAWG
                      Data.DAWG.Internal.DAWGBuilder
                      Data.DAWG.Internal.DAWGUnit
                      Data.DAWG.Internal.Dictionary
                      Data.DAWG.Internal.DictionaryBuilder
                      Data.DAWG.Internal.DictionaryExtraUnit
                      Data.DAWG.Internal.DictionaryUnit
                      Data.DAWG.Internal.Guide
                      Data.DAWG.Internal.GuideBuilder
                      Data.DAWG.Internal.GuideUnit
                      Data.DAWG.Internal.LinkTable
                      Data.DAWG.Internal.Stack
                      Data.DAWG.Completer
                      Data.DAWG.DAWG
                      Data.DAWG.Dictionary
                      Data.DAWG.Guide

    if flag(trace)
      cpp-options: -Dtrace
      hs-source-dirs: src-trace
      exposed-modules: Data.DAWG.Trace

    -- Modules included in this library but not exported.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:

    -- Other library packages from which modules are imported.
    build-depends:    base  >= 4.17.2.1 && < 4.25.0.0
                    , binary
                    , bitvec
                    , deepseq
                    , hashable
                    , primitive
                    , vector
                    , vector-binary
                    , vector-hashtables

    -- Directories containing source files.
    hs-source-dirs:   src

    -- Base language which the package is written in.
    default-language: GHC2021

    ghc-options: -O2

benchmark dawgdic-bench
  type:                exitcode-stdio-1.0
  hs-source-dirs:      bench
  main-is:             Main.hs
  ghc-options:         -O2 -rtsopts
  build-depends:       base
                     , criterion
                     , dawgdic
  default-language:    Haskell2010

test-suite spec
    -- Import common warning flags.
    import:           warnings

    -- Base language which the package is written in.
    default-language: GHC2021

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:

    -- The interface type and version of the test suite.
    type:             exitcode-stdio-1.0

    -- Directories containing source files.
    hs-source-dirs:   test

    -- The entrypoint to the test suite.
    main-is:          Spec.hs

    -- Test dependencies.
    build-depends:
                  base  >= 4.17.2.1 && < 4.25.0.0
                , dawgdic
                , hashable
                , hspec
                , text
                , vector

    -- https://github.com/haskell/cabal/issues/3708
    build-tool-depends:
      hspec-discover:hspec-discover >=2.5.5 && <2.9

    other-modules:
      Data.DAWG.BuildSpec
      Data.DAWG.CompleterSpec
      Data.DAWG.DictionarySpec