Update filepath submodule to filepath-1.4 snapshot
[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: @ProjectVersion@
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 Flag ghci
24     Description: Build GHCi support.
25     Default: False
26     Manual: True
27
28 Flag stage1
29     Description: Is this stage 1?
30     Default: False
31     Manual: True
32
33 Flag stage2
34     Description: Is this stage 2?
35     Default: False
36     Manual: True
37
38 Flag stage3
39     Description: Is this stage 3?
40     Default: False
41     Manual: True
42
43 Library
44     Default-Language: Haskell2010
45     Exposed: False
46
47     Build-Depends: base       >= 4   && < 5,
48                    directory  >= 1   && < 1.3,
49                    process    >= 1   && < 1.3,
50                    bytestring >= 0.9 && < 0.11,
51                    time                 < 1.6,
52                    containers >= 0.5 && < 0.6,
53                    array      >= 0.1 && < 0.6,
54                    filepath   >= 1   && < 1.5,
55                    hpc,
56                    transformers,
57                    bin-package-db,
58                    hoopl
59
60     if os(windows)
61         Build-Depends: Win32
62     else
63         Build-Depends: unix
64
65     GHC-Options: -Wall -fno-warn-name-shadowing
66
67     if flag(ghci)
68         Build-Depends: template-haskell
69         CPP-Options: -DGHCI
70         Include-Dirs: ../rts/dist/build @FFIIncludeDir@
71
72     Other-Extensions:
73         BangPatterns
74         CPP
75         DataKinds
76         DeriveDataTypeable
77         DeriveFoldable
78         DeriveFunctor
79         DeriveTraversable
80         DisambiguateRecordFields
81         ExplicitForAll
82         FlexibleContexts
83         FlexibleInstances
84         GADTs
85         GeneralizedNewtypeDeriving
86         MagicHash
87         MultiParamTypeClasses
88         NamedFieldPuns
89         NondecreasingIndentation
90         RankNTypes
91         RecordWildCards
92         ScopedTypeVariables
93         StandaloneDeriving
94         Trustworthy
95         TupleSections
96         TypeFamilies
97         TypeSynonymInstances
98         UnboxedTuples
99         UndecidableInstances
100
101     Include-Dirs: . parser utils
102
103     if impl( ghc >= 7.9 )
104         -- We need to set the package key to ghc (without a version number)
105         -- as it's magic.  But we can't set it for old versions of GHC (e.g.
106         -- when bootstrapping) because those versions of GHC don't understand
107         -- that GHC is wired-in.
108         GHC-Options: -this-package-key ghc
109
110     if flag(stage1)
111         Include-Dirs: stage1
112     else
113         if flag(stage2)
114             Include-Dirs: stage2
115         else
116             if flag(stage3)
117                 Include-Dirs: stage2
118
119     Install-Includes: HsVersions.h, ghc_boot_platform.h
120
121     c-sources:
122         parser/cutils.c
123         ghci/keepCAFsForGHCi.c
124         cbits/genSym.c
125
126     hs-source-dirs:
127         basicTypes
128         cmm
129         codeGen
130         coreSyn
131         deSugar
132         ghci
133         hsSyn
134         iface
135         llvmGen
136         main
137         nativeGen
138         parser
139         prelude
140         profiling
141         rename
142         simplCore
143         simplStg
144         specialise
145         stgSyn
146         stranal
147         typecheck
148         types
149         utils
150         vectorise
151
152     Exposed-Modules:
153         Avail
154         BasicTypes
155         ConLike
156         DataCon
157         PatSyn
158         Demand
159         Debug
160         Exception
161         GhcMonad
162         Hooks
163         Id
164         IdInfo
165         Lexeme
166         Literal
167         Llvm
168         Llvm.AbsSyn
169         Llvm.MetaData
170         Llvm.PpLlvm
171         Llvm.Types
172         LlvmCodeGen
173         LlvmCodeGen.Base
174         LlvmCodeGen.CodeGen
175         LlvmCodeGen.Data
176         LlvmCodeGen.Ppr
177         LlvmCodeGen.Regs
178         LlvmMangler
179         MkId
180         Module
181         Name
182         NameEnv
183         NameSet
184         OccName
185         RdrName
186         SrcLoc
187         UniqSupply
188         Unique
189         Var
190         VarEnv
191         VarSet
192         UnVarGraph
193         BlockId
194         CLabel
195         Cmm
196         CmmBuildInfoTables
197         CmmPipeline
198         CmmCallConv
199         CmmCommonBlockElim
200         CmmContFlowOpt
201         CmmExpr
202         CmmInfo
203         CmmLex
204         CmmLint
205         CmmLive
206         CmmMachOp
207         CmmNode
208         CmmOpt
209         CmmParse
210         CmmProcPoint
211         CmmSink
212         CmmType
213         CmmUtils
214         CmmLayoutStack
215         MkGraph
216         PprBase
217         PprC
218         PprCmm
219         PprCmmDecl
220         PprCmmExpr
221         Bitmap
222         CodeGen.Platform
223         CodeGen.Platform.ARM
224         CodeGen.Platform.ARM64
225         CodeGen.Platform.NoRegs
226         CodeGen.Platform.PPC
227         CodeGen.Platform.PPC_Darwin
228         CodeGen.Platform.SPARC
229         CodeGen.Platform.X86
230         CodeGen.Platform.X86_64
231         CgUtils
232         StgCmm
233         StgCmmBind
234         StgCmmClosure
235         StgCmmCon
236         StgCmmEnv
237         StgCmmExpr
238         StgCmmForeign
239         StgCmmHeap
240         StgCmmHpc
241         StgCmmArgRep
242         StgCmmLayout
243         StgCmmMonad
244         StgCmmPrim
245         StgCmmProf
246         StgCmmTicky
247         StgCmmUtils
248         StgCmmExtCode
249         SMRep
250         CoreArity
251         CoreFVs
252         CoreLint
253         CorePrep
254         CoreSubst
255         CoreSyn
256         TrieMap
257         CoreTidy
258         CoreUnfold
259         CoreUtils
260         MkCore
261         PprCore
262         Check
263         Coverage
264         Desugar
265         DsArrows
266         DsBinds
267         DsCCall
268         DsExpr
269         DsForeign
270         DsGRHSs
271         DsListComp
272         DsMonad
273         DsUtils
274         Match
275         MatchCon
276         MatchLit
277         HsBinds
278         HsDecls
279         HsDoc
280         HsExpr
281         HsImpExp
282         HsLit
283         PlaceHolder
284         HsPat
285         HsSyn
286         HsTypes
287         HsUtils
288         BinIface
289         BuildTyCl
290         IfaceEnv
291         IfaceSyn
292         IfaceType
293         LoadIface
294         MkIface
295         TcIface
296         FlagChecker
297         Annotations
298         BreakArray
299         CmdLineParser
300         CodeOutput
301         Config
302         Constants
303         DriverMkDepend
304         DriverPhases
305         PipelineMonad
306         DriverPipeline
307         DynFlags
308         ErrUtils
309         Finder
310         GHC
311         GhcMake
312         GhcPlugins
313         DynamicLoading
314         HeaderInfo
315         HscMain
316         HscStats
317         HscTypes
318         InteractiveEval
319         InteractiveEvalTypes
320         PackageConfig
321         Packages
322         PlatformConstants
323         Plugins
324         TcPluginM
325         PprTyThing
326         StaticFlags
327         StaticPtrTable
328         SysTools
329         TidyPgm
330         Ctype
331         HaddockUtils
332         Lexer
333         OptCoercion
334         Parser
335         RdrHsSyn
336         ApiAnnotation
337         ForeignCall
338         PrelInfo
339         PrelNames
340         PrelRules
341         PrimOp
342         TysPrim
343         TysWiredIn
344         CostCentre
345         ProfInit
346         SCCfinal
347         RnBinds
348         RnEnv
349         RnExpr
350         RnHsDoc
351         RnNames
352         RnPat
353         RnSource
354         RnSplice
355         RnTypes
356         CoreMonad
357         CSE
358         FloatIn
359         FloatOut
360         LiberateCase
361         OccurAnal
362         SAT
363         SetLevels
364         SimplCore
365         SimplEnv
366         SimplMonad
367         SimplUtils
368         Simplify
369         SimplStg
370         StgStats
371         UnariseStg
372         Rules
373         SpecConstr
374         Specialise
375         CoreToStg
376         StgLint
377         StgSyn
378         CallArity
379         DmdAnal
380         WorkWrap
381         WwLib
382         FamInst
383         Inst
384         TcAnnotations
385         TcArrows
386         TcBinds
387         TcClassDcl
388         TcDefaults
389         TcDeriv
390         TcEnv
391         TcExpr
392         TcForeign
393         TcGenDeriv
394         TcGenGenerics
395         TcHsSyn
396         TcHsType
397         TcInstDcls
398         TcMType
399         TcValidity
400         TcMatches
401         TcPat
402         TcPatSyn
403         TcRnDriver
404         TcRnMonad
405         TcRnTypes
406         TcRules
407         TcSimplify
408         TcErrors
409         TcTyClsDecls
410         TcTyDecls
411         TcType
412         TcEvidence
413         TcUnify
414         TcInteract
415         TcCanonical
416         TcFlatten
417         TcSMonad
418         TcTypeNats
419         TcSplice
420         Class
421         Coercion
422         FamInstEnv
423         FunDeps
424         InstEnv
425         TyCon
426         CoAxiom
427         Kind
428         Type
429         TypeRep
430         Unify
431         Bag
432         Binary
433         BooleanFormula
434         BufWrite
435         Digraph
436         Encoding
437         FastBool
438         FastFunctions
439         FastMutInt
440         FastString
441         FastTypes
442         Fingerprint
443         FiniteMap
444         GraphBase
445         GraphColor
446         GraphOps
447         GraphPpr
448         IOEnv
449         ListSetOps
450         Maybes
451         MonadUtils
452         OrdList
453         Outputable
454         Pair
455         Panic
456         Pretty
457         Serialized
458         State
459         Stream
460         StringBuffer
461         UniqFM
462         UniqSet
463         Util
464         ExtsCompat46
465 --      ^^^  a temporary module necessary to bootstrap with GHC <= 7.6
466         Vectorise.Builtins.Base
467         Vectorise.Builtins.Initialise
468         Vectorise.Builtins
469         Vectorise.Monad.Base
470         Vectorise.Monad.Naming
471         Vectorise.Monad.Local
472         Vectorise.Monad.Global
473         Vectorise.Monad.InstEnv
474         Vectorise.Monad
475         Vectorise.Utils.Base
476         Vectorise.Utils.Closure
477         Vectorise.Utils.Hoisting
478         Vectorise.Utils.PADict
479         Vectorise.Utils.Poly
480         Vectorise.Utils
481         Vectorise.Generic.Description
482         Vectorise.Generic.PAMethods
483         Vectorise.Generic.PADict
484         Vectorise.Generic.PData
485         Vectorise.Type.Env
486         Vectorise.Type.Type
487         Vectorise.Type.TyConDecl
488         Vectorise.Type.Classify
489         Vectorise.Convert
490         Vectorise.Vect
491         Vectorise.Var
492         Vectorise.Env
493         Vectorise.Exp
494         Vectorise
495         Hoopl.Dataflow
496         Hoopl
497 --        CgInfoTbls used in ghci/DebuggerUtils
498 --        CgHeapery  mkVirtHeapOffsets used in ghci
499
500     Exposed-Modules:
501             AsmCodeGen
502             TargetReg
503             NCGMonad
504             Instruction
505             Size
506             Reg
507             RegClass
508             PIC
509             Platform
510             CPrim
511             X86.Regs
512             X86.RegInfo
513             X86.Instr
514             X86.Cond
515             X86.Ppr
516             X86.CodeGen
517             PPC.Regs
518             PPC.RegInfo
519             PPC.Instr
520             PPC.Cond
521             PPC.Ppr
522             PPC.CodeGen
523             SPARC.Base
524             SPARC.Regs
525             SPARC.Imm
526             SPARC.AddrMode
527             SPARC.Cond
528             SPARC.Instr
529             SPARC.Stack
530             SPARC.ShortcutJump
531             SPARC.Ppr
532             SPARC.CodeGen
533             SPARC.CodeGen.Amode
534             SPARC.CodeGen.Base
535             SPARC.CodeGen.CondCode
536             SPARC.CodeGen.Gen32
537             SPARC.CodeGen.Gen64
538             SPARC.CodeGen.Sanity
539             SPARC.CodeGen.Expand
540             RegAlloc.Liveness
541             RegAlloc.Graph.Main
542             RegAlloc.Graph.Stats
543             RegAlloc.Graph.ArchBase
544             RegAlloc.Graph.ArchX86
545             RegAlloc.Graph.Coalesce
546             RegAlloc.Graph.Spill
547             RegAlloc.Graph.SpillClean
548             RegAlloc.Graph.SpillCost
549             RegAlloc.Graph.TrivColorable
550             RegAlloc.Linear.Main
551             RegAlloc.Linear.JoinToTargets
552             RegAlloc.Linear.State
553             RegAlloc.Linear.Stats
554             RegAlloc.Linear.FreeRegs
555             RegAlloc.Linear.StackMap
556             RegAlloc.Linear.Base
557             RegAlloc.Linear.X86.FreeRegs
558             RegAlloc.Linear.X86_64.FreeRegs
559             RegAlloc.Linear.PPC.FreeRegs
560             RegAlloc.Linear.SPARC.FreeRegs
561             Dwarf
562             Dwarf.Types
563             Dwarf.Constants
564
565     if flag(ghci)
566         Exposed-Modules:
567             DsMeta
568             Convert
569             ByteCodeAsm
570             ByteCodeGen
571             ByteCodeInstr
572             ByteCodeItbls
573             ByteCodeLink
574             Debugger
575             LibFFI
576             Linker
577             ObjLink
578             RtClosureInspect
579             DebuggerUtils