aboutsummaryrefslogtreecommitdiff
path: root/haddock.cabal
blob: 2c102bc0db6e6fb1429f00135f8bd90020816bb2 (plain) (blame)
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
name:                 haddock
version:              2.13.2
synopsis:             A documentation-generation tool for Haskell libraries
description:          Haddock is a documentation-generation tool for Haskell
                      libraries
license:              BSD3
license-file:         LICENSE
author:               Simon Marlow, David Waern
maintainer:           David Waern <david.waern@gmail.com>
homepage:             http://www.haskell.org/haddock/
bug-reports:          http://trac.haskell.org/haddock
copyright:            (c) Simon Marlow, David Waern
category:             Documentation
build-type:           Simple
cabal-version:        >= 1.10
stability:            experimental

extra-source-files:
  CHANGES
  README
  doc/Makefile
  doc/README
  doc/aclocal.m4
  doc/config.mk.in
  doc/configure.ac
  doc/docbook-xml.mk
  doc/fptools.css
  doc/haddock.xml
  haddock.spec
  haskell.vim
  src/haddock.sh
  html-test/src/*.hs
  html-test/ref/*.html

data-dir:   resources
data-files: html/frames.html
            html/haddock-util.js
            html/Classic.theme/haskell_icon.gif
            html/Classic.theme/minus.gif
            html/Classic.theme/plus.gif
            html/Classic.theme/xhaddock.css
            html/Ocean.std-theme/hslogo-16.png
            html/Ocean.std-theme/minus.gif
            html/Ocean.std-theme/ocean.css
            html/Ocean.std-theme/plus.gif
            html/Ocean.std-theme/synopsis.png
            latex/haddock.sty

flag in-ghc-tree
  description: Are we in a GHC tree?
  default: False
  manual: True

-- Using this disables -O2, and hence allows to use --disable-optimization,
-- which is about twice as fast.  This should probably be the default, but we
-- need some benchmarks first..
flag dev
  default: False
  manual: True

executable haddock
  default-language:     Haskell2010
  main-is:              Main.hs
  hs-source-dirs:       driver

  if flag(dev)
    ghc-options:          -funbox-strict-fields -Wall -fwarn-tabs
  else
    ghc-options:          -funbox-strict-fields -Wall -fwarn-tabs -O2

  build-depends:
    base >= 4.3 && < 4.7
  if flag(in-ghc-tree)
    hs-source-dirs: src
    cpp-options: -DIN_GHC_TREE
    build-depends:
      filepath,
      directory,
      containers,
      deepseq,
      array,
      xhtml >= 3000.2 && < 3000.3,
      Cabal >= 1.10,
      ghc == 7.6.*
    other-modules:
      Documentation.Haddock
      Haddock
      Haddock.Interface
      Haddock.Interface.Rename
      Haddock.Interface.Create
      Haddock.Interface.AttachInstances
      Haddock.Interface.LexParseRn
      Haddock.Interface.ParseModuleHeader
      Haddock.Lex
      Haddock.Parse
      Haddock.Utils
      Haddock.Backends.Xhtml
      Haddock.Backends.Xhtml.Decl
      Haddock.Backends.Xhtml.DocMarkup
      Haddock.Backends.Xhtml.Layout
      Haddock.Backends.Xhtml.Names
      Haddock.Backends.Xhtml.Themes
      Haddock.Backends.Xhtml.Types
      Haddock.Backends.Xhtml.Utils
      Haddock.Backends.LaTeX
      Haddock.Backends.HaddockDB
      Haddock.Backends.Hoogle
      Haddock.ModuleTree
      Haddock.Types
      Haddock.Doc
      Haddock.Version
      Haddock.InterfaceFile
      Haddock.Options
      Haddock.GhcUtils
      Haddock.Convert
  else
    build-depends:  haddock

library
  default-language:     Haskell2010
  -- In a GHC tree - in particular, in a source tarball - we don't
  -- require alex or happy
  if !flag(in-ghc-tree)
    build-tools: alex >= 2.3, happy >= 1.18
  build-depends:
    base >= 4.3 && < 4.7,
    filepath,
    directory,
    containers,
    deepseq,
    array,
    xhtml >= 3000.2 && < 3000.3,
    Cabal >= 1.10,
    ghc == 7.6.*

  if flag(in-ghc-tree)
    cpp-options: -DIN_GHC_TREE
  else
    build-depends: ghc-paths

  hs-source-dirs:       src
  if flag(dev)
    ghc-options:          -funbox-strict-fields -Wall -fwarn-tabs
  else
    ghc-options:          -funbox-strict-fields -Wall -fwarn-tabs -O2

  exposed-modules:
    Documentation.Haddock

  other-modules:
    Haddock
    Haddock.Interface
    Haddock.Interface.Rename
    Haddock.Interface.Create
    Haddock.Interface.AttachInstances
    Haddock.Interface.LexParseRn
    Haddock.Interface.ParseModuleHeader
    Haddock.Lex
    Haddock.Parse
    Haddock.Utils
    Haddock.Backends.Xhtml
    Haddock.Backends.Xhtml.Decl
    Haddock.Backends.Xhtml.DocMarkup
    Haddock.Backends.Xhtml.Layout
    Haddock.Backends.Xhtml.Names
    Haddock.Backends.Xhtml.Themes
    Haddock.Backends.Xhtml.Types
    Haddock.Backends.Xhtml.Utils
    Haddock.Backends.LaTeX
    Haddock.Backends.HaddockDB
    Haddock.Backends.Hoogle
    Haddock.ModuleTree
    Haddock.Types
    Haddock.Doc
    Haddock.Version
    Haddock.InterfaceFile
    Haddock.Options
    Haddock.GhcUtils
    Haddock.Convert
    Paths_haddock

  if flag(in-ghc-tree)
    buildable: False

test-suite html-test
  type:             exitcode-stdio-1.0
  default-language: Haskell2010
  main-is:          run.lhs
  hs-source-dirs:   html-test
  build-depends:    base, directory, process, filepath, Cabal

test-suite spec
  type:             exitcode-stdio-1.0
  default-language: Haskell2010
  main-is:          Spec.hs
  hs-source-dirs:
      test
    , test/nanospec
    , src

  other-modules:
      Test.Hspec
      Haddock.ParseSpec

  build-depends:
      base
    , ghc
    , containers
    , deepseq
    , array

  -- NOTE: As of this writing, Cabal does not properly handle alex/happy for
  -- test suites.  We work around this by adding dist/build to hs-source-dirs,
  -- so that the the generated lexer/parser from the library is used.  In
  -- addition we depend on 'haddock', so that the library is compiled before
  -- the test suite.
  --
  -- The corresponding cabal ticket is here:
  -- https://github.com/haskell/cabal/issues/943
  hs-source-dirs:
      dist/build
  build-depends:
      haddock

source-repository head
  type:     git
  location: http://darcs.haskell.org/haddock.git