name        : hledger-ui
version     : 1.22.99
synopsis    : Curses-style terminal interface for the hledger accounting system
description : |
  A simple curses-style 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.6.5, GHC==8.8.4, GHC==8.10.4, GHC==9.0.1

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.22.99"

dependencies:
- hledger-lib >=1.22.99 && <1.23
- hledger >=1.22.99 && <1.23
- ansi-terminal >=0.9
- async
- base >=4.11 && <4.16
- base-compat-batteries >=0.10.1 && <0.12
- cmdargs >=0.8
- containers >=0.5.9
- data-default
- directory
- extra >=1.6.3
- filepath
- fsnotify >=0.2.1.2 && <0.4
- microlens >=0.4
- microlens-platform >=0.2.3.1
- megaparsec >=7.0.0 && <9.2
- process >=1.2
- safe >=0.2
- split >=0.1
- text >=1.2
- text-zipper >=0.4
- time >=1.5
- transformers
- vector
# not installable on windows, cf buildable flag below
- brick >=0.23
- vty >=5.15
- unix

when:
 # 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:
 # For now, just don't build hledger-ui on windows
 - condition: os(windows)
   then:
     buildable: false
   else:
     buildable: true

executables:
  hledger-ui:
    source-dirs: .
    main: hledger-ui.hs
    ghc-options:
      -Wall
      -fno-warn-unused-do-bind
      -fno-warn-name-shadowing
      -fno-warn-missing-signatures
      -fno-warn-type-defaults
      -fno-warn-orphans
    when:
    - condition: flag(threaded)
      ghc-options: -threaded
