Revert "Update Win32 version for GHC 8.4."
[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         WorkWrap
433         WwLib
434         FamInst
435         Inst
436         TcAnnotations
437         TcArrows
438         TcBinds
439         TcSigs
440         TcClassDcl
441         TcDefaults
442         TcDeriv
443         TcDerivInfer
444         TcDerivUtils
445         TcEnv
446         TcExpr
447         TcForeign
448         TcGenDeriv
449         TcGenFunctor
450         TcGenGenerics
451         TcHsSyn
452         TcHsType
453         TcInstDcls
454         TcMType
455         TcValidity
456         TcMatches
457         TcPat
458         TcPatSyn
459         TcRnDriver
460         TcBackpack
461         TcRnExports
462         TcRnMonad
463         TcRnTypes
464         TcRules
465         TcSimplify
466         TcErrors
467         TcTyClsDecls
468         TcTyDecls
469         TcTypeable
470         TcType
471         TcEvidence
472         TcUnify
473         TcInteract
474         TcCanonical
475         TcFlatten
476         TcSMonad
477         TcTypeNats
478         TcSplice
479         Class
480         Coercion
481         DsMeta
482         THNames
483         FamInstEnv
484         FunDeps
485         InstEnv
486         TyCon
487         CoAxiom
488         Kind
489         Type
490         TyCoRep
491         Unify
492         Bag
493         Binary
494         BooleanFormula
495         BufWrite
496         Digraph
497         Encoding
498         FastFunctions
499         FastMutInt
500         FastString
501         FastStringEnv
502         Fingerprint
503         FiniteMap
504         FV
505         GraphBase
506         GraphColor
507         GraphOps
508         GraphPpr
509         IOEnv
510         Json
511         ListSetOps
512         ListT
513         Maybes
514         MonadUtils
515         OrdList
516         Outputable
517         Pair
518         Panic
519         PprColour
520         Pretty
521         State
522         Stream
523         StringBuffer
524         UniqDFM
525         UniqDSet
526         UniqFM
527         UniqMap
528         UniqSet
529         Util
530         Vectorise.Builtins.Base
531         Vectorise.Builtins.Initialise
532         Vectorise.Builtins
533         Vectorise.Monad.Base
534         Vectorise.Monad.Naming
535         Vectorise.Monad.Local
536         Vectorise.Monad.Global
537         Vectorise.Monad.InstEnv
538         Vectorise.Monad
539         Vectorise.Utils.Base
540         Vectorise.Utils.Closure
541         Vectorise.Utils.Hoisting
542         Vectorise.Utils.PADict
543         Vectorise.Utils.Poly
544         Vectorise.Utils
545         Vectorise.Generic.Description
546         Vectorise.Generic.PAMethods
547         Vectorise.Generic.PADict
548         Vectorise.Generic.PData
549         Vectorise.Type.Env
550         Vectorise.Type.Type
551         Vectorise.Type.TyConDecl
552         Vectorise.Type.Classify
553         Vectorise.Convert
554         Vectorise.Vect
555         Vectorise.Var
556         Vectorise.Env
557         Vectorise.Exp
558         Vectorise
559         Hoopl.Block
560         Hoopl.Collections
561         Hoopl.Dataflow
562         Hoopl.Graph
563         Hoopl.Label
564         Hoopl.Unique
565 --        CgInfoTbls used in ghci/DebuggerUtils
566 --        CgHeapery  mkVirtHeapOffsets used in ghci
567
568     Exposed-Modules:
569             AsmCodeGen
570             TargetReg
571             NCGMonad
572             Instruction
573             Format
574             Reg
575             RegClass
576             PIC
577             Platform
578             CPrim
579             X86.Regs
580             X86.RegInfo
581             X86.Instr
582             X86.Cond
583             X86.Ppr
584             X86.CodeGen
585             PPC.Regs
586             PPC.RegInfo
587             PPC.Instr
588             PPC.Cond
589             PPC.Ppr
590             PPC.CodeGen
591             SPARC.Base
592             SPARC.Regs
593             SPARC.Imm
594             SPARC.AddrMode
595             SPARC.Cond
596             SPARC.Instr
597             SPARC.Stack
598             SPARC.ShortcutJump
599             SPARC.Ppr
600             SPARC.CodeGen
601             SPARC.CodeGen.Amode
602             SPARC.CodeGen.Base
603             SPARC.CodeGen.CondCode
604             SPARC.CodeGen.Gen32
605             SPARC.CodeGen.Gen64
606             SPARC.CodeGen.Sanity
607             SPARC.CodeGen.Expand
608             RegAlloc.Liveness
609             RegAlloc.Graph.Main
610             RegAlloc.Graph.Stats
611             RegAlloc.Graph.ArchBase
612             RegAlloc.Graph.ArchX86
613             RegAlloc.Graph.Coalesce
614             RegAlloc.Graph.Spill
615             RegAlloc.Graph.SpillClean
616             RegAlloc.Graph.SpillCost
617             RegAlloc.Graph.TrivColorable
618             RegAlloc.Linear.Main
619             RegAlloc.Linear.JoinToTargets
620             RegAlloc.Linear.State
621             RegAlloc.Linear.Stats
622             RegAlloc.Linear.FreeRegs
623             RegAlloc.Linear.StackMap
624             RegAlloc.Linear.Base
625             RegAlloc.Linear.X86.FreeRegs
626             RegAlloc.Linear.X86_64.FreeRegs
627             RegAlloc.Linear.PPC.FreeRegs
628             RegAlloc.Linear.SPARC.FreeRegs
629             Dwarf
630             Dwarf.Types
631             Dwarf.Constants
632             Convert
633             ByteCodeTypes
634             ByteCodeAsm
635             ByteCodeGen
636             ByteCodeInstr
637             ByteCodeItbls
638             ByteCodeLink
639             Debugger
640             Linker
641             RtClosureInspect
642             DebuggerUtils
643             GHCi