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