Make `check` recognise `main-is` in conditional branches (#9768)
[cabal.git] / Cabal / Cabal.cabal
blobeb3b6e055f99d1925e51b5b3c539f0081340ecfd
1 cabal-version: 2.2
2 name:          Cabal
3 version:       3.11.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.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.Glob.Internal
112     Distribution.Simple.HaskellSuite
113     Distribution.Simple.Hpc
114     Distribution.Simple.Install
115     Distribution.Simple.InstallDirs
116     Distribution.Simple.InstallDirs.Internal
117     Distribution.Simple.LocalBuildInfo
118     Distribution.Simple.PackageDescription
119     Distribution.Simple.PackageIndex
120     Distribution.Simple.PreProcess
121     Distribution.Simple.PreProcess.Types
122     Distribution.Simple.PreProcess.Unlit
123     Distribution.Simple.Program
124     Distribution.Simple.Program.Ar
125     Distribution.Simple.Program.Builtin
126     Distribution.Simple.Program.Db
127     Distribution.Simple.Program.Find
128     Distribution.Simple.Program.GHC
129     Distribution.Simple.Program.HcPkg
130     Distribution.Simple.Program.Hpc
131     Distribution.Simple.Program.Internal
132     Distribution.Simple.Program.Ld
133     Distribution.Simple.Program.ResponseFile
134     Distribution.Simple.Program.Run
135     Distribution.Simple.Program.Script
136     Distribution.Simple.Program.Strip
137     Distribution.Simple.Program.Types
138     Distribution.Simple.Register
139     Distribution.Simple.Setup
140     Distribution.Simple.ShowBuildInfo
141     Distribution.Simple.SrcDist
142     Distribution.Simple.Test
143     Distribution.Simple.Test.ExeV10
144     Distribution.Simple.Test.LibV09
145     Distribution.Simple.Test.Log
146     Distribution.Simple.UHC
147     Distribution.Simple.UserHooks
148     Distribution.Simple.Utils
149     Distribution.TestSuite
150     Distribution.Types.AnnotatedId
151     Distribution.Types.ComponentInclude
152     Distribution.Types.DumpBuildInfo
153     Distribution.Types.PackageName.Magic
154     Distribution.Types.ComponentLocalBuildInfo
155     Distribution.Types.LocalBuildConfig
156     Distribution.Types.LocalBuildInfo
157     Distribution.Types.TargetInfo
158     Distribution.Types.GivenComponent
159     Distribution.Types.ParStrat
160     Distribution.Utils.Json
161     Distribution.Utils.NubList
162     Distribution.Utils.Progress
163     Distribution.Verbosity
164     Distribution.Verbosity.Internal
166   -- We reexport all of Cabal-syntax to aid in compatibility for downstream
167   -- users. In the future we may opt to deprecate some or all of these exports.
168   -- See haskell/Cabal#7974.
169   reexported-modules:
170     Distribution.Backpack,
171     Distribution.CabalSpecVersion,
172     Distribution.Compat.Binary,
173     Distribution.Compat.CharParsing,
174     Distribution.Compat.DList,
175     Distribution.Compat.Exception,
176     Distribution.Compat.Graph,
177     Distribution.Compat.Lens,
178     Distribution.Compat.MonadFail,
179     Distribution.Compat.Newtype,
180     Distribution.Compat.NonEmptySet,
181     Distribution.Compat.Parsing,
182     Distribution.Compat.Prelude,
183     Distribution.Compat.Semigroup,
184     Distribution.Compat.Typeable,
185     Distribution.Compiler,
186     Distribution.FieldGrammar,
187     Distribution.FieldGrammar.Class,
188     Distribution.FieldGrammar.FieldDescrs,
189     Distribution.FieldGrammar.Newtypes,
190     Distribution.FieldGrammar.Parsec,
191     Distribution.FieldGrammar.Pretty,
192     Distribution.Fields,
193     Distribution.Fields.ConfVar,
194     Distribution.Fields.Field,
195     Distribution.Fields.Lexer,
196     Distribution.Fields.LexerMonad,
197     Distribution.Fields.ParseResult,
198     Distribution.Fields.Parser,
199     Distribution.Fields.Pretty,
200     Distribution.InstalledPackageInfo,
201     Distribution.License,
202     Distribution.ModuleName,
203     Distribution.Package,
204     Distribution.PackageDescription,
205     Distribution.PackageDescription.Configuration,
206     Distribution.PackageDescription.FieldGrammar,
207     Distribution.PackageDescription.Parsec,
208     Distribution.PackageDescription.PrettyPrint,
209     Distribution.PackageDescription.Quirks,
210     Distribution.PackageDescription.Utils,
211     Distribution.Parsec,
212     Distribution.Parsec.Error,
213     Distribution.Parsec.FieldLineStream,
214     Distribution.Parsec.Position,
215     Distribution.Parsec.Warning,
216     Distribution.Pretty,
217     Distribution.SPDX,
218     Distribution.SPDX.License,
219     Distribution.SPDX.LicenseExceptionId,
220     Distribution.SPDX.LicenseExpression,
221     Distribution.SPDX.LicenseId,
222     Distribution.SPDX.LicenseListVersion,
223     Distribution.SPDX.LicenseReference,
224     Distribution.System,
225     Distribution.Text,
226     Distribution.Types.AbiDependency,
227     Distribution.Types.AbiHash,
228     Distribution.Types.Benchmark,
229     Distribution.Types.Benchmark.Lens,
230     Distribution.Types.BenchmarkInterface,
231     Distribution.Types.BenchmarkType,
232     Distribution.Types.BuildInfo,
233     Distribution.Types.BuildInfo.Lens,
234     Distribution.Types.BuildType,
235     Distribution.Types.Component,
236     Distribution.Types.ComponentId,
237     Distribution.Types.ComponentName,
238     Distribution.Types.ComponentRequestedSpec,
239     Distribution.Types.CondTree,
240     Distribution.Types.Condition,
241     Distribution.Types.ConfVar,
242     Distribution.Types.Dependency,
243     Distribution.Types.DependencyMap,
244     Distribution.Types.ExeDependency,
245     Distribution.Types.Executable,
246     Distribution.Types.Executable.Lens,
247     Distribution.Types.ExecutableScope,
248     Distribution.Types.ExposedModule,
249     Distribution.Types.Flag,
250     Distribution.Types.ForeignLib,
251     Distribution.Types.ForeignLib.Lens,
252     Distribution.Types.ForeignLibOption,
253     Distribution.Types.ForeignLibType,
254     Distribution.Types.GenericPackageDescription,
255     Distribution.Types.GenericPackageDescription.Lens,
256     Distribution.Types.HookedBuildInfo,
257     Distribution.Types.IncludeRenaming,
258     Distribution.Types.InstalledPackageInfo,
259     Distribution.Types.InstalledPackageInfo.Lens,
260     Distribution.Types.InstalledPackageInfo.FieldGrammar,
261     Distribution.Types.LegacyExeDependency,
262     Distribution.Types.Lens,
263     Distribution.Types.Library,
264     Distribution.Types.Library.Lens,
265     Distribution.Types.LibraryName,
266     Distribution.Types.LibraryVisibility,
267     Distribution.Types.Mixin,
268     Distribution.Types.Module,
269     Distribution.Types.ModuleReexport,
270     Distribution.Types.ModuleRenaming,
271     Distribution.Types.MungedPackageId,
272     Distribution.Types.MungedPackageName,
273     Distribution.Types.PackageDescription,
274     Distribution.Types.PackageDescription.Lens,
275     Distribution.Types.PackageId,
276     Distribution.Types.PackageId.Lens,
277     Distribution.Types.PackageName,
278     Distribution.Types.PackageVersionConstraint,
279     Distribution.Types.PkgconfigDependency,
280     Distribution.Types.PkgconfigName,
281     Distribution.Types.PkgconfigVersion,
282     Distribution.Types.PkgconfigVersionRange,
283     Distribution.Types.SetupBuildInfo,
284     Distribution.Types.SetupBuildInfo.Lens,
285     Distribution.Types.SourceRepo,
286     Distribution.Types.SourceRepo.Lens,
287     Distribution.Types.TestSuite,
288     Distribution.Types.TestSuite.Lens,
289     Distribution.Types.TestSuiteInterface,
290     Distribution.Types.TestType,
291     Distribution.Types.UnitId,
292     Distribution.Types.UnqualComponentName,
293     Distribution.Types.Version,
294     Distribution.Types.VersionInterval,
295     Distribution.Types.VersionInterval.Legacy,
296     Distribution.Types.VersionRange,
297     Distribution.Types.VersionRange.Internal,
298     Distribution.Utils.Base62,
299     Distribution.Utils.Generic,
300     Distribution.Utils.MD5,
301     Distribution.Utils.Path,
302     Distribution.Utils.ShortText,
303     Distribution.Utils.String,
304     Distribution.Utils.Structured,
305     Distribution.Version,
306     Language.Haskell.Extension
308   -- Parsec parser-related modules
309   build-depends:
310     -- transformers-0.4.0.0 doesn't have record syntax e.g. for Identity
311     -- See also https://github.com/ekmett/transformers-compat/issues/35
312     transformers (>= 0.3      && < 0.4) || (>=0.4.1.0 && <0.7),
313     mtl           >= 2.1      && < 2.4,
314     parsec        >= 3.1.13.0 && < 3.2
316   other-modules:
317     Distribution.Backpack.PreExistingComponent
318     Distribution.Backpack.ReadyComponent
319     Distribution.Backpack.MixLink
320     Distribution.Backpack.ModuleScope
321     Distribution.Backpack.UnifyM
322     Distribution.Backpack.Id
323     Distribution.Utils.UnionFind
324     Distribution.Compat.Async
325     Distribution.Compat.CopyFile
326     Distribution.Compat.GetShortPathName
327     Distribution.Compat.SnocList
328     Distribution.GetOpt
329     Distribution.Lex
330     Distribution.PackageDescription.Check.Common
331     Distribution.PackageDescription.Check.Conditional
332     Distribution.PackageDescription.Check.Monad
333     Distribution.PackageDescription.Check.Paths
334     Distribution.PackageDescription.Check.Target
335     Distribution.PackageDescription.Check.Warning
336     Distribution.Simple.Build.Macros.Z
337     Distribution.Simple.Build.PackageInfoModule.Z
338     Distribution.Simple.Build.PathsModule.Z
339     Distribution.Simple.GHC.Build
340     Distribution.Simple.GHC.Build.ExtraSources
341     Distribution.Simple.GHC.Build.Link
342     Distribution.Simple.GHC.Build.Modules
343     Distribution.Simple.GHC.Build.Utils
344     Distribution.Simple.GHC.EnvironmentParser
345     Distribution.Simple.GHC.Internal
346     Distribution.Simple.GHC.ImplInfo
347     Distribution.Simple.ConfigureScript
348     Distribution.Simple.Setup.Benchmark
349     Distribution.Simple.Setup.Build
350     Distribution.Simple.Setup.Clean
351     Distribution.Simple.Setup.Common
352     Distribution.Simple.Setup.Config
353     Distribution.Simple.Setup.Copy
354     Distribution.Simple.Setup.Global
355     Distribution.Simple.Setup.Haddock
356     Distribution.Simple.Setup.Hscolour
357     Distribution.Simple.Setup.Install
358     Distribution.Simple.Setup.Register
359     Distribution.Simple.Setup.Repl
360     Distribution.Simple.Setup.SDist
361     Distribution.Simple.Setup.Test
362     Distribution.ZinzaPrelude
363     Paths_Cabal
365   autogen-modules:
366     Paths_Cabal
368   other-extensions:
369     BangPatterns
370     CPP
371     DefaultSignatures
372     DeriveDataTypeable
373     DeriveFoldable
374     DeriveFunctor
375     DeriveGeneric
376     DeriveTraversable
377     ExistentialQuantification
378     FlexibleContexts
379     FlexibleInstances
380     GeneralizedNewtypeDeriving
381     ImplicitParams
382     KindSignatures
383     LambdaCase
384     NondecreasingIndentation
385     OverloadedStrings
386     PatternSynonyms
387     RankNTypes
388     RecordWildCards
389     ScopedTypeVariables
390     StandaloneDeriving
391     Trustworthy
392     TypeFamilies
393     TypeOperators
394     TypeSynonymInstances
395     UndecidableInstances