draw table of pieces in curses edit mode
[intricacy.git] / intricacy.cabal
blob2d791770ec06158648e980c936480a574717dd3b
1 cabal-version:      >=1.10
2 name:               intricacy
3 version:            0.7.2.3
4 license:            GPL-3
5 license-file:       COPYING
6 maintainer:         mbays@sdf.org
7 author:             Martin Bays
8 homepage:           http://mbays.freeshell.org/intricacy
9 synopsis:           A game of competitive puzzle-design
10 description:
11     A networked game with client-server architecture. The core game is a
12     lockpicking-themed turn-based puzzle game on a hex grid. Players design
13     puzzles (locks) and solve those designed by others. A metagame encourages
14     the design of maximally difficult puzzles, within tight size constraints.
15     The client supports Curses and SDL, with all graphics in SDL mode drawn by
16     code using SDL-gfx. The network protocol is based on the 'binary' package,
17     and is intended to be reasonably efficient. TVars are used to give
18     transparent local caching and background network operations. Also
19     incorporates an implementation of a graph 5-colouring algorithm (see
20     GraphColouring.hs).
22 category:           Game
23 build-type:         Simple
24 data-files:
25     VeraMoBd.ttf
26     tutorial/*.lock
27     tutorial/*.text
28     initiation/initiation.map
29     initiation/*.lock
30     initiation/*.text
31     sounds/*.ogg
33 extra-source-files:
34     Main_stub.h
35     README
36     BUILD
37     NEWS
38     tutorial-extra/*.lock
39     tutorial-extra/README
41 source-repository head
42     type:     git
43     location: http://mbays.freeshell.org/intricacy/.git
45 flag game
46     description: Build game
47     manual:      True
49 flag sdl
50     description: Enable SDL UI
52 flag sound
53     description: Enable sound
55 flag curses
56     description: Enable Curses UI
58 flag server
59     description: Build server
60     default:     False
61     manual:      True
63 executable intricacy
64     main-is:          Intricacy.hs
65     other-modules:
66         AsciiLock
67         BinaryInstances
68         BoardColouring
69         Cache
70         Command
71         CVec
72         Database
73         EditGameState
74         Frame
75         GameState
76         GameStateTypes
77         GraphColouring
78         Hex
79         Init
80         InputMode
81         Interact
82         InteractUtil
83         KeyBindings
84         Lock
85         MainState
86         Maxlocksize
87         Metagame
88         Mundanities
89         Paths_intricacy
90         Physics
91         Protocol
92         ServerAddr
93         Util
94         Version
96     default-language: Haskell2010
98     if !flag(game)
99         buildable: False
101     else
102         default-extensions: DoAndIfThenElse
103         build-depends:
104             base >=4.3 && <5,
105             mtl >=2.1.3.1 && <2.3,
106             transformers >=0.3.0.0 && <0.6,
107             stm >=2.1 && <2.6,
108             directory >=1.0 && <1.4,
109             exceptions >=0.8.3 && <0.11,
110             filepath >=1.0 && <1.5,
111             time >=1.2 && <1.10,
112             bytestring ==0.10.*,
113             array >=0.3 && <0.6,
114             containers >=0.4 && <0.7,
115             vector >=0.9 && <0.13,
116             binary >=0.5 && <0.9,
117             network-fancy >=0.1.5 && <0.3,
118             cryptohash >=0.8 && <0.12,
119             safe >=0.2 && <0.4,
120             RSA >=2.0 && <2.5,
121             crypto-pubkey-types >=0.2 && <0.5,
122             crypto-api >=0.10 && <0.14
124         if !impl(ghc >=8.0)
125             build-depends: semigroups ==0.18.*
127         if flag(sdl)
128             build-depends:
129                 SDL >=0.6.5 && <0.7,
130                 SDL-ttf ==0.6.*,
131                 SDL-gfx >=0.6 && <0.8
133             if flag(sound)
134                 cpp-options:   -DSOUND
135                 build-depends:
136                     SDL-mixer ==0.6.*,
137                     random >=1.0 && <1.2
139             if os(windows)
140                 extra-libraries:
141                     SDL_ttf
142                     SDL
143                     SDL_gfx
144                     freetype
146                 ghc-options:     -optl-mwindows
148                 if flag(sound)
149                     extra-libraries: SDL_mixer
151             if os(osx)
152                 cpp-options:   -DAPPLE
153                 c-sources:     c_main.c
154                 include-dirs:  /usr/include/SDL /usr/local/include/SDL
155                 ghc-options:   -no-hs-main
156                 build-depends: network-fancy <0.2.1
158         if flag(curses)
159             cpp-options:   -DMAIN_CURSES
160             other-modules:
161                 CursesRender
162                 CursesUI
163                 CursesUIMInstance
165             build-depends: hscurses ==1.4.*
166             pkgconfig-depends: ncursesw
168         if flag(sdl)
169             cpp-options:   -DMAIN_SDL
170             other-modules:
171                 SDLGlyph
172                 SDLRender
173                 SDLUI
174                 SDLUIMInstance
176         if (!flag(sdl) && !flag(curses))
177             buildable:     False
178             build-depends: base <0
180 executable intricacy-server
181     main-is:          Server.hs
182     other-modules:
183         AsciiLock
184         BinaryInstances
185         BoardColouring
186         CVec
187         Database
188         Frame
189         GameState
190         GameStateTypes
191         GraphColouring
192         Hex
193         Lock
194         Maxlocksize
195         Metagame
196         Mundanities
197         Paths_intricacy
198         Physics
199         Protocol
200         Util
201         Version
203     default-language: Haskell2010
205     if flag(server)
206         default-extensions: DoAndIfThenElse
207         build-depends:
208             base >=4.3 && <5,
209             mtl >=2.2 && <2.3,
210             transformers >=0.4 && <0.6,
211             stm >=2.1 && <2.6,
212             directory >=1.0 && <1.4,
213             exceptions >=0.8.3 && <0.11,
214             filepath >=1.0 && <1.5,
215             time >=1.5 && <1.10,
216             bytestring ==0.10.*,
217             array >=0.3 && <0.6,
218             containers >=0.4 && <0.7,
219             vector >=0.9 && <0.13,
220             binary >=0.5 && <0.9,
221             network-fancy >=0.1.5 && <0.3,
222             cryptohash >=0.8 && <0.12,
223             RSA >=2.0 && <2.5,
224             crypto-pubkey-types >=0.2 && <0.5,
225             crypto-api >=0.10 && <0.14,
226             random >=1.0 && <1.3,
227             pipes >=4 && <4.4,
228             feed >=1.1 && <1.4,
229             xml-conduit >=1.0 && < 1.10,
230             email-validate >=1.0 && <2.4,
231             text >=0.1 && < 1.3,
232             text-short ==0.1.*,
233             mime-mail >=0.4.4 && < 0.6,
234             smtp-mail >=0.1.4.1 && < 0.4,
235             argon2 ==1.3.*
237         if !impl(ghc >=8.0)
238             build-depends: semigroups ==0.18.*
240     else
241         buildable: False