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