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