forked from haskell/haskeline
-
Notifications
You must be signed in to change notification settings - Fork 0
/
haskeline.cabal
132 lines (126 loc) · 5.46 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
Name: haskeline
Cabal-Version: >=1.10
Version: 0.7.2.2
Category: User Interfaces
License: BSD3
License-File: LICENSE
Copyright: (c) Judah Jacobson
Author: Judah Jacobson
Maintainer: Judah Jacobson <[email protected]>
Category: User Interfaces
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: http://trac.haskell.org/haskeline
Stability: Experimental
Build-Type: Custom
extra-source-files: examples/Test.hs Changelog
source-repository head
type: git
location: git://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
-- Note that the Setup script checks whether -liconv is necessary. This flag
-- lets us override that decision. When it is True, we use -liconv. When it
-- is False, we run tests to decide.
flag libiconv
Description: Explicitly link against the libiconv library.
Default: False
flag legacy-encoding
Description: Use the legacy iconv encoding for POSIX, even on ghc>=7.4.1.
(Intended for testing only.)
Default: False
Library
Build-depends: base >=4.3 && < 4.10, containers>=0.4 && < 0.6,
directory>=1.1 && < 1.3, bytestring>=0.9 && < 0.11,
filepath >= 1.2 && < 1.5, transformers >= 0.2 && < 0.6
Default-Language: Haskell98
Default-Extensions:
ForeignFunctionInterface, Rank2Types, FlexibleInstances,
TypeSynonymInstances
FlexibleContexts, ExistentialQuantification
ScopedTypeVariables, GeneralizedNewtypeDeriving
MultiParamTypeClasses, OverlappingInstances
UndecidableInstances
ScopedTypeVariables, CPP, DeriveDataTypeable,
PatternGuards
Exposed-Modules:
System.Console.Haskeline
System.Console.Haskeline.Completion
System.Console.Haskeline.MonadException
System.Console.Haskeline.History
System.Console.Haskeline.IO
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.RunCommand
System.Console.Haskeline.Term
System.Console.Haskeline.Command.Undo
System.Console.Haskeline.Vi
include-dirs: includes
c-sources: cbits/h_wcwidth.c
-- We require ghc>=7.4.1 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
if !flag(legacy-encoding) && impl(ghc>=7.4) {
cpp-options: -DUSE_GHC_ENCODINGS
Other-modules: System.Console.Haskeline.Recover
} else {
Build-depends: utf8-string==0.3.* && >=0.3.6
}
if os(windows) {
Build-depends: Win32>=2.0
Other-modules: System.Console.Haskeline.Backend.Win32
c-sources: cbits/win_console.c
includes: win_console.h
install-includes: win_console.h
cpp-options: -DMINGW
} else {
Build-depends: unix>=2.0 && < 2.8
-- unix-2.3 doesn't build on ghc-6.8.1 or earlier
-- Use manual encoding/decoding on ghc<7.4
if flag (legacy-encoding) || impl(ghc<7.4) {
c-sources: cbits/h_iconv.c
includes: h_iconv.h
install-includes: h_iconv.h
Other-modules: System.Console.Haskeline.Backend.Posix.IConv
}
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