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