cabal-version: 2.2

name:                 brittany
version:              0.14.0.2
synopsis:             Haskell source code formatter
description:
  See <https://github.com/lspitzner/brittany/blob/master/README.md the README>.
  .
  If you are interested in the implementation, have a look at <https://github.com/lspitzner/brittany/blob/master/doc/implementation/theory.md this document>;
  .
  The implementation is documented in more detail <https://github.com/lspitzner/brittany/blob/master/doc/implementation/index.md here>.
license:              AGPL-3.0-only
license-file:         LICENSE
author:               Lennart Spitzner
maintainer:           Lennart Spitzner <hexagoxel@hexagoxel.de>
copyright:            Copyright (C) 2016-2019 Lennart Spitzner
                      Copyright (C) 2019 PRODA LTD
category:             Language
build-type:           Simple
homepage:             https://github.com/lspitzner/brittany/
bug-reports:          https://github.com/lspitzner/brittany/issues
extra-doc-files:
  ChangeLog.md
  README.md
  doc/implementation/*.md
extra-source-files:
  data/*.blt

source-repository head
  type: git
  location: https://github.com/lspitzner/brittany.git

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

common library
  build-depends:
    , aeson ^>= 2.0.1
    , base ^>= 4.15.0
    , butcher ^>= 2.0.0
    , bytestring ^>= 0.10.12
    , cmdargs ^>= 0.10.21
    , containers ^>= 0.6.4
    , czipwith ^>= 1.0.1
    , data-tree-print ^>= 0.1.0
    , deepseq ^>= 1.4.5
    , directory ^>= 1.3.6
    , extra ^>= 1.7.10
    , filepath ^>= 1.4.2
    , ghc ^>= 9.0.1
    , ghc-boot ^>= 9.0.1
    , ghc-boot-th ^>= 9.0.1
    , ghc-exactprint ^>= 0.6.4
    , monad-memo ^>= 0.5.3
    , mtl ^>= 2.2.2
    , multistate ^>= 0.8.0
    , pretty ^>= 1.1.3
    , random ^>= 1.2.1
    , safe ^>= 0.3.19
    , semigroups ^>= 0.19.2
    , strict ^>= 0.4.0
    , syb ^>= 0.7.2
    , text ^>= 1.2.5
    , transformers ^>= 0.5.6
    , uniplate ^>= 1.6.13
    , yaml ^>= 0.11.7
  default-language: Haskell2010
  ghc-options:
    -Weverything
    -Wno-all-missed-specialisations
    -Wno-incomplete-uni-patterns
    -Wno-missing-deriving-strategies
    -Wno-missing-export-lists
    -Wno-missing-import-lists
    -Wno-missing-local-signatures
    -Wno-missing-safe-haskell-mode
    -Wno-monomorphism-restriction
    -Wno-prepositive-qualified-module
    -Wno-safe
    -Wno-unsafe

  if flag(pedantic)
    ghc-options: -Werror

common executable
  import: library

  build-depends: brittany
  ghc-options:
    -rtsopts
    -threaded
    -Wno-implicit-prelude
    -Wno-unused-packages

library
  import: library

  autogen-modules: Paths_brittany
  hs-source-dirs: source/library
  exposed-modules:
    Language.Haskell.Brittany
    Language.Haskell.Brittany.Internal
    Language.Haskell.Brittany.Internal.Backend
    Language.Haskell.Brittany.Internal.BackendUtils
    Language.Haskell.Brittany.Internal.Config
    Language.Haskell.Brittany.Internal.Config.Types
    Language.Haskell.Brittany.Internal.Config.Types.Instances
    Language.Haskell.Brittany.Internal.ExactPrintUtils
    Language.Haskell.Brittany.Internal.LayouterBasics
    Language.Haskell.Brittany.Internal.Layouters.DataDecl
    Language.Haskell.Brittany.Internal.Layouters.Decl
    Language.Haskell.Brittany.Internal.Layouters.Expr
    Language.Haskell.Brittany.Internal.Layouters.IE
    Language.Haskell.Brittany.Internal.Layouters.Import
    Language.Haskell.Brittany.Internal.Layouters.Module
    Language.Haskell.Brittany.Internal.Layouters.Pattern
    Language.Haskell.Brittany.Internal.Layouters.Stmt
    Language.Haskell.Brittany.Internal.Layouters.Type
    Language.Haskell.Brittany.Internal.Obfuscation
    Language.Haskell.Brittany.Internal.ParseModule
    Language.Haskell.Brittany.Internal.Prelude
    Language.Haskell.Brittany.Internal.PreludeUtils
    Language.Haskell.Brittany.Internal.Transformations.Alt
    Language.Haskell.Brittany.Internal.Transformations.Columns
    Language.Haskell.Brittany.Internal.Transformations.Floating
    Language.Haskell.Brittany.Internal.Transformations.Indent
    Language.Haskell.Brittany.Internal.Transformations.Par
    Language.Haskell.Brittany.Internal.Types
    Language.Haskell.Brittany.Internal.Utils
    Language.Haskell.Brittany.Main
    Paths_brittany

executable brittany
  import: executable

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

test-suite brittany-test-suite
  import: executable

  build-depends:
    , hspec ^>= 2.8.3
    , parsec ^>= 3.1.14
    , these ^>= 1.1
  hs-source-dirs: source/test-suite
  main-is: Main.hs
  type: exitcode-stdio-1.0