name        : hledger-ui
version     : 1.32.99
synopsis    : Terminal interface for the hledger accounting system
description : |
  A simple terminal user interface for the hledger accounting system.
  It can be a more convenient way to browse your accounts than the CLI.
  This package currently does not support Microsoft Windows, except in WSL.

  hledger is a robust, cross-platform set of tools for tracking money,
  time, or any other commodity, using double-entry accounting and a
  simple, editable file format, with command-line, terminal and web
  interfaces. It is a Haskell rewrite of Ledger, and one of the leading
  implementations of Plain Text Accounting. Read more at:
  <https://hledger.org>

category    : Finance, Console
license     : GPL-3
author      : Simon Michael <simon@joyful.com>
maintainer  : Simon Michael <simon@joyful.com>
github      : simonmichael/hledger
homepage    : http://hledger.org
bug-reports : http://bugs.hledger.org
stability   : stable
tested-with: GHC==8.10.7, GHC==9.0.2, GHC==9.2.8, GHC==9.4.5, GHC==9.6.2

extra-source-files:
  - CHANGES.md
  - README.md
  - hledger-ui.1
  - hledger-ui.txt
  - hledger-ui.info

#data-files:

flags:
  threaded:
    description: Build with support for multithreaded execution
    manual: false
    default: true

cpp-options: -DVERSION="1.32.99"

ghc-options:
- -Wall
- -Wno-incomplete-uni-patterns
- -Wno-missing-signatures
- -Wno-orphans
- -Wno-type-defaults
- -Wno-unused-do-bind

dependencies:
- base >=4.14 && <4.20

 # curses is required to build terminfo for vty for hledger-ui.
 # On POSIX systems it might be not present.
 # On windows it's very likely not present, but possibly it could be.
 # Ideally we'd like to
 # on POSIX: give a clear error ("install your system libcurses-dev package") if not present
 # on windows: quietly skip building if not present, build if it is present
 #  curses
 #    default: True
 #    description:
 #
 # note on windows: the vty-windows (and hence hledger-ui) will reliably work only on the newer backends
 # like Windows Terminal.
 # mintty-based backends (default for cygwin/gitbash/msys2) are not supported (yet)

library:
  source-dirs: .
  cpp-options: -DVERSION="1.32.99"
  exposed-modules:
  - Hledger.UI
  - Hledger.UI.Main
  - Hledger.UI.Theme
  - Hledger.UI.UIOptions
  dependencies:
  - hledger-lib >=1.32.99 && <1.33
  - hledger >=1.32.99 && <1.33
  - ansi-terminal >=0.9
  - async
  - cmdargs >=0.8
  - containers >=0.5.9
  - data-default
  - directory
  - doclayout >=0.3 && <0.5
  - extra >=1.6.3
  - filepath
  - fsnotify >=0.4 && <0.5
  - microlens >=0.4
  - microlens-platform >=0.2.3.1
  - megaparsec >=7.0.0 && <9.7
  - mtl >=2.2.1
  - process >=1.2
  - safe >=0.3.20
  - split >=0.1
  - text >=1.2.4.1
  - text-zipper >=0.4
  - time >=1.5
  - transformers
  - vector
  - brick >=2.1.1 && <2.4
  - vty >=6.1 && <6.3
  - vty-crossplatform >= 0.4.0.0 && < 0.5.0.0
  when:
    - condition: os(windows)
      then:
        dependencies: vty-windows >= 0.2.0.1 && < 0.3.0.0
      else:
        dependencies: unix


executables:
  hledger-ui:
    source-dirs: app
    main: hledger-ui.hs
    dependencies:
    - base >=4.14 && <4.20
    - hledger-ui
    when:
    - condition: flag(threaded)
      ghc-options: -threaded -with-rtsopts=-T
