name:            yaml
version:         0.8.25
license:         BSD3
license-file:    LICENSE
author:          Michael Snoyman <michael@snoyman.com>, Anton Ageev <antage@gmail.com>,Kirill Simonov
maintainer:      Michael Snoyman <michael@snoyman.com>
synopsis:        Support for parsing and rendering YAML documents.
description:     Please see the README.md file.
category:        Web
stability:       stable
cabal-version:   >= 1.8
build-type:      Simple
homepage:        http://github.com/snoyberg/yaml/
extra-source-files: c/helper.h
                    libyaml/yaml_private.h
                    libyaml/yaml.h
                    libyaml/LICENSE
                    test/largest-string.yaml
                    test/json.yaml
                    test/resources/foo.yaml
                    test/resources/bar.yaml
                    test/resources/baz.yaml
                    test/resources/accent/foo.yaml
                    test/resources/loop/foo.yaml
                    test/resources/loop/bar.yaml
                    test/resources/empty.yaml
                    test/resources/empty2.yaml
                    README.md
                    ChangeLog.md

flag no-exe
  description: don't install the yaml2json or json2yaml executables
  default: False

flag no-examples
  description: don't build the examples
  default: True

flag system-libyaml
  description: Use the system-wide libyaml instead of the bundled copy
  default: False

flag no-unicode
  description: Don't enable unicode output. Instead, unicode characters will be escaped.
  default: False

library
    build-depends:   base >= 4 && < 5
                   , transformers >= 0.1
                   , bytestring >= 0.9.1.4
                   , conduit >= 1.1.0 && < 1.3
                   , resourcet >= 0.3 && < 1.2
                   , aeson >= 0.7
                   , containers
                   , unordered-containers
                   , vector
                   , text
                   , attoparsec >= 0.11.3.0
                   , scientific
                   , filepath
                   , directory
                   , semigroups
    exposed-modules: Text.Libyaml
                     Data.Yaml
                     Data.Yaml.Aeson
                     Data.Yaml.Builder
                     Data.Yaml.Config
                     Data.Yaml.Include
                     Data.Yaml.Parser
                     Data.Yaml.Pretty
    if impl(ghc >= 7.8.1)
      build-depends: template-haskell >= 2.8.0.0
      exposed-modules: Data.Yaml.TH
    other-modules:
                     Data.Yaml.Internal
    ghc-options:     -Wall
    c-sources:       c/helper.c
    include-dirs:    c
    if flag(no-unicode)
            cpp-options:     -D__NO_UNICODE__
    if flag(system-libyaml)
            pkgconfig-depends: yaml-0.1
    else
            c-sources:       libyaml/api.c,
                             libyaml/dumper.c,
                             libyaml/emitter.c,
                             libyaml/loader.c,
                             libyaml/parser.c,
                             libyaml/reader.c,
                             libyaml/scanner.c,
                             libyaml/writer.c
            include-dirs:    libyaml
    if os(windows)
            cpp-options:     -DWINDOWS

executable yaml2json
    if flag(no-exe)
      Buildable: False
    else
      Buildable: True

    hs-source-dirs: exe
    main-is: yaml2json.hs
    build-depends: base >= 4 && < 5
                 , yaml
                 , bytestring >= 0.9.1.4
                 , aeson >= 0.7

executable json2yaml
    if flag(no-exe)
      Buildable: False
    else
      Buildable: True

    hs-source-dirs: exe
    main-is: json2yaml.hs
    build-depends: base >= 4 && < 5
                 , yaml
                 , bytestring >= 0.9.1.4
                 , aeson >= 0.7


test-suite spec
    type: exitcode-stdio-1.0
    hs-source-dirs:  test
    main-is:         Spec.hs
    other-modules:   Data.YamlSpec
                     Data.Yaml.IncludeSpec
    cpp-options:     -DTEST
    build-depends:   hspec >= 1.3
                   , HUnit
                   , base >= 4 && < 5
                   , transformers >= 0.1
                   , bytestring >= 0.9.1.4
                   , conduit
                   , yaml
                   , text
                   , aeson >= 0.7
                   , unordered-containers
                   , directory
                   , vector
                   , resourcet
                   , aeson-qq
                   , mockery
                   , base-compat
                   , temporary
    ghc-options:     -Wall

executable examples
   if flag(no-examples)
      Buildable: False
   else
      Buildable: True
      build-depends: base
                   , bytestring
                   , raw-strings-qq
                   , text
                   , yaml
   hs-source-dirs: examples
   main-is: Main.hs
   other-modules: Config
                  Simple
   ghc-options:   -Wall

source-repository head
  type:     git
  location: https://github.com/snoyberg/yaml
