add extra guidance in first tut level
[intricacy.git] / intricacy.cabal
blob69ef9c483228a97d740ddddb97a94f0cadc08cda
1 cabal-version:      >=1.10
2 name:               intricacy
3 version:            0.8.0.1
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 lockpicking-themed turn-based puzzle game on a hex grid. A series of
12     preset puzzles serves as an extended single-player introduction, after
13     which players enter a multi-player game with a client-server architecture,
14     in which players design puzzles (locks) and solve those designed by
15     others. A metagame encourages the design of maximally difficult puzzles,
16     within tight size constraints. The client supports Curses and SDL, with
17     all graphics in SDL mode drawn by code using SDL-gfx. The network protocol
18     is based on the 'binary' package, and is intended to be reasonably
19     efficient. TVars are used to give transparent local caching and background
20     network operations. Also incorporates an implementation of a graph
21     5-colouring algorithm (see GraphColouring.hs).
23 category:           Game
24 build-type:         Simple
25 data-files:
26     VeraMoBd.ttf
27     tutorial/*.lock
28     tutorial/*.text
29     initiation/initiation.map
30     initiation/*.lock
31     initiation/*.text
32     sounds/*.ogg
34 extra-source-files:
35     Main_stub.h
36     README
37     BUILD
38     NEWS
39     tutorial-extra/*.lock
40     tutorial-extra/README
42 source-repository head
43     type:     git
44     location: http://mbays.freeshell.org/intricacy/.git
46 flag game
47     description: Build game
48     manual:      True
50 flag sdl
51     description: Enable SDL UI
53 flag sound
54     description: Enable sound
56 flag curses
57     description: Enable Curses UI
59 flag server
60     description: Build server
61     default:     False
62     manual:      True
64 executable intricacy
65     main-is:          Intricacy.hs
66     other-modules:
67         AsciiLock
68         BinaryInstances
69         BoardColouring
70         Cache
71         Command
72         CVec
73         Database
74         EditGameState
75         Frame
76         GameState
77         GameStateTypes
78         GraphColouring
79         Hex
80         Init
81         InputMode
82         Interact
83         InteractUtil
84         KeyBindings
85         Lock
86         MainState
87         Maxlocksize
88         Metagame
89         Mundanities
90         Paths_intricacy
91         Physics
92         Protocol
93         ServerAddr
94         Util
95         Version
97     default-language: Haskell2010
99     if !flag(game)
100         buildable: False
102     else
103         default-extensions: DoAndIfThenElse
104         build-depends:
105             base >=4.3 && <5,
106             mtl >=2.1.3.1 && <2.3,
107             transformers >=0.3.0.0 && <0.7,
108             stm >=2.1 && <2.6,
109             directory >=1.0 && <1.4,
110             exceptions >=0.8.3 && <0.11,
111             filepath >=1.0 && <1.5,
112             time >=1.2 && <1.13,
113             bytestring >=0.10 && <0.12,
114             array >=0.3 && <0.6,
115             containers >=0.4 && <0.7,
116             vector >=0.9 && <0.13,
117             binary >=0.5 && <0.11,
118             network-simple >=0.3 && <0.5,
119             safe >=0.3.18 && <0.4,
120             memory >=0.11 && <0.17,
121             cryptonite >=0.16 && <0.30
123         if !impl(ghc >=8.0)
124             build-depends: semigroups ==0.18.*
126         if flag(sdl)
127             build-depends:
128                 SDL >=0.6.5 && <0.7,
129                 SDL-ttf ==0.6.*,
130                 SDL-gfx >=0.6 && <0.8
132             if flag(sound)
133                 cpp-options:   -DSOUND
134                 build-depends:
135                     SDL-mixer ==0.6.*,
136                     random >=1.0 && <1.3
138             if os(windows)
139                 extra-libraries:
140                     SDL_ttf
141                     SDL
142                     SDL_gfx
143                     freetype
145                 ghc-options:     -optl-mwindows
147                 if flag(sound)
148                     extra-libraries: SDL_mixer
150             if os(osx)
151                 cpp-options:  -DAPPLE
152                 c-sources:    c_main.c
153                 include-dirs: /usr/include/SDL /usr/local/include/SDL
154                 ghc-options:  -no-hs-main
156         if flag(curses)
157             cpp-options:       -DMAIN_CURSES
158             pkgconfig-depends: ncursesw -any
159             other-modules:
160                 CursesRender
161                 CursesUI
162                 CursesUIMInstance
164             build-depends:     hscurses ==1.4.*
166         if flag(sdl)
167             cpp-options:   -DMAIN_SDL
168             other-modules:
169                 SDLGlyph
170                 SDLRender
171                 SDLUI
172                 SDLUIMInstance
174         if (!flag(sdl) && !flag(curses))
175             buildable:     False
176             build-depends: base <0
178 executable intricacy-server
179     main-is:          Server.hs
180     other-modules:
181         AsciiLock
182         BinaryInstances
183         BoardColouring
184         CVec
185         Database
186         Frame
187         GameState
188         GameStateTypes
189         GraphColouring
190         Hex
191         Lock
192         Maxlocksize
193         Metagame
194         Mundanities
195         Paths_intricacy
196         Physics
197         Protocol
198         Util
199         Version
201     default-language: Haskell2010
203     if flag(server)
204         default-extensions: DoAndIfThenElse
205         build-depends:
206             base >=4.3 && <5,
207             mtl >=2.2 && <2.3,
208             transformers >=0.4 && <0.7,
209             stm >=2.1 && <2.6,
210             directory >=1.0 && <1.4,
211             exceptions >=0.8.3 && <0.11,
212             filepath >=1.0 && <1.5,
213             time >=1.5 && <1.14,
214             bytestring >=0.10 && <0.12,
215             array >=0.3 && <0.6,
216             containers >=0.4 && <0.7,
217             vector >=0.9 && <0.13,
218             binary >=0.5 && <0.11,
219             network-fancy >=0.1.5 && <0.3,
220             safe >=0.3.18 && <0.4,
221             random >=1.0 && <1.3,
222             pipes >=4 && <4.4,
223             feed >=1.1 && <1.4,
224             xml-conduit >=1.0 && <1.10,
225             email-validate >=1.0 && <2.4,
226             text >=0.1 && <1.3,
227             text-short ==0.1.*,
228             mime-mail >=0.4.4 && <0.6,
229             smtp-mail >=0.1.4.1 && <0.4,
230             memory >=0.11 && <0.17,
231             cryptonite >=0.16 && <0.30,
232             argon2 ==1.3.*
234         if !impl(ghc >=8.0)
235             build-depends: semigroups ==0.18.*
237     else
238         buildable: False