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