File HsYAML.cabal of Package ghc-HsYAML

cabal-version:       1.14
name:                HsYAML
version:             0.2.1.4
x-revision:          1

synopsis:            Pure Haskell YAML 1.2 processor
homepage:            https://github.com/haskell-hvr/HsYAML
bug-reports:         https://github.com/haskell-hvr/HsYAML/issues
license:             GPL-2
X-SPDX-License-Identifier: GPL-2.0-or-later
license-files:       LICENSE.GPLv2 LICENSE.GPLv3
author:              Herbert Valerio Riedel
maintainer:          https://github.com/haskell-hvr/HsYAML
copyright:           2015-2018 Herbert Valerio Riedel
                   , 2007-2008 Oren Ben-Kiki
category:            Text
build-type:          Simple
tested-with:
  GHC == 9.10.1
  GHC == 9.8.2
  GHC == 9.6.5
  GHC == 9.4.8
  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

description:
  @HsYAML@ is a [YAML 1.2](http://yaml.org/spec/1.2/spec.html) processor, i.e. a library for parsing and serializing YAML documents.

  .
  Features of @HsYAML@ include:
  .
   * Pure Haskell implementation with small dependency footprint and emphasis on strict compliance with the [YAML 1.2 specification](http://yaml.org/spec/1.2/spec.html).
   * Direct decoding to native Haskell types via (@aeson@-inspired) typeclass-based API (see "Data.YAML").
   * Allows round-tripping while preserving ordering, anchors, and comments at Event-level.
   * Support for constructing custom YAML node graph representation (including support for cyclic YAML data structures).
   * Support for the standard (untyped) /Failsafe/, (strict) /JSON/, and (flexible) /Core/ \"schemas\" providing implicit typing rules as defined in the YAML 1.2 specification (including support for user-defined custom schemas; see "Data.YAML.Schema").
   * Support for emitting YAML using /Failsafe/, (strict) /JSON/, and (flexible) /Core/ \"schemas\" (including support for user-defined custom encoding schemas; see "Data.YAML.Schema").
   * Event-based API resembling LibYAML's Event-based API (see "Data.YAML.Event").
   * Low-level API access to lexical token-based scanner (see "Data.YAML.Token").
   .
   See also the <//hackage.haskell.org/package/HsYAML-aeson HsYAML-aeson> package which allows to decode and encode YAML by leveraging @aeson@'s 'FromJSON' and 'ToJSON' instances.

extra-source-files:
  ChangeLog.md

source-repository head
  type: git
  location: https://github.com/haskell-hvr/HsYAML.git

flag exe
  description: Enable @exe:yaml-test@ component
  manual: True
  default: False

library
  hs-source-dirs:      src
  exposed-modules:     Data.YAML
                     , Data.YAML.Schema
                     , Data.YAML.Event
                     , Data.YAML.Token
  other-modules:       Data.YAML.Loader
                     , Data.YAML.Dumper
                     , Data.YAML.Internal
                     , Data.YAML.Event.Internal
                     , Data.YAML.Event.Writer
                     , Data.YAML.Pos
                     , Data.YAML.Schema.Internal
                     , Data.YAML.Token.Encoding
                     , Util
                     , Data.DList

  default-language:    Haskell2010
  default-extensions:  TypeOperators
  other-extensions:    DeriveGeneric
                       FlexibleContexts
                       FlexibleInstances
                       FunctionalDependencies
                       MultiParamTypeClasses
                       OverloadedStrings
                       PostfixOperators
                       RecordWildCards
                       RecursiveDo
                       Safe
                       ScopedTypeVariables
                       Trustworthy
                       TypeSynonymInstances

  build-depends:       base         >= 4.9      && < 5
                     , bytestring   >= 0.9      && < 0.13
                     , containers   >= 0.4.2    && < 0.8
                     , deepseq      >= 1.3.0    && < 1.6
                     , text         >= 1.2.3    && < 2.2
                     , mtl          >= 2.2.1    && < 2.4
                     , parsec       >= 3.1.13.0 && < 3.2
                     , transformers >= 0.4      && < 0.7

  ghc-options:
    -Wall
    -Wcompat

executable yaml-test
  hs-source-dirs: src-test
  main-is: Main.hs
  other-modules: TML

  default-language:    Haskell2010

  if flag(exe)
    build-depends: HsYAML
                   -- inherited constraints
                 , bytestring >= 0.10.8.0
                 , base
                 , text
                 , containers
                 , mtl
                   -- non-inherited
                 , megaparsec  >= 7.0 && < 10
                 , microaeson  == 0.1.*
                 , filepath    >= 1.4 && < 1.6
                 , directory   >= 1.2 && < 1.4
  else
    buildable: False

  ghc-options: -rtsopts

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

  ghc-options: -rtsopts

  build-depends: HsYAML
                   -- inherited constraints
                 , bytestring >= 0.10.8.0
                 , base
                 , text
                 , containers
                 , mtl
                   -- non-inherited
                   -- lower bounds chosen from lts-11.22 (GHC 8.2)
                 , QuickCheck       >= 2.10.1   && < 2.16
                 , tasty            >= 1.0.1.1  && < 1.6
                 , tasty-quickcheck >= 0.9.2    && < 1
openSUSE Build Service is sponsored by