Blob Blame History Raw
cabal-version:   1.18
name:            ormolu
version:         0.1.4.1
x-revision: 1
license:         BSD3
license-file:    LICENSE.md
maintainer:      Mark Karpov <mark.karpov@tweag.io>
tested-with:     ghc ==8.6.5 ghc ==8.8.4 ghc ==8.10.2
homepage:        https://github.com/tweag/ormolu
bug-reports:     https://github.com/tweag/ormolu/issues
synopsis:        A formatter for Haskell source code
description:     A formatter for Haskell source code.
category:        Development, Formatting
build-type:      Simple
data-files:
    data/examples/declaration/annotation/*.hs
    data/examples/declaration/class/*.hs
    data/examples/declaration/data/*.hs
    data/examples/declaration/data/gadt/*.hs
    data/examples/declaration/default/*.hs
    data/examples/declaration/deriving/*.hs
    data/examples/declaration/foreign/*.hs
    data/examples/declaration/instance/*.hs
    data/examples/declaration/rewrite-rule/*.hs
    data/examples/declaration/role-annotation/*.hs
    data/examples/declaration/signature/complete/*.hs
    data/examples/declaration/signature/fixity/*.hs
    data/examples/declaration/signature/inline/*.hs
    data/examples/declaration/signature/minimal/*.hs
    data/examples/declaration/signature/pattern/*.hs
    data/examples/declaration/signature/set-cost-centre/*.hs
    data/examples/declaration/signature/specialize/*.hs
    data/examples/declaration/signature/type/*.hs
    data/examples/declaration/splice/*.hs
    data/examples/declaration/type-families/closed-type-family/*.hs
    data/examples/declaration/type-families/data-family/*.hs
    data/examples/declaration/type-families/type-family/*.hs
    data/examples/declaration/type-synonyms/*.hs
    data/examples/declaration/type/*.hs
    data/examples/declaration/value/function/*.hs
    data/examples/declaration/value/function/arrow/*.hs
    data/examples/declaration/value/function/comprehension/*.hs
    data/examples/declaration/value/function/do/*.hs
    data/examples/declaration/value/function/infix/*.hs
    data/examples/declaration/value/function/pattern/*.hs
    data/examples/declaration/value/other/*.hs
    data/examples/declaration/value/pattern-synonyms/*.hs
    data/examples/declaration/warning/*.hs
    data/examples/import/*.hs
    data/examples/module-header/*.hs
    data/examples/other/*.hs
    data/diff-tests/inputs/*.hs
    data/diff-tests/outputs/*.txt

extra-doc-files:
    CONTRIBUTING.md
    CHANGELOG.md
    DESIGN.md
    README.md

source-repository head
    type:     git
    location: https://github.com/tweag/ormolu.git

flag dev
    description: Turn on development settings.
    default:     False
    manual:      True

library
    exposed-modules:
        Ormolu
        Ormolu.Config
        Ormolu.Diff.ParseResult
        Ormolu.Diff.Text
        Ormolu.Exception
        Ormolu.Imports
        Ormolu.Parser
        Ormolu.Parser.Anns
        Ormolu.Parser.CommentStream
        Ormolu.Parser.Pragma
        Ormolu.Parser.Result
        Ormolu.Parser.Shebang
        Ormolu.Printer
        Ormolu.Printer.Combinators
        Ormolu.Printer.Comments
        Ormolu.Printer.Internal
        Ormolu.Printer.Meat.Common
        Ormolu.Printer.Meat.Declaration
        Ormolu.Printer.Meat.Declaration.Annotation
        Ormolu.Printer.Meat.Declaration.Class
        Ormolu.Printer.Meat.Declaration.Data
        Ormolu.Printer.Meat.Declaration.Default
        Ormolu.Printer.Meat.Declaration.Foreign
        Ormolu.Printer.Meat.Declaration.Instance
        Ormolu.Printer.Meat.Declaration.RoleAnnotation
        Ormolu.Printer.Meat.Declaration.Rule
        Ormolu.Printer.Meat.Declaration.Signature
        Ormolu.Printer.Meat.Declaration.Splice
        Ormolu.Printer.Meat.Declaration.Type
        Ormolu.Printer.Meat.Declaration.TypeFamily
        Ormolu.Printer.Meat.Declaration.Value
        Ormolu.Printer.Meat.Declaration.Warning
        Ormolu.Printer.Meat.ImportExport
        Ormolu.Printer.Meat.Module
        Ormolu.Printer.Meat.Pragma
        Ormolu.Printer.Meat.Type
        Ormolu.Printer.Operators
        Ormolu.Printer.SpanStream
        Ormolu.Processing.Common
        Ormolu.Processing.Cpp
        Ormolu.Processing.Postprocess
        Ormolu.Processing.Preprocess
        Ormolu.Terminal
        Ormolu.Utils

    hs-source-dirs:   src
    other-modules:
        GHC
        GHC.DynFlags

    default-language: Haskell2010
    build-depends:
        Diff >=0.4 && <1.0,
        ansi-terminal >=0.10 && <1.0,
        base >=4.12 && <5.0,
        bytestring >=0.2 && <0.12,
        containers >=0.5 && <0.7,
        dlist >=0.8 && <2.0,
        exceptions >=0.6 && <0.11,
        ghc-lib-parser >=8.10 && <8.11,
        mtl >=2.0 && <3.0,
        syb >=0.7 && <0.8,
        text >=0.2 && <1.3

    if flag(dev)
        ghc-options:
            -Wall -Werror -Wcompat -Wincomplete-record-updates
            -Wincomplete-uni-patterns -Wnoncanonical-monad-instances
            -Wno-missing-home-modules

    else
        ghc-options: -O2 -Wall

executable ormolu
    main-is:          Main.hs
    hs-source-dirs:   app
    other-modules:    Paths_ormolu
    default-language: Haskell2010
    build-depends:
        base >=4.12 && <5.0,
        filepath >=1.2 && <1.5,
        ghc-lib-parser >=8.10 && <8.11,
        gitrev >=1.3 && <1.4,
        optparse-applicative >=0.14 && <0.17,
        ormolu -any,
        text >=0.2 && <1.3

    if flag(dev)
        ghc-options:
            -Wall -Werror -Wcompat -Wincomplete-record-updates
            -Wincomplete-uni-patterns -Wnoncanonical-monad-instances
            -optP-Wno-nonportable-include-path

    else
        ghc-options: -O2 -Wall -rtsopts

test-suite tests
    type:             exitcode-stdio-1.0
    main-is:          Spec.hs
    build-tools:      hspec-discover >=2.0 && <3.0
    hs-source-dirs:   tests
    other-modules:
        Ormolu.Diff.TextSpec
        Ormolu.Parser.PragmaSpec
        Ormolu.PrinterSpec

    default-language: Haskell2010
    build-depends:
        base >=4.12 && <5.0,
        containers >=0.5 && <0.7,
        filepath >=1.2 && <1.5,
        hspec >=2.0 && <3.0,
        ormolu -any,
        path >=0.6 && <0.9,
        path-io >=1.4.2 && <2.0,
        text >=0.2 && <1.3

    if flag(dev)
        ghc-options: -Wall -Werror

    else
        ghc-options: -O2 -Wall