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