prepare to make cache size runtime settable
[ruff:gruff.git] / gruff.cabal
1 Name:                gruff
2 Version:             0.2
3 Synopsis:            fractal explorer GUI using the ruff library
4 Description:
5     Currently allows exploration only of the Mandelbrot Set fractal.
6     Requires GTK, OpenGL, and GLSL fragment shader support.
7     .
8     Features in this version include:
9     .
10       * Interactive fractal browser display (left click to zoom in,
11         right click to zoom out, middle-click to center).
12     .
13       * Session persistance (stored in ~/.gruff/state.gruff - states can
14         also be loaded from and saved to other files).
15     .
16       * Tile cache (by default in ~/.gruff/cache - symlink it somewhere
17         with a few GB of space if you plan on exploring a lot).
18     .
19       * High-level feature finding using angled internal addresses
20         (enter an address, for example @1 2 3 1/3 10@, and hit return,
21         then click the address to coordinates button).
22     .
23       * Feature finding using period location (navigate to approximate
24         location of the desired feature, click the period scan button).
25     .
26       * Cache view (refreshed on program start) to visualize visited
27         locations.
28     .
29       * Uses MPFR where available for higher precision, allowing deeper
30         zooms and locating high period nucleii.
31     .
32       * Limited amount of customizable colouring (hue shift, hue scale).
33     .
34     Future features might include image saving, external ray and nucleus
35     period overlays, more feature finding and identification algorithms...
36
37 License:             GPL-2
38 License-file:        LICENSE
39 Author:              Claude Heiland-Allen
40 Maintainer:          claudiusmaximus@goto10.org
41 Category:            Graphics
42
43 Build-type:          Simple
44 Cabal-version:       >=1.4
45
46 Data-files:          icon.png, colourize.frag, cache.frag, merge.frag
47
48 Flag mpfr
49   description: use MPFR for higher precision floating point
50   default: True
51
52 Executable gruff
53   Main-is:            gruff.hs
54   Other-modules:      Browser
55                       CacheView
56                       GLUTGtk
57                       Logger
58                       Number
59                       QuadTree
60                       Shader
61                       StatusDialog
62                       Tile
63                       Utils
64   Build-depends:      base >= 4 && < 5,
65                       containers >= 0 && < 1,
66                       directory >= 1 && < 2,
67                       filepath >= 1 && < 2,
68                       gtk >= 0.11 && < 0.13,
69                       gtkglext >= 0.11 && < 0.13,
70                       old-locale >= 1 && < 2,
71                       OpenGL >= 2.4 && < 3,
72                       OpenGLRaw >= 1.1 && < 2,
73                       parallel >= 3.1 && < 3.2,
74                       qd >= 1 && < 2,
75                       qd-vec >= 1 && < 2,
76                       time >= 1 && < 2,
77                       Vec >= 0.9 && < 1,
78                       ruff >= 0.2 && < 0.3,
79                       bytestring,
80                       mtl
81   if (flag(mpfr))
82     Build-depends:    hmpfr >= 0.3.2 && < 0.4
83     CPP-options:      -DHAVE_MPFR
84     CC-options:       -DHAVE_MPFR
85   C-sources:          compute.cc, rts.c
86   CC-options:         -O3 -Wall -pedantic -Wextra
87   GHC-options:        -O2 -Wall -threaded -rtsopts
88   GHC-Prof-Options:   -prof -auto-all -caf-all