name: hledger
version: 1.22.99
synopsis: Command-line interface for the hledger accounting system
description: |
  The command-line interface for the hledger accounting system.
  Its basic function is to read a plain text file describing
  financial transactions and produce useful reports.

  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
- test/unittest.hs
- bench/10000x1000x10.journal
- hledger.1
- hledger.txt
- hledger.info
- embeddedfiles/hledger.1
- embeddedfiles/hledger.txt
- embeddedfiles/hledger.info
- embeddedfiles/hledger-ui.1
- embeddedfiles/hledger-ui.txt
- embeddedfiles/hledger-ui.info
- embeddedfiles/hledger-web.1
- embeddedfiles/hledger-web.txt
- embeddedfiles/hledger-web.info
- shell-completion/hledger-completion.bash
- Hledger/Cli/Commands/Accounts.txt
- Hledger/Cli/Commands/Activity.txt
- Hledger/Cli/Commands/Add.txt
- Hledger/Cli/Commands/Aregister.txt
- Hledger/Cli/Commands/Balance.txt
- Hledger/Cli/Commands/Balancesheet.txt
- Hledger/Cli/Commands/Balancesheetequity.txt
- Hledger/Cli/Commands/Cashflow.txt
- Hledger/Cli/Commands/Check.txt
- Hledger/Cli/Commands/Close.txt
- Hledger/Cli/Commands/Codes.txt
- Hledger/Cli/Commands/Commodities.txt
- Hledger/Cli/Commands/Descriptions.txt
- Hledger/Cli/Commands/Diff.txt
- Hledger/Cli/Commands/Files.txt
- Hledger/Cli/Commands/Help.txt
- Hledger/Cli/Commands/Import.txt
- Hledger/Cli/Commands/Incomestatement.txt
- Hledger/Cli/Commands/Notes.txt
- Hledger/Cli/Commands/Payees.txt
- Hledger/Cli/Commands/Prices.txt
- Hledger/Cli/Commands/Print.txt
- Hledger/Cli/Commands/Printunique.txt
- Hledger/Cli/Commands/Register.txt
- Hledger/Cli/Commands/Registermatch.txt
- Hledger/Cli/Commands/Rewrite.txt
- Hledger/Cli/Commands/Roi.txt
- Hledger/Cli/Commands/Stats.txt
- Hledger/Cli/Commands/Tags.txt
- Hledger/Cli/Commands/Test.txt


#data-files:

flags:
  terminfo:
    description: On POSIX systems, build with the terminfo lib for detecting terminal width.
    manual: false
    default: true
  threaded:
    description: Build with support for multithreaded execution
    manual: false
    default: true

ghc-options:
- -Wall
- -fno-warn-unused-do-bind
- -fno-warn-name-shadowing
- -fno-warn-missing-signatures
- -fno-warn-type-defaults
- -fno-warn-orphans
# avoid "non-portable path" warning on mac, https://github.com/commercialhaskell/stack/issues/3918
- -optP-Wno-nonportable-include-path

dependencies:
- hledger-lib >=1.22.99 && <1.23
- aeson >=1
- ansi-terminal >=0.9
- base >=4.11 && <4.16
- base-compat-batteries >=0.10.1 && <0.12
- bytestring
- cmdargs >=0.10
- containers >=0.5.9
- data-default >=0.5
- Decimal >=0.5.1
- directory
- extra >=1.6.3
- filepath
- githash >=0.1.4
- haskeline >=0.6
- megaparsec >=7.0.0 && <9.2
- microlens >=0.4
- mtl >=2.2.1
- process
- regex-tdfa
- safe >=0.2
- shakespeare >=2.0.2.2
- split >=0.1
- math-functions >=0.3.3.0
- tabular >=0.2
- tasty >=1.2.3
- temporary
- text >=0.11
- time >=1.5
- timeit
- transformers
- unordered-containers
- utf8-string >=0.3.5
- utility-ht >=0.0.13
- wizards >=1.0

when:
- condition: (!(os(windows))) && (flag(terminfo))
  dependencies:
  - terminfo

library:
  cpp-options: -DVERSION="1.22.99"
  exposed-modules:
  - Hledger.Cli
  - Hledger.Cli.Main
  - Hledger.Cli.CliOptions
  - Hledger.Cli.DocFiles
  - Hledger.Cli.Utils
  - Hledger.Cli.Anon
  - Hledger.Cli.Version
  - Hledger.Cli.Commands
  - Hledger.Cli.Commands.Accounts
  - Hledger.Cli.Commands.Activity
  - Hledger.Cli.Commands.Add
  - Hledger.Cli.Commands.Aregister
  - Hledger.Cli.Commands.Balance
  - Hledger.Cli.Commands.Balancesheet
  - Hledger.Cli.Commands.Balancesheetequity
  - Hledger.Cli.Commands.Cashflow
  - Hledger.Cli.Commands.Check
  - Hledger.Cli.Commands.Check.Ordereddates
  - Hledger.Cli.Commands.Check.Uniqueleafnames
  - Hledger.Cli.Commands.Close
  - Hledger.Cli.Commands.Codes
  - Hledger.Cli.Commands.Commodities
  - Hledger.Cli.Commands.Descriptions
  - Hledger.Cli.Commands.Diff
  - Hledger.Cli.Commands.Help
  - Hledger.Cli.Commands.Files
  - Hledger.Cli.Commands.Import
  - Hledger.Cli.Commands.Incomestatement
  - Hledger.Cli.Commands.Notes
  - Hledger.Cli.Commands.Payees
  - Hledger.Cli.Commands.Prices
  - Hledger.Cli.Commands.Print
  - Hledger.Cli.Commands.Printunique
  - Hledger.Cli.Commands.Register
  - Hledger.Cli.Commands.Registermatch
  - Hledger.Cli.Commands.Rewrite
  - Hledger.Cli.Commands.Roi
  - Hledger.Cli.Commands.Stats
  - Hledger.Cli.Commands.Tags
  - Hledger.Cli.CompoundBalanceCommand
  dependencies:
  - Diff
  - hashable >=1.2.4
  - lucid

executables:
  hledger:
    source-dirs: app
    main: hledger-cli.hs
    cpp-options: -DVERSION="1.22.99"
    when:
    - condition: flag(threaded)
      ghc-options: -threaded
    dependencies:
    - hledger

tests:
  unittest:
    source-dirs: test
    main: unittest.hs
    other-modules: []  # prevent double compilation, https://github.com/sol/hpack/issues/188
    cpp-options: -DVERSION="1.22.99"
    dependencies:
    - hledger

benchmarks:
  bench:
    buildable: false
    source-dirs: bench
    main: bench.hs
    other-modules: []  # prevent double compilation, https://github.com/sol/hpack/issues/188
    dependencies:
    - hledger
    - criterion
    - html
