packages feed

argo-0.2022.2.27: argo.cabal

cabal-version: 2.2

name: argo
version: 0.2022.2.27

build-type: Simple
category: JSON
description: Argo parses and renders JSON.
extra-source-files: CHANGELOG.md README.md
license-file: LICENSE.md
license: MIT
maintainer: Taylor Fausak
synopsis: Parse and render JSON.

source-repository head
    location: https://github.com/tfausak/argo
    type: git

flag pedantic
    default: False
    description: Enables @-Werror@, which turns warnings into errors.
    manual: True

common library
    build-depends:
        , base >= 4.14.0 && < 4.17
        , bytestring >= 0.10.12 && < 0.12
        , containers >= 0.6.4 && < 0.7
        , deepseq >= 1.4.4 && < 1.5
        , template-haskell >= 2.16.0 && < 2.19
        , text >= 1.2.4 && < 1.3
        , transformers >= 0.5.6 && < 0.6
    default-language: Haskell2010
    ghc-options:
        -Weverything
        -Wno-all-missed-specialisations
        -Wno-implicit-prelude
        -Wno-missed-specialisations
        -Wno-missing-deriving-strategies
        -Wno-missing-export-lists
        -Wno-missing-exported-signatures
        -Wno-missing-safe-haskell-mode
        -Wno-prepositive-qualified-module
        -Wno-safe
        -Wno-unsafe

    if flag(pedantic)
        ghc-options: -Werror

    if impl(ghc >= 9.2)
        ghc-options:
            -Wno-implicit-lift
            -Wno-missing-kind-signatures

common executable
    import: library

    build-depends: argo
    ghc-options:
        -rtsopts
        -threaded
        -Wno-unused-packages

library
    import: library

    autogen-modules: Paths_argo
    exposed-modules:
        Argo
        Argo.Internal.Class.HasCodec
        Argo.Internal.Codec.Array
        Argo.Internal.Codec.Codec
        Argo.Internal.Codec.List
        Argo.Internal.Codec.Object
        Argo.Internal.Codec.Value
        Argo.Internal.Decode
        Argo.Internal.Encode
        Argo.Internal.Json.Array
        Argo.Internal.Json.Boolean
        Argo.Internal.Json.Member
        Argo.Internal.Json.Name
        Argo.Internal.Json.Null
        Argo.Internal.Json.Number
        Argo.Internal.Json.Object
        Argo.Internal.Json.String
        Argo.Internal.Json.Value
        Argo.Internal.Literal
        Argo.Internal.Main
        Argo.Internal.Pattern
        Argo.Internal.Pointer.Pointer
        Argo.Internal.Pointer.Token
        Argo.Internal.QuasiQuoter
        Argo.Internal.Schema.Identifier
        Argo.Internal.Schema.Schema
        Argo.Internal.Type.Config
        Argo.Internal.Type.Decimal
        Argo.Internal.Type.Decoder
        Argo.Internal.Type.Encoder
        Argo.Internal.Type.Flag
        Argo.Internal.Type.Indent
        Argo.Internal.Type.Nullable
        Argo.Internal.Type.Optional
        Argo.Internal.Type.Permission
        Argo.Internal.Type.Settings
    hs-source-dirs: source/library
    other-modules:
        Argo.Vendor.Builder
        Argo.Vendor.ByteString
        Argo.Vendor.DeepSeq
        Argo.Vendor.Map
        Argo.Vendor.TemplateHaskell
        Argo.Vendor.Text
        Argo.Vendor.Transformers
        Paths_argo

executable argo
    import: executable

    hs-source-dirs: source/executable
    main-is: Main.hs

test-suite argo-test-suite
    import: executable

    build-depends:
        , tasty >= 1.4.2 && < 1.5
        , tasty-hunit >= 0.10.0 && < 0.11
        , tasty-quickcheck >= 0.10.1 && < 0.11
    hs-source-dirs: source/test-suite
    main-is: Main.hs
    other-modules: Argo.Orphanage
    type: exitcode-stdio-1.0

benchmark argo-benchmark
    import: executable

    build-depends:
        , tasty >= 1.4.2 && < 1.5
        , tasty-bench >= 0.2.5 && < 0.4
    hs-source-dirs: source/benchmark
    main-is: Main.hs
    type: exitcode-stdio-1.0