Break up TcRnTypes, among other modules.
[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 Flag integer-simple
49     Description: Use integer-simple
50     Manual: True
51     Default: False
52
53 Flag integer-gmp
54     Description: Use integer-gmp
55     Manual: True
56     Default: False
57
58 Library
59     Default-Language: Haskell2010
60     Exposed: False
61
62     Build-Depends: base       >= 4.11 && < 4.14,
63                    deepseq    >= 1.4 && < 1.5,
64                    directory  >= 1   && < 1.4,
65                    process    >= 1   && < 1.7,
66                    bytestring >= 0.9 && < 0.11,
67                    binary     == 0.8.*,
68                    time       >= 1.4 && < 1.10,
69                    containers >= 0.5 && < 0.7,
70                    array      >= 0.1 && < 0.6,
71                    filepath   >= 1   && < 1.5,
72                    template-haskell == 2.16.*,
73                    hpc        == 0.6.*,
74                    transformers == 0.5.*,
75                    ghc-boot   == @ProjectVersionMunged@,
76                    ghc-boot-th == @ProjectVersionMunged@,
77                    ghc-heap   == @ProjectVersionMunged@,
78                    ghci == @ProjectVersionMunged@
79
80     if os(windows)
81         Build-Depends: Win32  >= 2.3 && < 2.7
82     else
83         if flag(terminfo)
84             Build-Depends: terminfo == 0.4.*
85         Build-Depends: unix   >= 2.7 && < 2.9
86
87     GHC-Options: -Wall
88                  -Wno-name-shadowing
89                  -Wnoncanonical-monad-instances
90                  -Wnoncanonical-monoid-instances
91
92     if flag(ghci)
93         CPP-Options: -DHAVE_INTERNAL_INTERPRETER
94         Include-Dirs: ../rts/dist/build @FFIIncludeDir@
95
96     -- sanity-check to ensure not more than one integer flag is set
97     if flag(integer-gmp) && flag(integer-simple)
98         build-depends: invalid-cabal-flag-settings<0
99
100     -- gmp internals are used by the GHCi debugger if available
101     if flag(integer-gmp)
102         CPP-Options: -DINTEGER_GMP
103         build-depends: integer-gmp >= 1.0.2
104
105     -- simple internals are used by the GHCi debugger if available
106     if flag(integer-simple)
107         CPP-Options: -DINTEGER_SIMPLE
108         build-depends: integer-simple >= 0.1.1.1
109
110     Other-Extensions:
111         BangPatterns
112         CPP
113         DataKinds
114         DeriveDataTypeable
115         DeriveFoldable
116         DeriveFunctor
117         DeriveTraversable
118         DisambiguateRecordFields
119         ExplicitForAll
120         FlexibleContexts
121         FlexibleInstances
122         GADTs
123         GeneralizedNewtypeDeriving
124         MagicHash
125         MultiParamTypeClasses
126         NamedFieldPuns
127         NondecreasingIndentation
128         RankNTypes
129         RecordWildCards
130         ScopedTypeVariables
131         StandaloneDeriving
132         Trustworthy
133         TupleSections
134         TypeFamilies
135         TypeSynonymInstances
136         UnboxedTuples
137         UndecidableInstances
138
139     Include-Dirs: . parser utils
140
141     -- We need to set the unit id to ghc (without a version number)
142     -- as it's magic.
143     GHC-Options: -this-unit-id ghc
144
145     if flag(stage1)
146         Include-Dirs: stage1
147     else
148         if flag(stage2)
149             Include-Dirs: stage2
150         else
151             if flag(stage3)
152                 Include-Dirs: stage2
153
154     Install-Includes: HsVersions.h
155
156     c-sources:
157         parser/cutils.c
158         ghci/keepCAFsForGHCi.c
159         cbits/genSym.c
160
161     hs-source-dirs:
162         .
163         backpack
164         basicTypes
165         cmm
166         coreSyn
167         deSugar
168         ghci
169         iface
170         llvmGen
171         main
172         nativeGen
173         parser
174         prelude
175         profiling
176         rename
177         simplCore
178         simplStg
179         specialise
180         stgSyn
181         stranal
182         typecheck
183         types
184         utils
185         hieFile
186
187     -- we use an explicit Prelude
188     Default-Extensions:
189         NoImplicitPrelude
190
191     Exposed-Modules:
192         HieTypes
193         HieDebug
194         HieBin
195         HieUtils
196         HieAst
197         Ar
198         FileCleanup
199         DriverBkp
200         BkpSyn
201         NameShape
202         RnModIface
203         Avail
204         AsmUtils
205         BasicTypes
206         ConLike
207         DataCon
208         PatSyn
209         Demand
210         Debug
211         Exception
212         FieldLabel
213         GhcMonad
214         Hooks
215         Id
216         IdInfo
217         Predicate
218         Lexeme
219         Literal
220         Llvm
221         Llvm.AbsSyn
222         Llvm.MetaData
223         Llvm.PpLlvm
224         Llvm.Types
225         LlvmCodeGen
226         LlvmCodeGen.Base
227         LlvmCodeGen.CodeGen
228         LlvmCodeGen.Data
229         LlvmCodeGen.Ppr
230         LlvmCodeGen.Regs
231         LlvmMangler
232         MkId
233         Module
234         Name
235         NameEnv
236         NameSet
237         OccName
238         RdrName
239         NameCache
240         SrcLoc
241         UniqSupply
242         Unique
243         Var
244         VarEnv
245         VarSet
246         UnVarGraph
247         BlockId
248         CLabel
249         Cmm
250         CmmBuildInfoTables
251         CmmPipeline
252         CmmCallConv
253         CmmCommonBlockElim
254         CmmImplementSwitchPlans
255         CmmContFlowOpt
256         CmmExpr
257         CmmInfo
258         CmmLex
259         CmmLint
260         CmmLive
261         CmmMachOp
262         CmmMonad
263         CmmSwitch
264         CmmNode
265         CmmOpt
266         CmmParse
267         CmmProcPoint
268         CmmSink
269         CmmType
270         CmmUtils
271         CmmLayoutStack
272         CliOption
273         EnumSet
274         GhcNameVersion
275         FileSettings
276         MkGraph
277         PprBase
278         PprC
279         PprCmm
280         PprCmmDecl
281         PprCmmExpr
282         Bitmap
283         GHC.Platform.Regs
284         GHC.Platform.ARM
285         GHC.Platform.ARM64
286         GHC.Platform.NoRegs
287         GHC.Platform.PPC
288         GHC.Platform.SPARC
289         GHC.Platform.X86
290         GHC.Platform.X86_64
291         GHC.StgToCmm.CgUtils
292         GHC.StgToCmm
293         GHC.StgToCmm.Bind
294         GHC.StgToCmm.Closure
295         GHC.StgToCmm.DataCon
296         GHC.StgToCmm.Env
297         GHC.StgToCmm.Expr
298         GHC.StgToCmm.Foreign
299         GHC.StgToCmm.Heap
300         GHC.StgToCmm.Hpc
301         GHC.StgToCmm.ArgRep
302         GHC.StgToCmm.Layout
303         GHC.StgToCmm.Monad
304         GHC.StgToCmm.Prim
305         GHC.StgToCmm.Prof
306         GHC.StgToCmm.Ticky
307         GHC.StgToCmm.Utils
308         GHC.StgToCmm.ExtCode
309         SMRep
310         CoreArity
311         CoreFVs
312         CoreLint
313         CorePrep
314         CoreSubst
315         CoreOpt
316         CoreSyn
317         TrieMap
318         CoreTidy
319         CoreUnfold
320         CoreUtils
321         CoreMap
322         CoreSeq
323         CoreStats
324         MkCore
325         PprCore
326         GHC.HsToCore.PmCheck.Oracle
327         GHC.HsToCore.PmCheck.Ppr
328         GHC.HsToCore.PmCheck.Types
329         GHC.HsToCore.PmCheck
330         Coverage
331         Desugar
332         DsArrows
333         DsBinds
334         DsCCall
335         DsExpr
336         DsForeign
337         DsGRHSs
338         DsListComp
339         DsMonad
340         DsUsage
341         DsUtils
342         ExtractDocs
343         Match
344         MatchCon
345         MatchLit
346         GHC.Hs
347         GHC.Hs.Binds
348         GHC.Hs.Decls
349         GHC.Hs.Doc
350         GHC.Hs.Expr
351         GHC.Hs.ImpExp
352         GHC.Hs.Lit
353         GHC.Hs.PlaceHolder
354         GHC.Hs.Extension
355         GHC.Hs.Instances
356         GHC.Hs.Pat
357         GHC.Hs.Types
358         GHC.Hs.Utils
359         GHC.Hs.Dump
360         BinIface
361         BinFingerprint
362         BuildTyCl
363         IfaceEnv
364         IfaceSyn
365         IfaceType
366         ToIface
367         LoadIface
368         MkIface
369         TcIface
370         FlagChecker
371         Annotations
372         CmdLineParser
373         CodeOutput
374         Config
375         Constants
376         DriverMkDepend
377         DriverPhases
378         PipelineMonad
379         DriverPipeline
380         DynFlags
381         ErrUtils
382         Finder
383         GHC
384         GhcMake
385         GhcPlugins
386         GhcPrelude
387         DynamicLoading
388         HeaderInfo
389         HscMain
390         HscStats
391         HscTypes
392         InteractiveEval
393         InteractiveEvalTypes
394         PackageConfig
395         Packages
396         PlatformConstants
397         Plugins
398         TcPluginM
399         PprTyThing
400         Settings
401         StaticPtrTable
402         SysTools
403         SysTools.BaseDir
404         SysTools.Terminal
405         SysTools.ExtraObj
406         SysTools.Info
407         SysTools.Process
408         SysTools.Tasks
409         SysTools.Settings
410         Elf
411         TidyPgm
412         Ctype
413         HaddockUtils
414         Lexer
415         OptCoercion
416         Parser
417         RdrHsSyn
418         ApiAnnotation
419         ForeignCall
420         KnownUniques
421         PrelInfo
422         PrelNames
423         PrelRules
424         PrimOp
425         ToolSettings
426         TysPrim
427         TysWiredIn
428         CostCentre
429         CostCentreState
430         ProfInit
431         RnBinds
432         RnEnv
433         RnExpr
434         RnHsDoc
435         RnNames
436         RnPat
437         RnSource
438         RnSplice
439         RnTypes
440         RnFixity
441         RnUtils
442         RnUnbound
443         CoreMonad
444         CSE
445         FloatIn
446         FloatOut
447         LiberateCase
448         OccurAnal
449         SAT
450         SetLevels
451         SimplCore
452         SimplEnv
453         SimplMonad
454         SimplUtils
455         Simplify
456         SimplStg
457         StgStats
458         StgCse
459         StgLiftLams
460         StgLiftLams.Analysis
461         StgLiftLams.LiftM
462         StgLiftLams.Transformation
463         StgSubst
464         UnariseStg
465         RepType
466         Rules
467         SpecConstr
468         Specialise
469         CoreToStg
470         StgLint
471         StgSyn
472         StgFVs
473         CallArity
474         DmdAnal
475         Exitify
476         WorkWrap
477         WwLib
478         FamInst
479         ClsInst
480         Inst
481         TcAnnotations
482         TcArrows
483         TcBinds
484         TcSigs
485         TcClassDcl
486         TcDefaults
487         TcDeriv
488         TcDerivInfer
489         TcDerivUtils
490         TcEnv
491         TcExpr
492         TcForeign
493         TcGenDeriv
494         TcGenFunctor
495         TcGenGenerics
496         TcHsSyn
497         TcHsType
498         TcInstDcls
499         TcMType
500         TcValidity
501         TcMatches
502         TcPat
503         TcPatSyn
504         TcRnDriver
505         TcBackpack
506         TcRnExports
507         TcRnMonad
508         TcRnTypes
509         Constraint
510         TcOrigin
511         TcRules
512         TcSimplify
513         TcHoleErrors
514         TcHoleFitTypes
515         TcErrors
516         TcTyClsDecls
517         TcTyDecls
518         TcTypeable
519         TcType
520         TcEvidence
521         TcEvTerm
522         TcUnify
523         TcInteract
524         TcCanonical
525         TcFlatten
526         TcSMonad
527         TcTypeNats
528         TcSplice
529         Class
530         Coercion
531         DsMeta
532         THNames
533         FamInstEnv
534         FunDeps
535         InstEnv
536         TyCon
537         CoAxiom
538         Kind
539         Type
540         TyCoRep
541         TyCoFVs
542         TyCoSubst
543         TyCoPpr
544         TyCoTidy
545         Unify
546         Bag
547         Binary
548         BooleanFormula
549         BufWrite
550         Digraph
551         Encoding
552         FastFunctions
553         FastMutInt
554         FastString
555         FastStringEnv
556         Fingerprint
557         FiniteMap
558         FV
559         GraphBase
560         GraphColor
561         GraphOps
562         GraphPpr
563         IOEnv
564         Json
565         ListSetOps
566         Maybes
567         MonadUtils
568         OrdList
569         Outputable
570         Pair
571         Panic
572         PlainPanic
573         PprColour
574         Pretty
575         State
576         Stream
577         StringBuffer
578         UniqDFM
579         UniqDSet
580         UniqFM
581         UniqMap
582         UniqSet
583         Util
584         Hoopl.Block
585         Hoopl.Collections
586         Hoopl.Dataflow
587         Hoopl.Graph
588         Hoopl.Label
589 --        CgInfoTbls used in ghci/DebuggerUtils
590 --        CgHeapery  mkVirtHeapOffsets used in ghci
591
592     Exposed-Modules:
593             AsmCodeGen
594             TargetReg
595             NCGMonad
596             Instruction
597             BlockLayout
598             CFG
599             Dominators
600             Format
601             Reg
602             RegClass
603             PIC
604             CPrim
605             X86.Regs
606             X86.RegInfo
607             X86.Instr
608             X86.Cond
609             X86.Ppr
610             X86.CodeGen
611             PPC.Regs
612             PPC.RegInfo
613             PPC.Instr
614             PPC.Cond
615             PPC.Ppr
616             PPC.CodeGen
617             SPARC.Base
618             SPARC.Regs
619             SPARC.Imm
620             SPARC.AddrMode
621             SPARC.Cond
622             SPARC.Instr
623             SPARC.Stack
624             SPARC.ShortcutJump
625             SPARC.Ppr
626             SPARC.CodeGen
627             SPARC.CodeGen.Amode
628             SPARC.CodeGen.Base
629             SPARC.CodeGen.CondCode
630             SPARC.CodeGen.Gen32
631             SPARC.CodeGen.Gen64
632             SPARC.CodeGen.Sanity
633             SPARC.CodeGen.Expand
634             RegAlloc.Liveness
635             RegAlloc.Graph.Main
636             RegAlloc.Graph.Stats
637             RegAlloc.Graph.ArchBase
638             RegAlloc.Graph.ArchX86
639             RegAlloc.Graph.Coalesce
640             RegAlloc.Graph.Spill
641             RegAlloc.Graph.SpillClean
642             RegAlloc.Graph.SpillCost
643             RegAlloc.Graph.TrivColorable
644             RegAlloc.Linear.Main
645             RegAlloc.Linear.JoinToTargets
646             RegAlloc.Linear.State
647             RegAlloc.Linear.Stats
648             RegAlloc.Linear.FreeRegs
649             RegAlloc.Linear.StackMap
650             RegAlloc.Linear.Base
651             RegAlloc.Linear.X86.FreeRegs
652             RegAlloc.Linear.X86_64.FreeRegs
653             RegAlloc.Linear.PPC.FreeRegs
654             RegAlloc.Linear.SPARC.FreeRegs
655             Dwarf
656             Dwarf.Types
657             Dwarf.Constants
658             GHC.ThToHs
659             ByteCodeTypes
660             ByteCodeAsm
661             ByteCodeGen
662             ByteCodeInstr
663             ByteCodeItbls
664             ByteCodeLink
665             Debugger
666             LinkerTypes
667             Linker
668             RtClosureInspect
669             GHCi