packages feed

haskeline-0.8.3.0: haskeline.cabal

Name:           haskeline
Cabal-Version:  >=1.10
Version:        0.8.3.0
Category:       User Interfaces
License:        BSD3
License-File:   LICENSE
Copyright:      (c) Judah Jacobson
Author:         Judah Jacobson
Maintainer:     Troels Henriksen <athas@sigkill.dk>
Synopsis:       A command-line interface for user input, written in Haskell.
Description:
                Haskeline provides a user interface for line input in command-line
                programs.  This library is similar in purpose to readline, but since
                it is written in Haskell it is (hopefully) more easily used in other
                Haskell programs.
                .
                Haskeline runs both on POSIX-compatible systems and on Windows.
Homepage:       https://github.com/haskell/haskeline
Bug-Reports:    https://github.com/haskell/haskeline/issues
Stability:      Stable
Build-Type:     Simple

tested-with:
  GHC == 9.10.1
  GHC == 9.8.2
  GHC == 9.6.5
  GHC == 9.4.8
  GHC == 9.2.8
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4
  GHC == 8.2.2
  GHC == 8.0.2

extra-source-files: examples/Test.hs Changelog includes/*.h

source-repository head
    type: git
    location: https://github.com/judah/haskeline.git

-- There are three main advantages to the terminfo backend over the portable,
-- "dumb" alternative.  First, it enables more efficient control sequences
-- when redrawing the input.  Second, and more importantly, it enables us
-- to draw on multiple lines, so we can wrap long input strings.  And third,
-- the backend adds some extra key sequences such as forwards delete.
--
-- (The "dumb" terminal also allows editing of long input strings, but is
-- restricted to only one line and thus only shows part of the input at once.)
flag terminfo
    Description: Use the terminfo package for POSIX consoles.
    Default: True
    Manual: True

-- Help the GHC build by making it possible to disable the extra binary.
-- TODO: Make GHC handle packages with both a library and an executable.
flag examples
    Description: Enable executable components used for tests.
    Default: True
    Manual: True

Library
    Build-depends:
        base         >= 4.9 && < 4.21
      , containers   >= 0.4 && < 0.8
      , directory    >= 1.1 && < 1.4
      , bytestring   >= 0.9 && < 0.13
      , filepath     >= 1.2 && < 1.6
      , transformers >= 0.2 && < 0.7
      , process      >= 1.0 && < 1.7
      , stm          >= 2.4 && < 2.6
      , exceptions   == 0.10.*
    Default-Language: Haskell98
    Default-Extensions:
                ForeignFunctionInterface, Rank2Types, FlexibleInstances,
                TypeSynonymInstances
                FlexibleContexts, ExistentialQuantification
                ScopedTypeVariables, GeneralizedNewtypeDeriving
                StandaloneDeriving
                MultiParamTypeClasses,
                UndecidableInstances
                ScopedTypeVariables, CPP, DeriveDataTypeable,
                PatternGuards
    Exposed-Modules:
                System.Console.Haskeline
                System.Console.Haskeline.Completion
                System.Console.Haskeline.History
                System.Console.Haskeline.IO
                System.Console.Haskeline.Internal
    Other-Modules:
                System.Console.Haskeline.Backend
                System.Console.Haskeline.Backend.WCWidth
                System.Console.Haskeline.Command
                System.Console.Haskeline.Command.Completion
                System.Console.Haskeline.Command.History
                System.Console.Haskeline.Command.KillRing
                System.Console.Haskeline.Directory
                System.Console.Haskeline.Emacs
                System.Console.Haskeline.InputT
                System.Console.Haskeline.Key
                System.Console.Haskeline.LineState
                System.Console.Haskeline.Monads
                System.Console.Haskeline.Prefs
                System.Console.Haskeline.Recover
                System.Console.Haskeline.RunCommand
                System.Console.Haskeline.Term
                System.Console.Haskeline.Command.Undo
                System.Console.Haskeline.Vi
    include-dirs: includes
    c-sources: cbits/h_wcwidth.c

    if os(windows)
        Build-depends: Win32 >= 2.1 && < 2.10 || >= 2.12
        Other-modules: System.Console.Haskeline.Backend.Win32
                       System.Console.Haskeline.Backend.Win32.Echo
        c-sources: cbits/win_console.c
        includes: win_console.h, windows_cconv.h
        install-includes: win_console.h
        cpp-options: -DMINGW
    else
        Build-depends: unix>=2.0 && < 2.9
        Other-modules:
                System.Console.Haskeline.Backend.Posix
                System.Console.Haskeline.Backend.Posix.Encoder
                System.Console.Haskeline.Backend.DumbTerm
        if flag(terminfo) {
            Build-depends: terminfo>=0.3.1.3 && <0.5
            Other-modules: System.Console.Haskeline.Backend.Terminfo
            cpp-options: -DTERMINFO
        }
        if os(solaris) {
            cpp-options: -DUSE_TERMIOS_H
        }

    ghc-options: -Wall -Wcompat

test-suite haskeline-tests
    type: exitcode-stdio-1.0
    hs-source-dirs: tests
    Default-Language: Haskell98

    if os(windows) {
        buildable: False
    }
    if !flag(examples) {
        buildable: False
    }
    Main-Is:    Unit.hs
    Build-depends:
      -- shared dependencies with library
        base         >= 4.9 && < 4.21
      , containers   >= 0.4 && < 0.8
      , bytestring   >= 0.9 && < 0.13
      , process      >= 1.0 && < 1.7
      -- dependencies for test-suite
      , HUnit
      , text
      , unix         >= 2.0 && < 2.9

    Other-Modules: RunTTY, Pty
    build-tool-depends: haskeline:haskeline-examples-Test

-- The following program is used by unit tests in `tests` executable
Executable haskeline-examples-Test
    if !flag(examples) {
        buildable: False
    }
    Build-depends: base, containers, haskeline
    Default-Language: Haskell2010
    hs-source-dirs: examples
    Main-Is: Test.hs