Name:          patat
Version:       0.15.2.0
Synopsis:      Terminal-based presentations using Pandoc
Description:   Terminal-based presentations using Pandoc.
License:       GPL-2
License-file:  LICENSE
Author:        Jasper Van der Jeugt <m@jaspervdj.be>
Maintainer:    Jasper Van der Jeugt <m@jaspervdj.be>
Homepage:      http://github.com/jaspervdj/patat
Copyright:     2016 Jasper Van der Jeugt
Category:      Text
Build-type:    Simple
Cabal-version: >=1.10
Tested-with:   GHC ==9.2.8 || ==9.4.8 || ==9.6.3 || ==9.8.1 || ==9.8.4

Extra-source-files:
  CHANGELOG.md
  README.md

Source-repository head
  Type:     git
  Location: https://github.com/jaspervdj/patat.git

Flag patat-make-man
  Description: Build the executable to generate the man page
  Default:     False
  Manual:      True

Library
  Ghc-options:       -Wall
  Hs-source-dirs:    lib
  Default-language:  Haskell2010

  Build-depends:
    aeson                >= 2.0   && < 2.3,
    ansi-terminal        >= 1.1   && < 1.2,
    ansi-wl-pprint       >= 0.6   && < 1.1,
    async                >= 2.2   && < 2.3,
    base                 >= 4.9   && < 5,
    base64-bytestring    >= 1.0   && < 1.3,
    bytestring           >= 0.10  && < 0.13,
    case-insensitive     >= 1.2   && < 1.3,
    colour               >= 2.3   && < 2.4,
    containers           >= 0.5   && < 0.7,
    directory            >= 1.2   && < 1.4,
    filepath             >= 1.4   && < 1.6,
    hashable             >= 1.4   && < 1.5,
    JuicyPixels          >= 3.3.3 && < 3.4,
    mtl                  >= 2.2   && < 2.4,
    optparse-applicative >= 0.16  && < 0.19,
    pandoc               >= 3.1   && < 3.7,
    pandoc-types         >= 1.23  && < 1.24,
    process              >= 1.6   && < 1.7,
    random               >= 1.2   && < 1.3,
    skylighting          >= 0.10  && < 0.15,
    terminal-size        >= 0.3   && < 0.4,
    text                 >= 1.2   && < 2.2,
    time                 >= 1.4   && < 1.13,
    unordered-containers >= 0.2   && < 0.3,
    yaml                 >= 0.8   && < 0.12,
    vector               >= 0.13  && < 0.14,
    wcwidth              >= 0.0   && < 0.1,
    -- We don't even depend on these packages but they can break cabal install
    -- because of the conflicting 'Network.URI' module.
    network-uri >= 2.6,
    network     >= 2.6

  If impl(ghc < 8.0)
    Build-depends:
      semigroups >= 0.16 && < 0.19

  Exposed-modules:
    Patat.AutoAdvance
    Patat.Cleanup
    Patat.EncodingFallback
    Patat.Eval
    Patat.Eval.Internal
    Patat.Images
    Patat.Images.Internal
    Patat.Images.ITerm2
    Patat.Images.Kitty
    Patat.Images.W3m
    Patat.Images.WezTerm
    Patat.Main
    Patat.Presentation
    Patat.Presentation.Display
    Patat.Presentation.Display.CodeBlock
    Patat.Presentation.Display.Internal
    Patat.Presentation.Display.Table
    Patat.Presentation.Fragment
    Patat.Presentation.Interactive
    Patat.Presentation.Internal
    Patat.Presentation.Read
    Patat.Presentation.Settings
    Patat.Presentation.SpeakerNotes
    Patat.Presentation.Syntax
    Patat.PrettyPrint
    Patat.PrettyPrint.Internal
    Patat.PrettyPrint.Matrix
    Patat.Size
    Patat.Theme
    Patat.Transition
    Patat.Transition.Internal
    Patat.Transition.Dissolve
    Patat.Transition.Matrix
    Patat.Transition.SlideLeft
    Patat.Unique

  Other-modules:
    Control.Concurrent.Chan.Extended
    Data.Aeson.Extended
    Data.Aeson.TH.Extended
    Data.Char.WCWidth.Extended
    Data.Sequence.Extended
    Paths_patat
    Text.Pandoc.Extended

Executable patat
  Main-is:          Main.hs
  Ghc-options:      -Wall -threaded -rtsopts "-with-rtsopts=-N"
  Hs-source-dirs:   src
  Default-language: Haskell2010
  Build-depends:    base, patat

Executable patat-make-man
  Main-is:          make-man.hs
  Ghc-options:      -Wall
  Hs-source-dirs:   extra
  Default-language: Haskell2010

  If flag(patat-make-man)
    Buildable: True
  Else
    Buildable: False

  Build-depends:
    base         >= 4.9 && < 5,
    containers   >= 0.6 && < 0.8,
    doctemplates >= 0.8 && < 0.12,
    mtl          >= 2.2 && < 2.4,
    pandoc       >= 3.1 && < 3.7,
    text         >= 1.2 && < 2.2,
    time         >= 1.6 && < 1.13

Test-suite patat-tests
  Main-is:          Main.hs
  Ghc-options:      -Wall
  Hs-source-dirs:   tests/haskell
  Type:             exitcode-stdio-1.0
  Default-language: Haskell2010

  Other-modules:
    Patat.Presentation.Interactive.Tests
    Patat.Presentation.Read.Tests
    Patat.PrettyPrint.Matrix.Tests

  Build-depends:
    patat,
    ansi-terminal    >= 1.1  && < 1.2,
    base             >= 4.8  && < 5,
    directory        >= 1.2  && < 1.4,
    pandoc           >= 3.1  && < 3.7,
    tasty            >= 1.2  && < 1.6,
    tasty-hunit      >= 0.10 && < 0.11,
    tasty-quickcheck >= 0.10 && < 0.12,
    text             >= 1.2  && < 2.2,
    QuickCheck       >= 2.8  && < 2.15

Test-suite patat-goldplate
  Main-is:            Main.hs
  Ghc-options:        -Wall
  Hs-source-dirs:     tests/golden
  Type:               exitcode-stdio-1.0
  Default-language:   Haskell2010
  Build-tool-depends: patat:patat

  Build-depends:
    base      >= 4.8     && < 5,
    goldplate >= 0.2.2.1 && < 0.3
