-
Notifications
You must be signed in to change notification settings - Fork 75
/
haskeline.cabal
160 lines (149 loc) · 5.87 KB
/
haskeline.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
Name: haskeline
Cabal-Version: >=1.10
Version: 0.8.2.1
Category: User Interfaces
License: BSD3
License-File: LICENSE
Copyright: (c) Judah Jacobson
Author: Judah Jacobson
Maintainer: Judah Jacobson <judah.jacobson@gmail.com>
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/judah/haskeline
Bug-Reports: https://github.com/judah/haskeline/issues
Stability: Stable
Build-Type: Simple
tested-with:
GHC == 9.8.0
GHC == 9.6.3
GHC == 9.4.7
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
-- We require ghc>=7.4.1 (base>=4.5) to use the base library encodings, even
-- though it was implemented in earlier releases, due to GHC bug #5436 which
-- wasn't fixed until 7.4.1
Build-depends: base >=4.9 && < 4.20, 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.0
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: base, containers, text, bytestring, HUnit, process, unix
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