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