Fix compilation on old GHCs (fixes #8371)
[cabal.git] / Cabal / Cabal.cabal
blob117ae37fb0cc0c98a666ff8cb9323b38c8da54b7
1 cabal-version: 2.2
2 name:          Cabal
3 version:       3.9.0.0
4 copyright:     2003-2022, Cabal Development Team (see AUTHORS file)
5 license:       BSD-3-Clause
6 license-file:  LICENSE
7 author:        Cabal Development Team <cabal-devel@haskell.org>
8 maintainer:    cabal-devel@haskell.org
9 homepage:      http://www.haskell.org/cabal/
10 bug-reports:   https://github.com/haskell/cabal/issues
11 synopsis:      A framework for packaging Haskell software
12 description:
13   The Haskell Common Architecture for Building Applications and
14   Libraries: a framework defining a common interface for authors to more
15   easily build their Haskell applications in a portable way.
16   .
17   The Haskell Cabal is part of a larger infrastructure for distributing,
18   organizing, and cataloging Haskell libraries and tools.
19 category:       Distribution
20 build-type:     Simple
21 -- If we use a new Cabal feature, this needs to be changed to Custom so
22 -- we can bootstrap.
24 extra-source-files:
25   README.md ChangeLog.md
27 source-repository head
28   type:     git
29   location: https://github.com/haskell/cabal/
30   subdir:   Cabal
32 library
33   default-language: Haskell2010
34   hs-source-dirs: src
36   build-depends:
37     Cabal-syntax ^>= 3.9,
38     array      >= 0.4.0.1  && < 0.6,
39     base       >= 4.6      && < 5,
40     bytestring >= 0.10.0.0 && < 0.12,
41     containers >= 0.5.0.0  && < 0.7,
42     deepseq    >= 1.3.0.1  && < 1.5,
43     directory  >= 1.2      && < 1.4,
44     filepath   >= 1.3.0.1  && < 1.5,
45     pretty     >= 1.1.1    && < 1.2,
46     process    >= 1.2.1.0  && < 1.7,
47     time       >= 1.4.0.1  && < 1.13
49   -- pull in process version with fixed waitForProcess error
50   if impl(ghc >=8.2)
51     build-depends: process >= 1.6.14.0
53   if os(windows)
54     build-depends: Win32 >= 2.3.0.0 && < 2.14
55   else
56     build-depends: unix  >= 2.6.0.0 && < 2.8
58   ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates
60   if impl(ghc >= 8.2)
61     ghc-options: -Wcompat -Wnoncanonical-monad-instances
63   if impl(ghc >= 8.2) && impl(ghc < 8.8)
64     ghc-options: -Wnoncanonical-monadfail-instances
66   exposed-modules:
67     Distribution.Backpack.Configure
68     Distribution.Backpack.ComponentsGraph
69     Distribution.Backpack.ConfiguredComponent
70     Distribution.Backpack.DescribeUnitId
71     Distribution.Backpack.FullUnitId
72     Distribution.Backpack.LinkedComponent
73     Distribution.Backpack.ModSubst
74     Distribution.Backpack.ModuleShape
75     Distribution.Backpack.PreModuleShape
76     Distribution.Utils.IOData
77     Distribution.Utils.LogProgress
78     Distribution.Utils.MapAccum
79     Distribution.Compat.CreatePipe
80     Distribution.Compat.Directory
81     Distribution.Compat.Environment
82     Distribution.Compat.FilePath
83     Distribution.Compat.Internal.TempFile
84     Distribution.Compat.ResponseFile
85     Distribution.Compat.Prelude.Internal
86     Distribution.Compat.Process
87     Distribution.Compat.Stack
88     Distribution.Compat.Time
89     Distribution.Make
90     Distribution.PackageDescription.Check
91     Distribution.ReadE
92     Distribution.Simple
93     Distribution.Simple.Bench
94     Distribution.Simple.Build
95     Distribution.Simple.Build.Macros
96     Distribution.Simple.Build.PathsModule
97     Distribution.Simple.BuildPaths
98     Distribution.Simple.BuildTarget
99     Distribution.Simple.BuildToolDepends
100     Distribution.Simple.CCompiler
101     Distribution.Simple.Command
102     Distribution.Simple.Compiler
103     Distribution.Simple.Configure
104     Distribution.Simple.Flag
105     Distribution.Simple.GHC
106     Distribution.Simple.GHCJS
107     Distribution.Simple.Haddock
108     Distribution.Simple.Glob
109     Distribution.Simple.HaskellSuite
110     Distribution.Simple.Hpc
111     Distribution.Simple.Install
112     Distribution.Simple.InstallDirs
113     Distribution.Simple.InstallDirs.Internal
114     Distribution.Simple.LocalBuildInfo
115     Distribution.Simple.PackageDescription
116     Distribution.Simple.PackageIndex
117     Distribution.Simple.PreProcess
118     Distribution.Simple.PreProcess.Unlit
119     Distribution.Simple.Program
120     Distribution.Simple.Program.Ar
121     Distribution.Simple.Program.Builtin
122     Distribution.Simple.Program.Db
123     Distribution.Simple.Program.Find
124     Distribution.Simple.Program.GHC
125     Distribution.Simple.Program.HcPkg
126     Distribution.Simple.Program.Hpc
127     Distribution.Simple.Program.Internal
128     Distribution.Simple.Program.Ld
129     Distribution.Simple.Program.ResponseFile
130     Distribution.Simple.Program.Run
131     Distribution.Simple.Program.Script
132     Distribution.Simple.Program.Strip
133     Distribution.Simple.Program.Types
134     Distribution.Simple.Register
135     Distribution.Simple.Setup
136     Distribution.Simple.ShowBuildInfo
137     Distribution.Simple.SrcDist
138     Distribution.Simple.Test
139     Distribution.Simple.Test.ExeV10
140     Distribution.Simple.Test.LibV09
141     Distribution.Simple.Test.Log
142     Distribution.Simple.UHC
143     Distribution.Simple.UserHooks
144     Distribution.Simple.Utils
145     Distribution.TestSuite
146     Distribution.Types.AnnotatedId
147     Distribution.Types.ComponentInclude
148     Distribution.Types.DumpBuildInfo
149     Distribution.Types.PackageName.Magic
150     Distribution.Types.ComponentLocalBuildInfo
151     Distribution.Types.LocalBuildInfo
152     Distribution.Types.TargetInfo
153     Distribution.Types.GivenComponent
154     Distribution.Utils.Json
155     Distribution.Utils.NubList
156     Distribution.Utils.Progress
157     Distribution.Verbosity
158     Distribution.Verbosity.Internal
160   -- We reexport all of Cabal-syntax to aid in compatibility for downstream
161   -- users. In the future we may opt to deprecate some or all of these exports.
162   -- See haskell/Cabal#7974.
163   reexported-modules:
164     Distribution.Backpack,
165     Distribution.CabalSpecVersion,
166     Distribution.Compat.Binary,
167     Distribution.Compat.CharParsing,
168     Distribution.Compat.DList,
169     Distribution.Compat.Exception,
170     Distribution.Compat.Graph,
171     Distribution.Compat.Lens,
172     Distribution.Compat.MonadFail,
173     Distribution.Compat.Newtype,
174     Distribution.Compat.NonEmptySet,
175     Distribution.Compat.Parsing,
176     Distribution.Compat.Prelude,
177     Distribution.Compat.Semigroup,
178     Distribution.Compat.Typeable,
179     Distribution.Compiler,
180     Distribution.FieldGrammar,
181     Distribution.FieldGrammar.Class,
182     Distribution.FieldGrammar.FieldDescrs,
183     Distribution.FieldGrammar.Newtypes,
184     Distribution.FieldGrammar.Parsec,
185     Distribution.FieldGrammar.Pretty,
186     Distribution.Fields,
187     Distribution.Fields.ConfVar,
188     Distribution.Fields.Field,
189     Distribution.Fields.Lexer,
190     Distribution.Fields.LexerMonad,
191     Distribution.Fields.ParseResult,
192     Distribution.Fields.Parser,
193     Distribution.Fields.Pretty,
194     Distribution.InstalledPackageInfo,
195     Distribution.License,
196     Distribution.ModuleName,
197     Distribution.Package,
198     Distribution.PackageDescription,
199     Distribution.PackageDescription.Configuration,
200     Distribution.PackageDescription.FieldGrammar,
201     Distribution.PackageDescription.Parsec,
202     Distribution.PackageDescription.PrettyPrint,
203     Distribution.PackageDescription.Quirks,
204     Distribution.PackageDescription.Utils,
205     Distribution.Parsec,
206     Distribution.Parsec.Error,
207     Distribution.Parsec.FieldLineStream,
208     Distribution.Parsec.Position,
209     Distribution.Parsec.Warning,
210     Distribution.Pretty,
211     Distribution.SPDX,
212     Distribution.SPDX.License,
213     Distribution.SPDX.LicenseExceptionId,
214     Distribution.SPDX.LicenseExpression,
215     Distribution.SPDX.LicenseId,
216     Distribution.SPDX.LicenseListVersion,
217     Distribution.SPDX.LicenseReference,
218     Distribution.System,
219     Distribution.Text,
220     Distribution.Types.AbiDependency,
221     Distribution.Types.AbiHash,
222     Distribution.Types.Benchmark,
223     Distribution.Types.Benchmark.Lens,
224     Distribution.Types.BenchmarkInterface,
225     Distribution.Types.BenchmarkType,
226     Distribution.Types.BuildInfo,
227     Distribution.Types.BuildInfo.Lens,
228     Distribution.Types.BuildType,
229     Distribution.Types.Component,
230     Distribution.Types.ComponentId,
231     Distribution.Types.ComponentName,
232     Distribution.Types.ComponentRequestedSpec,
233     Distribution.Types.CondTree,
234     Distribution.Types.Condition,
235     Distribution.Types.ConfVar,
236     Distribution.Types.Dependency,
237     Distribution.Types.DependencyMap,
238     Distribution.Types.ExeDependency,
239     Distribution.Types.Executable,
240     Distribution.Types.Executable.Lens,
241     Distribution.Types.ExecutableScope,
242     Distribution.Types.ExposedModule,
243     Distribution.Types.Flag,
244     Distribution.Types.ForeignLib,
245     Distribution.Types.ForeignLib.Lens,
246     Distribution.Types.ForeignLibOption,
247     Distribution.Types.ForeignLibType,
248     Distribution.Types.GenericPackageDescription,
249     Distribution.Types.GenericPackageDescription.Lens,
250     Distribution.Types.HookedBuildInfo,
251     Distribution.Types.IncludeRenaming,
252     Distribution.Types.InstalledPackageInfo,
253     Distribution.Types.InstalledPackageInfo.Lens,
254     Distribution.Types.InstalledPackageInfo.FieldGrammar,
255     Distribution.Types.LegacyExeDependency,
256     Distribution.Types.Lens,
257     Distribution.Types.Library,
258     Distribution.Types.Library.Lens,
259     Distribution.Types.LibraryName,
260     Distribution.Types.LibraryVisibility,
261     Distribution.Types.Mixin,
262     Distribution.Types.Module,
263     Distribution.Types.ModuleReexport,
264     Distribution.Types.ModuleRenaming,
265     Distribution.Types.MungedPackageId,
266     Distribution.Types.MungedPackageName,
267     Distribution.Types.PackageDescription,
268     Distribution.Types.PackageDescription.Lens,
269     Distribution.Types.PackageId,
270     Distribution.Types.PackageId.Lens,
271     Distribution.Types.PackageName,
272     Distribution.Types.PackageVersionConstraint,
273     Distribution.Types.PkgconfigDependency,
274     Distribution.Types.PkgconfigName,
275     Distribution.Types.PkgconfigVersion,
276     Distribution.Types.PkgconfigVersionRange,
277     Distribution.Types.SetupBuildInfo,
278     Distribution.Types.SetupBuildInfo.Lens,
279     Distribution.Types.SourceRepo,
280     Distribution.Types.SourceRepo.Lens,
281     Distribution.Types.TestSuite,
282     Distribution.Types.TestSuite.Lens,
283     Distribution.Types.TestSuiteInterface,
284     Distribution.Types.TestType,
285     Distribution.Types.UnitId,
286     Distribution.Types.UnqualComponentName,
287     Distribution.Types.Version,
288     Distribution.Types.VersionInterval,
289     Distribution.Types.VersionInterval.Legacy,
290     Distribution.Types.VersionRange,
291     Distribution.Types.VersionRange.Internal,
292     Distribution.Utils.Base62,
293     Distribution.Utils.Generic,
294     Distribution.Utils.MD5,
295     Distribution.Utils.Path,
296     Distribution.Utils.ShortText,
297     Distribution.Utils.String,
298     Distribution.Utils.Structured,
299     Distribution.Version,
300     Language.Haskell.Extension
302   -- Parsec parser-related modules
303   build-depends:
304     -- transformers-0.4.0.0 doesn't have record syntax e.g. for Identity
305     -- See also https://github.com/ekmett/transformers-compat/issues/35
306     transformers (>= 0.3      && < 0.4) || (>=0.4.1.0 && <0.6),
307     mtl           >= 2.1      && < 2.3,
308     text         (>= 1.2.3.0  && < 1.3) || (>= 2.0 && < 2.1),
309     parsec        >= 3.1.13.0 && < 3.2
311   other-modules:
312     Distribution.Backpack.PreExistingComponent
313     Distribution.Backpack.ReadyComponent
314     Distribution.Backpack.MixLink
315     Distribution.Backpack.ModuleScope
316     Distribution.Backpack.UnifyM
317     Distribution.Backpack.Id
318     Distribution.Utils.UnionFind
319     Distribution.Compat.Async
320     Distribution.Compat.CopyFile
321     Distribution.Compat.GetShortPathName
322     Distribution.Compat.SnocList
323     Distribution.GetOpt
324     Distribution.Lex
325     Distribution.Simple.Build.Macros.Z
326     Distribution.Simple.Build.PathsModule.Z
327     Distribution.Simple.GHC.EnvironmentParser
328     Distribution.Simple.GHC.Internal
329     Distribution.Simple.GHC.ImplInfo
330     Distribution.ZinzaPrelude
331     Paths_Cabal
333   autogen-modules:
334     Paths_Cabal
336   other-extensions:
337     BangPatterns
338     CPP
339     DefaultSignatures
340     DeriveDataTypeable
341     DeriveFoldable
342     DeriveFunctor
343     DeriveGeneric
344     DeriveTraversable
345     ExistentialQuantification
346     FlexibleContexts
347     FlexibleInstances
348     GeneralizedNewtypeDeriving
349     ImplicitParams
350     KindSignatures
351     LambdaCase
352     NondecreasingIndentation
353     OverloadedStrings
354     PatternSynonyms
355     RankNTypes
356     RecordWildCards
357     ScopedTypeVariables
358     StandaloneDeriving
359     Trustworthy
360     TypeFamilies
361     TypeOperators
362     TypeSynonymInstances
363     UndecidableInstances