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