Merge pull request #10463 from geekosaur/backport-label
[cabal.git] / Cabal / Cabal.cabal
bloba9e108d1f7bdc3050acfdafe492eb9f398c5002c
1 cabal-version: 3.0
2 name:          Cabal
3 version:       3.15.0.0
4 copyright:     2003-2024, 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-doc-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.15,
38     array      >= 0.4.0.1  && < 0.6,
39     base       >= 4.13     && < 5,
40     bytestring >= 0.10.0.0 && < 0.13,
41     containers >= 0.5.0.0  && < 0.8,
42     deepseq    >= 1.3.0.1  && < 1.7,
43     directory  >= 1.2      && < 1.4,
44     filepath   >= 1.3.0.1  && < 1.6,
45     pretty     >= 1.1.1    && < 1.2,
46     process    >= 1.2.1.0  && < 1.7,
47     time       >= 1.4.0.1  && < 1.15
49   if os(windows)
50     build-depends: Win32 >= 2.3.0.0 && < 2.15
51   else
52     build-depends: unix  >= 2.6.0.0 && < 2.9
54   ghc-options:
55     -Wall
56     -fno-ignore-asserts
57     -fwarn-tabs
58     -fwarn-incomplete-uni-patterns
59     -fwarn-incomplete-record-updates
60     -fno-warn-unticked-promoted-constructors
62   if impl(ghc >= 8.0)
63     ghc-options: -Wcompat -Wnoncanonical-monad-instances
65   if impl(ghc >= 8.0) && impl(ghc < 8.8)
66     ghc-options: -Wnoncanonical-monadfail-instances
68   exposed-modules:
69     Distribution.Backpack.Configure
70     Distribution.Backpack.ComponentsGraph
71     Distribution.Backpack.ConfiguredComponent
72     Distribution.Backpack.DescribeUnitId
73     Distribution.Backpack.FullUnitId
74     Distribution.Backpack.LinkedComponent
75     Distribution.Backpack.ModSubst
76     Distribution.Backpack.ModuleShape
77     Distribution.Backpack.PreModuleShape
78     Distribution.Utils.IOData
79     Distribution.Utils.LogProgress
80     Distribution.Utils.MapAccum
81     Distribution.Compat.CreatePipe
82     Distribution.Compat.Directory
83     Distribution.Compat.Environment
84     Distribution.Compat.FilePath
85     Distribution.Compat.Internal.TempFile
86     Distribution.Compat.ResponseFile
87     Distribution.Compat.Prelude.Internal
88     Distribution.Compat.Process
89     Distribution.Compat.Stack
90     Distribution.Compat.Time
91     Distribution.Make
92     Distribution.PackageDescription.Check
93     Distribution.ReadE
94     Distribution.Simple
95     Distribution.Simple.Bench
96     Distribution.Simple.Build
97     Distribution.Simple.Build.Inputs
98     Distribution.Simple.Build.Macros
99     Distribution.Simple.Build.PackageInfoModule
100     Distribution.Simple.Build.PathsModule
101     Distribution.Simple.BuildPaths
102     Distribution.Simple.BuildTarget
103     Distribution.Simple.BuildToolDepends
104     Distribution.Simple.BuildWay
105     Distribution.Simple.CCompiler
106     Distribution.Simple.Command
107     Distribution.Simple.Compiler
108     Distribution.Simple.Configure
109     Distribution.Simple.Errors
110     Distribution.Simple.FileMonitor.Types
111     Distribution.Simple.Flag
112     Distribution.Simple.GHC
113     Distribution.Simple.GHCJS
114     Distribution.Simple.Haddock
115     Distribution.Simple.Glob
116     Distribution.Simple.Glob.Internal
117     Distribution.Simple.HaskellSuite
118     Distribution.Simple.Hpc
119     Distribution.Simple.Install
120     Distribution.Simple.InstallDirs
121     Distribution.Simple.InstallDirs.Internal
122     Distribution.Simple.LocalBuildInfo
123     Distribution.Simple.PackageDescription
124     Distribution.Simple.PackageIndex
125     Distribution.Simple.PreProcess
126     Distribution.Simple.PreProcess.Types
127     Distribution.Simple.PreProcess.Unlit
128     Distribution.Simple.Program
129     Distribution.Simple.Program.Ar
130     Distribution.Simple.Program.Builtin
131     Distribution.Simple.Program.Db
132     Distribution.Simple.Program.Find
133     Distribution.Simple.Program.GHC
134     Distribution.Simple.Program.HcPkg
135     Distribution.Simple.Program.Hpc
136     Distribution.Simple.Program.Internal
137     Distribution.Simple.Program.Ld
138     Distribution.Simple.Program.ResponseFile
139     Distribution.Simple.Program.Run
140     Distribution.Simple.Program.Script
141     Distribution.Simple.Program.Strip
142     Distribution.Simple.Program.Types
143     Distribution.Simple.Register
144     Distribution.Simple.Setup
145     Distribution.Simple.ShowBuildInfo
146     Distribution.Simple.SrcDist
147     Distribution.Simple.Test
148     Distribution.Simple.Test.ExeV10
149     Distribution.Simple.Test.LibV09
150     Distribution.Simple.Test.Log
151     Distribution.Simple.UHC
152     Distribution.Simple.UserHooks
153     Distribution.Simple.SetupHooks.Errors
154     Distribution.Simple.SetupHooks.Internal
155     Distribution.Simple.SetupHooks.Rule
156     Distribution.Simple.Utils
157     Distribution.TestSuite
158     Distribution.Types.AnnotatedId
159     Distribution.Types.ComponentInclude
160     Distribution.Types.DumpBuildInfo
161     Distribution.Types.PackageName.Magic
162     Distribution.Types.ComponentLocalBuildInfo
163     Distribution.Types.LocalBuildConfig
164     Distribution.Types.LocalBuildInfo
165     Distribution.Types.TargetInfo
166     Distribution.Types.GivenComponent
167     Distribution.Types.ParStrat
168     Distribution.Utils.Json
169     Distribution.Utils.NubList
170     Distribution.Utils.Progress
171     Distribution.Verbosity
172     Distribution.Verbosity.Internal
174   -- We reexport all of Cabal-syntax to aid in compatibility for downstream
175   -- users. In the future we may opt to deprecate some or all of these exports.
176   -- See haskell/Cabal#7974.
177   reexported-modules:
178     Distribution.Backpack,
179     Distribution.CabalSpecVersion,
180     Distribution.Compat.Binary,
181     Distribution.Compat.CharParsing,
182     Distribution.Compat.DList,
183     Distribution.Compat.Exception,
184     Distribution.Compat.Graph,
185     Distribution.Compat.Lens,
186     Distribution.Compat.MonadFail,
187     Distribution.Compat.Newtype,
188     Distribution.Compat.NonEmptySet,
189     Distribution.Compat.Parsing,
190     Distribution.Compat.Prelude,
191     Distribution.Compat.Semigroup,
192     Distribution.Compiler,
193     Distribution.FieldGrammar,
194     Distribution.FieldGrammar.Class,
195     Distribution.FieldGrammar.FieldDescrs,
196     Distribution.FieldGrammar.Newtypes,
197     Distribution.FieldGrammar.Parsec,
198     Distribution.FieldGrammar.Pretty,
199     Distribution.Fields,
200     Distribution.Fields.ConfVar,
201     Distribution.Fields.Field,
202     Distribution.Fields.Lexer,
203     Distribution.Fields.LexerMonad,
204     Distribution.Fields.ParseResult,
205     Distribution.Fields.Parser,
206     Distribution.Fields.Pretty,
207     Distribution.InstalledPackageInfo,
208     Distribution.License,
209     Distribution.ModuleName,
210     Distribution.Package,
211     Distribution.PackageDescription,
212     Distribution.PackageDescription.Configuration,
213     Distribution.PackageDescription.FieldGrammar,
214     Distribution.PackageDescription.Parsec,
215     Distribution.PackageDescription.PrettyPrint,
216     Distribution.PackageDescription.Quirks,
217     Distribution.PackageDescription.Utils,
218     Distribution.Parsec,
219     Distribution.Parsec.Error,
220     Distribution.Parsec.FieldLineStream,
221     Distribution.Parsec.Position,
222     Distribution.Parsec.Warning,
223     Distribution.Pretty,
224     Distribution.SPDX,
225     Distribution.SPDX.License,
226     Distribution.SPDX.LicenseExceptionId,
227     Distribution.SPDX.LicenseExpression,
228     Distribution.SPDX.LicenseId,
229     Distribution.SPDX.LicenseListVersion,
230     Distribution.SPDX.LicenseReference,
231     Distribution.System,
232     Distribution.Text,
233     Distribution.Types.AbiDependency,
234     Distribution.Types.AbiHash,
235     Distribution.Types.Benchmark,
236     Distribution.Types.Benchmark.Lens,
237     Distribution.Types.BenchmarkInterface,
238     Distribution.Types.BenchmarkType,
239     Distribution.Types.BuildInfo,
240     Distribution.Types.BuildInfo.Lens,
241     Distribution.Types.BuildType,
242     Distribution.Types.Component,
243     Distribution.Types.ComponentId,
244     Distribution.Types.ComponentName,
245     Distribution.Types.ComponentRequestedSpec,
246     Distribution.Types.CondTree,
247     Distribution.Types.Condition,
248     Distribution.Types.ConfVar,
249     Distribution.Types.Dependency,
250     Distribution.Types.DependencyMap,
251     Distribution.Types.DependencySatisfaction,
252     Distribution.Types.ExeDependency,
253     Distribution.Types.Executable,
254     Distribution.Types.Executable.Lens,
255     Distribution.Types.ExecutableScope,
256     Distribution.Types.ExposedModule,
257     Distribution.Types.Flag,
258     Distribution.Types.ForeignLib,
259     Distribution.Types.ForeignLib.Lens,
260     Distribution.Types.ForeignLibOption,
261     Distribution.Types.ForeignLibType,
262     Distribution.Types.GenericPackageDescription,
263     Distribution.Types.GenericPackageDescription.Lens,
264     Distribution.Types.HookedBuildInfo,
265     Distribution.Types.IncludeRenaming,
266     Distribution.Types.InstalledPackageInfo,
267     Distribution.Types.InstalledPackageInfo.Lens,
268     Distribution.Types.InstalledPackageInfo.FieldGrammar,
269     Distribution.Types.LegacyExeDependency,
270     Distribution.Types.Lens,
271     Distribution.Types.Library,
272     Distribution.Types.Library.Lens,
273     Distribution.Types.LibraryName,
274     Distribution.Types.LibraryVisibility,
275     Distribution.Types.MissingDependency,
276     Distribution.Types.MissingDependencyReason,
277     Distribution.Types.Mixin,
278     Distribution.Types.Module,
279     Distribution.Types.ModuleReexport,
280     Distribution.Types.ModuleRenaming,
281     Distribution.Types.MungedPackageId,
282     Distribution.Types.MungedPackageName,
283     Distribution.Types.PackageDescription,
284     Distribution.Types.PackageDescription.Lens,
285     Distribution.Types.PackageId,
286     Distribution.Types.PackageId.Lens,
287     Distribution.Types.PackageName,
288     Distribution.Types.PackageVersionConstraint,
289     Distribution.Types.PkgconfigDependency,
290     Distribution.Types.PkgconfigName,
291     Distribution.Types.PkgconfigVersion,
292     Distribution.Types.PkgconfigVersionRange,
293     Distribution.Types.SetupBuildInfo,
294     Distribution.Types.SetupBuildInfo.Lens,
295     Distribution.Types.SourceRepo,
296     Distribution.Types.SourceRepo.Lens,
297     Distribution.Types.TestSuite,
298     Distribution.Types.TestSuite.Lens,
299     Distribution.Types.TestSuiteInterface,
300     Distribution.Types.TestType,
301     Distribution.Types.UnitId,
302     Distribution.Types.UnqualComponentName,
303     Distribution.Types.Version,
304     Distribution.Types.VersionInterval,
305     Distribution.Types.VersionInterval.Legacy,
306     Distribution.Types.VersionRange,
307     Distribution.Types.VersionRange.Internal,
308     Distribution.Utils.Base62,
309     Distribution.Utils.Generic,
310     Distribution.Utils.MD5,
311     Distribution.Utils.Path,
312     Distribution.Utils.ShortText,
313     Distribution.Utils.String,
314     Distribution.Utils.Structured,
315     Distribution.Version,
316     Language.Haskell.Extension
318   -- Parsec parser-related modules
319   build-depends:
320     -- transformers-0.4.0.0 doesn't have record syntax e.g. for Identity
321     -- See also https://github.com/ekmett/transformers-compat/issues/35
322     transformers (>= 0.3      && < 0.4) || (>=0.4.1.0 && <0.7),
323     mtl           >= 2.1      && < 2.4,
324     parsec        >= 3.1.13.0 && < 3.2
326   other-modules:
327     Distribution.Backpack.PreExistingComponent
328     Distribution.Backpack.ReadyComponent
329     Distribution.Backpack.MixLink
330     Distribution.Backpack.ModuleScope
331     Distribution.Backpack.UnifyM
332     Distribution.Backpack.Id
333     Distribution.Utils.UnionFind
334     Distribution.Compat.Async
335     Distribution.Compat.CopyFile
336     Distribution.Compat.GetShortPathName
337     Distribution.Compat.SnocList
338     Distribution.GetOpt
339     Distribution.Lex
340     Distribution.PackageDescription.Check.Common
341     Distribution.PackageDescription.Check.Conditional
342     Distribution.PackageDescription.Check.Monad
343     Distribution.PackageDescription.Check.Paths
344     Distribution.PackageDescription.Check.Target
345     Distribution.PackageDescription.Check.Warning
346     Distribution.Simple.Build.Macros.Z
347     Distribution.Simple.Build.PackageInfoModule.Z
348     Distribution.Simple.Build.PathsModule.Z
349     Distribution.Simple.GHC.Build
350     Distribution.Simple.GHC.Build.ExtraSources
351     Distribution.Simple.GHC.Build.Link
352     Distribution.Simple.GHC.Build.Modules
353     Distribution.Simple.GHC.Build.Utils
354     Distribution.Simple.GHC.EnvironmentParser
355     Distribution.Simple.GHC.Internal
356     Distribution.Simple.GHC.ImplInfo
357     Distribution.Simple.ConfigureScript
358     Distribution.Simple.Setup.Benchmark
359     Distribution.Simple.Setup.Build
360     Distribution.Simple.Setup.Clean
361     Distribution.Simple.Setup.Common
362     Distribution.Simple.Setup.Config
363     Distribution.Simple.Setup.Copy
364     Distribution.Simple.Setup.Global
365     Distribution.Simple.Setup.Haddock
366     Distribution.Simple.Setup.Hscolour
367     Distribution.Simple.Setup.Install
368     Distribution.Simple.Setup.Register
369     Distribution.Simple.Setup.Repl
370     Distribution.Simple.Setup.SDist
371     Distribution.Simple.Setup.Test
372     Distribution.ZinzaPrelude
373     Paths_Cabal
375   autogen-modules:
376     Paths_Cabal
378   other-extensions:
379     BangPatterns
380     CPP
381     DefaultSignatures
382     DeriveDataTypeable
383     DeriveFoldable
384     DeriveFunctor
385     DeriveGeneric
386     DeriveTraversable
387     ExistentialQuantification
388     FlexibleContexts
389     FlexibleInstances
390     GeneralizedNewtypeDeriving
391     ImplicitParams
392     KindSignatures
393     LambdaCase
394     NondecreasingIndentation
395     OverloadedStrings
396     PatternSynonyms
397     RankNTypes
398     RecordWildCards
399     ScopedTypeVariables
400     StandaloneDeriving
401     Trustworthy
402     TypeFamilies
403     TypeOperators
404     TypeSynonymInstances
405     UndecidableInstances