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