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