packages feed

cgrep-9.0.0: cgrep.cabal

cabal-version: 2.2
name: cgrep
description: Cgrep: a context-aware grep for source codes
version: 9.0.0
synopsis: Command line tool
homepage: http://awgn.github.io/cgrep/
license: GPL-2.0-or-later
license-file: LICENSE
author: Nicola Bonelli
maintainer: Nicola Bonelli <nicola@larthia.com>
category: Utils
build-type: Simple
stability: Experimental
extra-source-files: README.md

flag enable_pcre {
    Description: "Use PCRE regex engine (default: disabled)"
    Default: False
}

common common-options
  build-depends: base ^>=4.15.0.0
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-uni-patterns
    -Wincomplete-record-updates
    -Wunused-binds
    -Wunused-do-bind
    -Wunused-foralls
    -Wunused-imports
    -Wunused-local-binds
    -Wunused-matches
    -Wunused-pattern-binds
    -Wunused-top-binds
    -Wunused-type-patterns

  if impl(ghc >=8.0)
    ghc-options: -Wredundant-constraints

  if impl(ghc >=8.2)
    ghc-options: -fhide-source-paths

  if impl(ghc >=8.4)
    ghc-options:
      -Wmissing-export-lists
      -Wpartial-fields

  if impl(ghc >=8.8)
    ghc-options: -Wmissing-deriving-strategies
  default-language: Haskell2010

executable cgrep
  import: common-options
  main-is: Main.hs
  hs-source-dirs: src
  default-extensions:
    CPP
    BangPatterns
    DerivingStrategies
    DeriveGeneric
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    GeneralisedNewtypeDeriving
    LambdaCase
    MagicHash
    MultiWayIf
    OverloadedLists
    OverloadedRecordDot
    OverloadedStrings
    PatternSynonyms
    RecordWildCards
    ScopedTypeVariables
    TupleSections
    TypeApplications
    UnboxedSums
    UnboxedTuples
    ViewPatterns

  other-modules:
    CGrep.Boundary
    CGrep.Common
    CGrep.Text
    CGrep.Line
    CGrep.Distance
    CGrep.FileKind
    CGrep.FileType
    CGrep.FileTypeMap
    CGrep.FileTypeMapTH
    CGrep.Match
    CGrep.Search
    CGrep.Semantic.ContextFilter
    CGrep.Semantic.Tests
    CGrep.Parser.Atom
    CGrep.Parser.Char
    CGrep.Parser.Chunk
    CGrep.Parser.Token
    CGrep.Strategy.BoyerMoore
    CGrep.Strategy.Levenshtein
    CGrep.Strategy.Regex
    CGrep.Strategy.Semantic
    CGrep.Strategy.Tokenizer
    CmdOptions
    Config
    Options
    OsPath
    Paths_cgrep
    PutMessage
    Reader
    Util

  autogen-modules: Paths_cgrep
  build-depends:
    aeson,
    ansi-terminal,
    atomic-primops,
    array,
    async,
    concurrency,
    clock,
    base <5.0,
    bitarray,
    bitwise,
    bytestring,
    bytestring-strict-builder,
    containers,
    deepseq,
    directory,
    dlist,
    either,
    exceptions,
    extra,
    filepath,
    ghc-prim,
    template-haskell,
    mmap,
    monad-loops,
    mtl,
    optparse-applicative,
    os-string,
    process,
    regex-base,
    regex-tdfa,
    safe,
    split,
    stm,
    stringsearch,
    text,
    transformers,
    unicode-show,
    unix-compat,
    unordered-containers,
    utf8-string,
    vector,
    yaml,

  ghc-options:
    -O2
    -optc-O3
    -funbox-strict-fields
    -fwrite-ide-info
    -hiedir=.hie
    -threaded
    -rtsopts
    "-with-rtsopts=-N -H16m -A64m -qa"

  if flag (enable_pcre) {
     build-depends: regex-pcre-text
     cpp-options: -DENABLE_PCRE
  }

  default-language: Haskell2010