Fix header locations
[ghc.git] / compiler / ghc.cabal.in
1 -- WARNING: ghc.cabal is automatically generated from ghc.cabal.in by
2 -- ./configure.  Make sure you are editing ghc.cabal.in, not ghc.cabal.
3
4 Name: ghc
5 Version: @ProjectVersionMunged@
6 License: BSD3
7 License-File: LICENSE
8 Author: The GHC Team
9 Maintainer: glasgow-haskell-users@haskell.org
10 Homepage: http://www.haskell.org/ghc/
11 Synopsis: The GHC API
12 Description:
13     GHC's functionality can be useful for more things than just
14     compiling Haskell programs. Important use cases are programs
15     that analyse (and perhaps transform) Haskell code. Others
16     include loading Haskell code dynamically in a GHCi-like manner.
17     For this reason, a lot of GHC's functionality is made available
18     through this package.
19 Category: Development
20 Build-Type: Simple
21 Cabal-Version: >=1.10
22
23 extra-source-files:
24     utils/md5.h
25     Unique.h
26     nativeGen/NCG.h
27     parser/cutils.h
28
29 Flag ghci
30     Description: Build GHCi support.
31     Default: False
32     Manual: True
33
34 Flag terminfo
35     Description: Build GHC with terminfo support on non-Windows platforms.
36     Default: True
37     Manual: True
38
39 Library
40     Default-Language: Haskell2010
41     Exposed: False
42
43     Build-Depends: base       >= 4.9 && < 5,
44                    deepseq    >= 1.4 && < 1.5,
45                    directory  >= 1   && < 1.4,
46                    process    >= 1   && < 1.7,
47                    bytestring >= 0.9 && < 0.11,
48                    binary     == 0.8.*,
49                    time       >= 1.4 && < 1.9,
50                    containers >= 0.5 && < 0.7,
51                    array      >= 0.1 && < 0.6,
52                    filepath   >= 1   && < 1.5,
53                    template-haskell == 2.14.*,
54                    hpc        == 0.6.*,
55                    transformers == 0.5.*,
56                    ghc-boot   == @ProjectVersionMunged@,
57                    ghc-boot-th == @ProjectVersionMunged@,
58                    ghc-heap   == @ProjectVersionMunged@,
59                    ghci == @ProjectVersionMunged@
60
61     if os(windows)
62         Build-Depends: Win32  >= 2.3 && < 2.7
63     else
64         if flag(terminfo)
65             Build-Depends: terminfo == 0.4.*
66         Build-Depends: unix   >= 2.7 && < 2.9
67
68     GHC-Options: -Wall
69                  -Wno-name-shadowing
70                  -Wnoncanonical-monad-instances
71                  -Wnoncanonical-monadfail-instances
72                  -Wnoncanonical-monoid-instances
73
74     if flag(ghci)
75         CPP-Options: -DGHCI
76         Include-Dirs: ../rts/dist/build @FFIIncludeDir@
77
78     Other-Extensions:
79         BangPatterns
80         CPP
81         DataKinds
82         DeriveDataTypeable
83         DeriveFoldable
84         DeriveFunctor
85         DeriveTraversable
86         DisambiguateRecordFields
87         ExplicitForAll
88         FlexibleContexts
89         FlexibleInstances
90         GADTs
91         GeneralizedNewtypeDeriving
92         MagicHash
93         MultiParamTypeClasses
94         NamedFieldPuns
95         NondecreasingIndentation
96         RankNTypes
97         RecordWildCards
98         ScopedTypeVariables
99         StandaloneDeriving
100         Trustworthy
101         TupleSections
102         TypeFamilies
103         TypeSynonymInstances
104         UnboxedTuples
105         UndecidableInstances
106
107     Include-Dirs: . parser utils
108
109     -- We need to set the unit id to ghc (without a version number)
110     -- as it's magic.
111     GHC-Options: -this-unit-id ghc
112
113     c-sources:
114         parser/cutils.c
115         ghci/keepCAFsForGHCi.c
116         cbits/genSym.c
117
118     hs-source-dirs:
119         backpack
120         basicTypes
121         cmm
122         codeGen
123         coreSyn
124         deSugar
125         ghci
126         hsSyn
127         iface
128         llvmGen
129         main
130         nativeGen
131         parser
132         prelude
133         profiling
134         rename
135         simplCore
136         simplStg
137         specialise
138         stgSyn
139         stranal
140         typecheck
141         types
142         utils
143
144     -- we use an explicit Prelude
145     Default-Extensions:
146         NoImplicitPrelude
147
148     Other-Modules:
149         GhcPrelude
150
151     Exposed-Modules:
152         Ar
153         FileCleanup
154         DriverBkp
155         BkpSyn
156         NameShape
157         RnModIface
158         Avail
159         AsmUtils
160         BasicTypes
161         ConLike
162         DataCon
163         PatSyn
164         Demand
165         Debug
166         Exception
167         FieldLabel
168         GhcMonad
169         Hooks
170         Id
171         IdInfo
172         Lexeme
173         Literal
174         Llvm
175         Llvm.AbsSyn
176         Llvm.MetaData
177         Llvm.PpLlvm
178         Llvm.Types
179         LlvmCodeGen
180         LlvmCodeGen.Base
181         LlvmCodeGen.CodeGen
182         LlvmCodeGen.Data
183         LlvmCodeGen.Ppr
184         LlvmCodeGen.Regs
185         LlvmMangler
186         MkId
187         Module
188         Name
189         NameEnv
190         NameSet
191         OccName
192         RdrName
193         NameCache
194         SrcLoc
195         UniqSupply
196         Unique
197         Var
198         VarEnv
199         VarSet
200         UnVarGraph
201         BlockId
202         CLabel
203         Cmm
204         CmmBuildInfoTables
205         CmmPipeline
206         CmmCallConv
207         CmmCommonBlockElim
208         CmmImplementSwitchPlans
209         CmmContFlowOpt
210         CmmExpr
211         CmmInfo
212         CmmLex
213         CmmLint
214         CmmLive
215         CmmMachOp
216         CmmMonad
217         CmmSwitch
218         CmmNode
219         CmmOpt
220         CmmParse
221         CmmProcPoint
222         CmmSink
223         CmmType
224         CmmUtils
225         CmmLayoutStack
226         EnumSet
227         MkGraph
228         PprBase
229         PprC
230         PprCmm
231         PprCmmDecl
232         PprCmmExpr
233         Bitmap
234         CodeGen.Platform
235         CodeGen.Platform.ARM
236         CodeGen.Platform.ARM64
237         CodeGen.Platform.NoRegs
238         CodeGen.Platform.PPC
239         CodeGen.Platform.PPC_Darwin
240         CodeGen.Platform.SPARC
241         CodeGen.Platform.X86
242         CodeGen.Platform.X86_64
243         CgUtils
244         StgCmm
245         StgCmmBind
246         StgCmmClosure
247         StgCmmCon
248         StgCmmEnv
249         StgCmmExpr
250         StgCmmForeign
251         StgCmmHeap
252         StgCmmHpc
253         StgCmmArgRep
254         StgCmmLayout
255         StgCmmMonad
256         StgCmmPrim
257         StgCmmProf
258         StgCmmTicky
259         StgCmmUtils
260         StgCmmExtCode
261         SMRep
262         CoreArity
263         CoreFVs
264         CoreLint
265         CorePrep
266         CoreSubst
267         CoreOpt
268         CoreSyn
269         TrieMap
270         CoreTidy
271         CoreUnfold
272         CoreUtils
273         CoreMap
274         CoreSeq
275         CoreStats
276         MkCore
277         PprCore
278         PmExpr
279         TmOracle
280         Check
281         Coverage
282         Desugar
283         DsArrows
284         DsBinds
285         DsCCall
286         DsExpr
287         DsForeign
288         DsGRHSs
289         DsListComp
290         DsMonad
291         DsUsage
292         DsUtils
293         ExtractDocs
294         Match
295         MatchCon
296         MatchLit
297         HsBinds
298         HsDecls
299         HsDoc
300         HsExpr
301         HsImpExp
302         HsLit
303         PlaceHolder
304         HsExtension
305         HsInstances
306         HsPat
307         HsSyn
308         HsTypes
309         HsUtils
310         HsDumpAst
311         BinIface
312         BinFingerprint
313         BuildTyCl
314         IfaceEnv
315         IfaceSyn
316         IfaceType
317         ToIface
318         LoadIface
319         MkIface
320         TcIface
321         FlagChecker
322         Annotations
323         CmdLineParser
324         CodeOutput
325         Config
326         Constants
327         DriverMkDepend
328         DriverPhases
329         PipelineMonad
330         DriverPipeline
331         DynFlags
332         ErrUtils
333         Finder
334         GHC
335         GhcMake
336         GhcPlugins
337         DynamicLoading
338         HeaderInfo
339         HscMain
340         HscStats
341         HscTypes
342         InteractiveEval
343         InteractiveEvalTypes
344         PackageConfig
345         Packages
346         PlatformConstants
347         Plugins
348         TcPluginM
349         PprTyThing
350         StaticPtrTable
351         SysTools
352         SysTools.BaseDir
353         SysTools.Terminal
354         SysTools.ExtraObj
355         SysTools.Info
356         SysTools.Process
357         SysTools.Tasks
358         Elf
359         TidyPgm
360         Ctype
361         HaddockUtils
362         Lexer
363         OptCoercion
364         Parser
365         RdrHsSyn
366         ApiAnnotation
367         ForeignCall
368         KnownUniques
369         PrelInfo
370         PrelNames
371         PrelRules
372         PrimOp
373         TysPrim
374         TysWiredIn
375         CostCentre
376         CostCentreState
377         ProfInit
378         RnBinds
379         RnEnv
380         RnExpr
381         RnHsDoc
382         RnNames
383         RnPat
384         RnSource
385         RnSplice
386         RnTypes
387         RnFixity
388         RnUtils
389         RnUnbound
390         CoreMonad
391         CSE
392         FloatIn
393         FloatOut
394         LiberateCase
395         OccurAnal
396         SAT
397         SetLevels
398         SimplCore
399         SimplEnv
400         SimplMonad
401         SimplUtils
402         Simplify
403         SimplStg
404         StgStats
405         StgCse
406         UnariseStg
407         RepType
408         Rules
409         SpecConstr
410         Specialise
411         CoreToStg
412         StgLint
413         StgSyn
414         CallArity
415         DmdAnal
416         Exitify
417         WorkWrap
418         WwLib
419         FamInst
420         Inst
421         TcAnnotations
422         TcArrows
423         TcBinds
424         TcSigs
425         TcClassDcl
426         TcDefaults
427         TcDeriv
428         TcDerivInfer
429         TcDerivUtils
430         TcEnv
431         TcExpr
432         TcForeign
433         TcGenDeriv
434         TcGenFunctor
435         TcGenGenerics
436         TcHsSyn
437         TcHsType
438         TcInstDcls
439         TcMType
440         TcValidity
441         TcMatches
442         TcPat
443         TcPatSyn
444         TcRnDriver
445         TcBackpack
446         TcRnExports
447         TcRnMonad
448         TcRnTypes
449         TcRules
450         TcSimplify
451         TcHoleErrors
452         TcErrors
453         TcTyClsDecls
454         TcTyDecls
455         TcTypeable
456         TcType
457         TcEvidence
458         TcEvTerm
459         TcUnify
460         TcInteract
461         TcCanonical
462         TcFlatten
463         TcSMonad
464         TcTypeNats
465         TcSplice
466         Class
467         Coercion
468         DsMeta
469         THNames
470         FamInstEnv
471         FunDeps
472         InstEnv
473         TyCon
474         CoAxiom
475         Kind
476         Type
477         TyCoRep
478         Unify
479         Bag
480         Binary
481         BooleanFormula
482         BufWrite
483         Digraph
484         Encoding
485         FastFunctions
486         FastMutInt
487         FastString
488         FastStringEnv
489         Fingerprint
490         FiniteMap
491         FV
492         GraphBase
493         GraphColor
494         GraphOps
495         GraphPpr
496         IOEnv
497         Json
498         ListSetOps
499         ListT
500         Maybes
501         MonadUtils
502         OrdList
503         Outputable
504         Pair
505         Panic
506         PprColour
507         Pretty
508         State
509         Stream
510         StringBuffer
511         UniqDFM
512         UniqDSet
513         UniqFM
514         UniqMap
515         UniqSet
516         Util
517         Hoopl.Block
518         Hoopl.Collections
519         Hoopl.Dataflow
520         Hoopl.Graph
521         Hoopl.Label
522 --        CgInfoTbls used in ghci/DebuggerUtils
523 --        CgHeapery  mkVirtHeapOffsets used in ghci
524
525     Exposed-Modules:
526             AsmCodeGen
527             TargetReg
528             NCGMonad
529             Instruction
530             Format
531             Reg
532             RegClass
533             PIC
534             Platform
535             CPrim
536             X86.Regs
537             X86.RegInfo
538             X86.Instr
539             X86.Cond
540             X86.Ppr
541             X86.CodeGen
542             PPC.Regs
543             PPC.RegInfo
544             PPC.Instr
545             PPC.Cond
546             PPC.Ppr
547             PPC.CodeGen
548             SPARC.Base
549             SPARC.Regs
550             SPARC.Imm
551             SPARC.AddrMode
552             SPARC.Cond
553             SPARC.Instr
554             SPARC.Stack
555             SPARC.ShortcutJump
556             SPARC.Ppr
557             SPARC.CodeGen
558             SPARC.CodeGen.Amode
559             SPARC.CodeGen.Base
560             SPARC.CodeGen.CondCode
561             SPARC.CodeGen.Gen32
562             SPARC.CodeGen.Gen64
563             SPARC.CodeGen.Sanity
564             SPARC.CodeGen.Expand
565             RegAlloc.Liveness
566             RegAlloc.Graph.Main
567             RegAlloc.Graph.Stats
568             RegAlloc.Graph.ArchBase
569             RegAlloc.Graph.ArchX86
570             RegAlloc.Graph.Coalesce
571             RegAlloc.Graph.Spill
572             RegAlloc.Graph.SpillClean
573             RegAlloc.Graph.SpillCost
574             RegAlloc.Graph.TrivColorable
575             RegAlloc.Linear.Main
576             RegAlloc.Linear.JoinToTargets
577             RegAlloc.Linear.State
578             RegAlloc.Linear.Stats
579             RegAlloc.Linear.FreeRegs
580             RegAlloc.Linear.StackMap
581             RegAlloc.Linear.Base
582             RegAlloc.Linear.X86.FreeRegs
583             RegAlloc.Linear.X86_64.FreeRegs
584             RegAlloc.Linear.PPC.FreeRegs
585             RegAlloc.Linear.SPARC.FreeRegs
586             Dwarf
587             Dwarf.Types
588             Dwarf.Constants
589             Convert
590             ByteCodeTypes
591             ByteCodeAsm
592             ByteCodeGen
593             ByteCodeInstr
594             ByteCodeItbls
595             ByteCodeLink
596             Debugger
597             Linker
598             RtClosureInspect
599             GHCi