diagnose/package.yaml

117 lines
2.7 KiB
YAML

name: diagnose
version: 1.5.0
github: "mesabloo/diagnose"
license: BSD3
author: "Mesabloo"
copyright: "2020 Mesabloo"
dependencies:
- base >= 4.7 && < 5
- prettyprinter == 1.7.0
- prettyprinter-ansi-terminal == 1.1.2
- unordered-containers == 0.2.14.0
- hashable == 1.3.0.0
- data-default == 0.7.1.1
- bytestring == 0.10.12.0
- text == 1.2.4.1
default-extensions:
- OverloadedStrings
- LambdaCase
- BlockArguments
library:
source-dirs: src
exposed-modules:
- Error.Diagnose
- Error.Diagnose.Diagnostic
- Error.Diagnose.Position
- Error.Diagnose.Pretty
- Error.Diagnose.Report
when:
- condition: flag(megaparsec-compat)
exposed-modules:
- Error.Diagnose.Compat.Megaparsec
- condition: flag(parsec-compat)
exposed-modules:
- Error.Diagnose.Compat.Parsec
flags:
json:
description: "Allows exporting diagnostics as JSON.
This is disabled by default as this relies on the very heavy dependency Aeson."
manual: true
default: false
megaparsec-compat:
description: "Includes a small compatibility layer (in the module Error.Diagnose.Compat.Megaparsec) to transform megaparsec errors into reports for this library."
manual: true
default: false
parsec-compat:
description: "Includes a small compatibility layer (in the module Error.Diagnose.Compat.Parsec) to transform parsec errors into reports for this library."
manual: true
default: false
# do the same for other parsing libraries like parsec or attoparsec
when:
- condition: flag(json)
dependencies:
- aeson == 1.5.6.0
cpp-options:
- -DUSE_AESON
- condition: flag(megaparsec-compat)
dependencies:
- megaparsec >= 9.0.0
- containers == 0.6.2.1
- condition: flag(parsec-compat)
dependencies:
- parsec >= 3.1.14
ghc-options:
- -Wall
- -Wextra
# - -Wmissing-local-signatures
# - -Wmonomorphism-restriction
tests:
diagnose-rendering-tests:
main: Spec.hs
source-dirs: test/rendering
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
- -O0
- -g
dependencies:
- diagnose
diagnose-megaparsec-tests:
main: Spec.hs
source-dirs: test/megaparsec
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
- -O0
- -g
dependencies:
- diagnose
when:
- condition: ! '!(flag(megaparsec-compat))'
buildable: false
diagnose-parsec-tests:
main: Spec.hs
source-dirs: test/parsec
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
- -O0
- -g
dependencies:
- diagnose
when:
- condition: ! '!(flag(parsec-compat))'
buildable: false