testsuite: Mark T4808 as broken in threaded2 way
[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         backpack
174         basicTypes
175         cmm
176         codeGen
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     Other-Modules:
204         GhcPrelude
205
206     Exposed-Modules:
207         HieTypes
208         HieDebug
209         HieBin
210         HieUtils
211         HieAst
212         Ar
213         FileCleanup
214         DriverBkp
215         BkpSyn
216         NameShape
217         RnModIface
218         Avail
219         AsmUtils
220         BasicTypes
221         ConLike
222         DataCon
223         PatSyn
224         Demand
225         Debug
226         Exception
227         FieldLabel
228         GhcMonad
229         Hooks
230         Id
231         IdInfo
232         Lexeme
233         Literal
234         Llvm
235         Llvm.AbsSyn
236         Llvm.MetaData
237         Llvm.PpLlvm
238         Llvm.Types
239         LlvmCodeGen
240         LlvmCodeGen.Base
241         LlvmCodeGen.CodeGen
242         LlvmCodeGen.Data
243         LlvmCodeGen.Ppr
244         LlvmCodeGen.Regs
245         LlvmMangler
246         MkId
247         Module
248         Name
249         NameEnv
250         NameSet
251         OccName
252         RdrName
253         NameCache
254         SrcLoc
255         UniqSupply
256         Unique
257         Var
258         VarEnv
259         VarSet
260         UnVarGraph
261         BlockId
262         CLabel
263         Cmm
264         CmmBuildInfoTables
265         CmmPipeline
266         CmmCallConv
267         CmmCommonBlockElim
268         CmmImplementSwitchPlans
269         CmmContFlowOpt
270         CmmExpr
271         CmmInfo
272         CmmLex
273         CmmLint
274         CmmLive
275         CmmMachOp
276         CmmMonad
277         CmmSwitch
278         CmmNode
279         CmmOpt
280         CmmParse
281         CmmProcPoint
282         CmmSink
283         CmmType
284         CmmUtils
285         CmmLayoutStack
286         CliOption
287         EnumSet
288         GhcNameVersion
289         FileSettings
290         MkGraph
291         PprBase
292         PprC
293         PprCmm
294         PprCmmDecl
295         PprCmmExpr
296         Bitmap
297         CodeGen.Platform
298         CodeGen.Platform.ARM
299         CodeGen.Platform.ARM64
300         CodeGen.Platform.NoRegs
301         CodeGen.Platform.PPC
302         CodeGen.Platform.SPARC
303         CodeGen.Platform.X86
304         CodeGen.Platform.X86_64
305         CgUtils
306         StgCmm
307         StgCmmBind
308         StgCmmClosure
309         StgCmmCon
310         StgCmmEnv
311         StgCmmExpr
312         StgCmmForeign
313         StgCmmHeap
314         StgCmmHpc
315         StgCmmArgRep
316         StgCmmLayout
317         StgCmmMonad
318         StgCmmPrim
319         StgCmmProf
320         StgCmmTicky
321         StgCmmUtils
322         StgCmmExtCode
323         SMRep
324         CoreArity
325         CoreFVs
326         CoreLint
327         CorePrep
328         CoreSubst
329         CoreOpt
330         CoreSyn
331         TrieMap
332         CoreTidy
333         CoreUnfold
334         CoreUtils
335         CoreMap
336         CoreSeq
337         CoreStats
338         MkCore
339         PprCore
340         PmExpr
341         PmPpr
342         TmOracle
343         Check
344         Coverage
345         Desugar
346         DsArrows
347         DsBinds
348         DsCCall
349         DsExpr
350         DsForeign
351         DsGRHSs
352         DsListComp
353         DsMonad
354         DsUsage
355         DsUtils
356         ExtractDocs
357         Match
358         MatchCon
359         MatchLit
360         HsBinds
361         HsDecls
362         HsDoc
363         HsExpr
364         HsImpExp
365         HsLit
366         PlaceHolder
367         HsExtension
368         HsInstances
369         HsPat
370         HsSyn
371         HsTypes
372         HsUtils
373         HsDumpAst
374         BinIface
375         BinFingerprint
376         BuildTyCl
377         IfaceEnv
378         IfaceSyn
379         IfaceType
380         ToIface
381         LoadIface
382         MkIface
383         TcIface
384         FlagChecker
385         Annotations
386         CmdLineParser
387         CodeOutput
388         Config
389         Constants
390         DriverMkDepend
391         DriverPhases
392         PipelineMonad
393         DriverPipeline
394         DynFlags
395         ErrUtils
396         Finder
397         GHC
398         GhcMake
399         GhcPlugins
400         DynamicLoading
401         HeaderInfo
402         HscMain
403         HscStats
404         HscTypes
405         InteractiveEval
406         InteractiveEvalTypes
407         PackageConfig
408         Packages
409         PlatformConstants
410         Plugins
411         TcPluginM
412         PprTyThing
413         Settings
414         StaticPtrTable
415         SysTools
416         SysTools.BaseDir
417         SysTools.Terminal
418         SysTools.ExtraObj
419         SysTools.Info
420         SysTools.Process
421         SysTools.Tasks
422         Elf
423         TidyPgm
424         Ctype
425         HaddockUtils
426         Lexer
427         OptCoercion
428         Parser
429         RdrHsSyn
430         ApiAnnotation
431         ForeignCall
432         KnownUniques
433         PrelInfo
434         PrelNames
435         PrelRules
436         PrimOp
437         ToolSettings
438         TysPrim
439         TysWiredIn
440         CostCentre
441         CostCentreState
442         ProfInit
443         RnBinds
444         RnEnv
445         RnExpr
446         RnHsDoc
447         RnNames
448         RnPat
449         RnSource
450         RnSplice
451         RnTypes
452         RnFixity
453         RnUtils
454         RnUnbound
455         CoreMonad
456         CSE
457         FloatIn
458         FloatOut
459         LiberateCase
460         OccurAnal
461         SAT
462         SetLevels
463         SimplCore
464         SimplEnv
465         SimplMonad
466         SimplUtils
467         Simplify
468         SimplStg
469         StgStats
470         StgCse
471         StgLiftLams
472         StgLiftLams.Analysis
473         StgLiftLams.LiftM
474         StgLiftLams.Transformation
475         StgSubst
476         UnariseStg
477         RepType
478         Rules
479         SpecConstr
480         Specialise
481         CoreToStg
482         StgLint
483         StgSyn
484         StgFVs
485         CallArity
486         DmdAnal
487         Exitify
488         WorkWrap
489         WwLib
490         FamInst
491         ClsInst
492         Inst
493         TcAnnotations
494         TcArrows
495         TcBinds
496         TcSigs
497         TcClassDcl
498         TcDefaults
499         TcDeriv
500         TcDerivInfer
501         TcDerivUtils
502         TcEnv
503         TcExpr
504         TcForeign
505         TcGenDeriv
506         TcGenFunctor
507         TcGenGenerics
508         TcHsSyn
509         TcHsType
510         TcInstDcls
511         TcMType
512         TcValidity
513         TcMatches
514         TcPat
515         TcPatSyn
516         TcRnDriver
517         TcBackpack
518         TcRnExports
519         TcRnMonad
520         TcRnTypes
521         TcRules
522         TcSimplify
523         TcHoleErrors
524         TcHoleFitTypes
525         TcErrors
526         TcTyClsDecls
527         TcTyDecls
528         TcTypeable
529         TcTypeableValidity
530         TcType
531         TcEvidence
532         TcEvTerm
533         TcUnify
534         TcInteract
535         TcCanonical
536         TcFlatten
537         TcSMonad
538         TcTypeNats
539         TcSplice
540         Class
541         Coercion
542         DsMeta
543         THNames
544         FamInstEnv
545         FunDeps
546         InstEnv
547         TyCon
548         CoAxiom
549         Kind
550         Type
551         TyCoRep
552         Unify
553         Bag
554         Binary
555         BooleanFormula
556         BufWrite
557         Digraph
558         Encoding
559         FastFunctions
560         FastMutInt
561         FastString
562         FastStringEnv
563         Fingerprint
564         FiniteMap
565         FV
566         GraphBase
567         GraphColor
568         GraphOps
569         GraphPpr
570         IOEnv
571         Json
572         ListSetOps
573         ListT
574         Maybes
575         MonadUtils
576         OrdList
577         Outputable
578         Pair
579         Panic
580         PlainPanic
581         PprColour
582         Pretty
583         State
584         Stream
585         StringBuffer
586         UniqDFM
587         UniqDSet
588         UniqFM
589         UniqMap
590         UniqSet
591         Util
592         Hoopl.Block
593         Hoopl.Collections
594         Hoopl.Dataflow
595         Hoopl.Graph
596         Hoopl.Label
597 --        CgInfoTbls used in ghci/DebuggerUtils
598 --        CgHeapery  mkVirtHeapOffsets used in ghci
599
600     Exposed-Modules:
601             AsmCodeGen
602             TargetReg
603             NCGMonad
604             Instruction
605             BlockLayout
606             CFG
607             Format
608             Reg
609             RegClass
610             PIC
611             CPrim
612             X86.Regs
613             X86.RegInfo
614             X86.Instr
615             X86.Cond
616             X86.Ppr
617             X86.CodeGen
618             PPC.Regs
619             PPC.RegInfo
620             PPC.Instr
621             PPC.Cond
622             PPC.Ppr
623             PPC.CodeGen
624             SPARC.Base
625             SPARC.Regs
626             SPARC.Imm
627             SPARC.AddrMode
628             SPARC.Cond
629             SPARC.Instr
630             SPARC.Stack
631             SPARC.ShortcutJump
632             SPARC.Ppr
633             SPARC.CodeGen
634             SPARC.CodeGen.Amode
635             SPARC.CodeGen.Base
636             SPARC.CodeGen.CondCode
637             SPARC.CodeGen.Gen32
638             SPARC.CodeGen.Gen64
639             SPARC.CodeGen.Sanity
640             SPARC.CodeGen.Expand
641             RegAlloc.Liveness
642             RegAlloc.Graph.Main
643             RegAlloc.Graph.Stats
644             RegAlloc.Graph.ArchBase
645             RegAlloc.Graph.ArchX86
646             RegAlloc.Graph.Coalesce
647             RegAlloc.Graph.Spill
648             RegAlloc.Graph.SpillClean
649             RegAlloc.Graph.SpillCost
650             RegAlloc.Graph.TrivColorable
651             RegAlloc.Linear.Main
652             RegAlloc.Linear.JoinToTargets
653             RegAlloc.Linear.State
654             RegAlloc.Linear.Stats
655             RegAlloc.Linear.FreeRegs
656             RegAlloc.Linear.StackMap
657             RegAlloc.Linear.Base
658             RegAlloc.Linear.X86.FreeRegs
659             RegAlloc.Linear.X86_64.FreeRegs
660             RegAlloc.Linear.PPC.FreeRegs
661             RegAlloc.Linear.SPARC.FreeRegs
662             Dwarf
663             Dwarf.Types
664             Dwarf.Constants
665             Convert
666             ByteCodeTypes
667             ByteCodeAsm
668             ByteCodeGen
669             ByteCodeInstr
670             ByteCodeItbls
671             ByteCodeLink
672             Debugger
673             LinkerTypes
674             Linker
675             RtClosureInspect
676             GHCi