Bump Win32 bound
[cabal.git] / Cabal / Cabal.cabal
blob1adb417f0087b42cd77a08d969a1cee9fcb627c4
1 cabal-version: >=1.10
2 name:          Cabal
3 version:       3.5.0.0
4 copyright:     2003-2020, Cabal Development Team (see AUTHORS file)
5 license:       BSD3
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 flag bundled-binary-generic
33   default: False
35 library
36   default-language: Haskell2010
37   hs-source-dirs: src
39   build-depends:
40     array      >= 0.4.0.1  && < 0.6,
41     base       >= 4.6      && < 5,
42     bytestring >= 0.10.0.0 && < 0.12,
43     containers >= 0.5.0.0  && < 0.7,
44     deepseq    >= 1.3.0.1  && < 1.5,
45     directory  >= 1.2      && < 1.4,
46     filepath   >= 1.3.0.1  && < 1.5,
47     pretty     >= 1.1.1    && < 1.2,
48     process    >= 1.1.0.2  && < 1.7,
49     time       >= 1.4.0.1  && < 1.12
51   if flag(bundled-binary-generic)
52     build-depends: binary >= 0.5.1.1 && < 0.7
53   else
54     build-depends: binary >= 0.7 && < 0.9
56   if os(windows)
57     build-depends: Win32 >= 2.3.0.0 && < 2.13
58   else
59     build-depends: unix  >= 2.6.0.0 && < 2.8
61   ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates
62   if impl(ghc >= 8.0)
63     ghc-options: -Wcompat -Wnoncanonical-monad-instances
65     if impl(ghc <8.8)
66       ghc-options: -Wnoncanonical-monadfail-instances
68   if !impl(ghc >= 8.0)
69     -- at least one of lib:Cabal's dependency (i.e. `parsec`)
70     -- already depends on `fail` and `semigroups` transitively
71     build-depends: fail == 4.9.*, semigroups >= 0.18.3 && < 0.20
73   if !impl(ghc >= 7.10)
74     build-depends: void >= 0.7.3 && < 0.8
76   if !impl(ghc >= 7.8)
77     -- semigroups depends on tagged.
78     build-depends:  tagged >=0.8.6 && <0.9
80   exposed-modules:
81     Distribution.Backpack
82     Distribution.Backpack.Configure
83     Distribution.Backpack.ComponentsGraph
84     Distribution.Backpack.ConfiguredComponent
85     Distribution.Backpack.DescribeUnitId
86     Distribution.Backpack.FullUnitId
87     Distribution.Backpack.LinkedComponent
88     Distribution.Backpack.ModSubst
89     Distribution.Backpack.ModuleShape
90     Distribution.Backpack.PreModuleShape
91     Distribution.CabalSpecVersion
92     Distribution.Utils.IOData
93     Distribution.Utils.Path
94     Distribution.Utils.LogProgress
95     Distribution.Utils.MapAccum
96     Distribution.Utils.MD5
97     Distribution.Utils.Structured
98     Distribution.Compat.CreatePipe
99     Distribution.Compat.Directory
100     Distribution.Compat.Environment
101     Distribution.Compat.Exception
102     Distribution.Compat.FilePath
103     Distribution.Compat.Graph
104     Distribution.Compat.Internal.TempFile
105     Distribution.Compat.Newtype
106     Distribution.Compat.NonEmptySet
107     Distribution.Compat.ResponseFile
108     Distribution.Compat.Prelude.Internal
109     Distribution.Compat.Process
110     Distribution.Compat.Semigroup
111     Distribution.Compat.Stack
112     Distribution.Compat.Time
113     Distribution.Compat.Typeable
114     Distribution.Compat.DList
115     Distribution.Compiler
116     Distribution.InstalledPackageInfo
117     Distribution.Types.AbiDependency
118     Distribution.Types.ExposedModule
119     Distribution.Types.InstalledPackageInfo
120     Distribution.Types.InstalledPackageInfo.FieldGrammar
121     Distribution.License
122     Distribution.Make
123     Distribution.ModuleName
124     Distribution.Package
125     Distribution.PackageDescription
126     Distribution.PackageDescription.Check
127     Distribution.PackageDescription.Configuration
128     Distribution.PackageDescription.PrettyPrint
129     Distribution.PackageDescription.Utils
130     Distribution.ReadE
131     Distribution.Simple
132     Distribution.Simple.Bench
133     Distribution.Simple.Build
134     Distribution.Simple.Build.Macros
135     Distribution.Simple.Build.PathsModule
136     Distribution.Simple.BuildPaths
137     Distribution.Simple.BuildTarget
138     Distribution.Simple.BuildToolDepends
139     Distribution.Simple.CCompiler
140     Distribution.Simple.Command
141     Distribution.Simple.Compiler
142     Distribution.Simple.Configure
143     Distribution.Simple.Flag
144     Distribution.Simple.GHC
145     Distribution.Simple.GHCJS
146     Distribution.Simple.Haddock
147     Distribution.Simple.Glob
148     Distribution.Simple.HaskellSuite
149     Distribution.Simple.Hpc
150     Distribution.Simple.Install
151     Distribution.Simple.InstallDirs
152     Distribution.Simple.InstallDirs.Internal
153     Distribution.Simple.LocalBuildInfo
154     Distribution.Simple.PackageIndex
155     Distribution.Simple.PreProcess
156     Distribution.Simple.PreProcess.Unlit
157     Distribution.Simple.Program
158     Distribution.Simple.Program.Ar
159     Distribution.Simple.Program.Builtin
160     Distribution.Simple.Program.Db
161     Distribution.Simple.Program.Find
162     Distribution.Simple.Program.GHC
163     Distribution.Simple.Program.HcPkg
164     Distribution.Simple.Program.Hpc
165     Distribution.Simple.Program.Internal
166     Distribution.Simple.Program.Ld
167     Distribution.Simple.Program.ResponseFile
168     Distribution.Simple.Program.Run
169     Distribution.Simple.Program.Script
170     Distribution.Simple.Program.Strip
171     Distribution.Simple.Program.Types
172     Distribution.Simple.Register
173     Distribution.Simple.Setup
174     Distribution.Simple.ShowBuildInfo
175     Distribution.Simple.SrcDist
176     Distribution.Simple.Test
177     Distribution.Simple.Test.ExeV10
178     Distribution.Simple.Test.LibV09
179     Distribution.Simple.Test.Log
180     Distribution.Simple.UHC
181     Distribution.Simple.UserHooks
182     Distribution.Simple.Utils
183     Distribution.SPDX
184     Distribution.SPDX.License
185     Distribution.SPDX.LicenseId
186     Distribution.SPDX.LicenseExceptionId
187     Distribution.SPDX.LicenseExpression
188     Distribution.SPDX.LicenseListVersion
189     Distribution.SPDX.LicenseReference
190     Distribution.System
191     Distribution.TestSuite
192     Distribution.Text
193     Distribution.Pretty
194     Distribution.Types.AbiHash
195     Distribution.Types.AnnotatedId
196     Distribution.Types.Benchmark
197     Distribution.Types.BenchmarkInterface
198     Distribution.Types.BenchmarkType
199     Distribution.Types.BuildInfo
200     Distribution.Types.BuildType
201     Distribution.Types.ComponentInclude
202     Distribution.Types.ConfVar
203     Distribution.Types.Dependency
204     Distribution.Types.ExeDependency
205     Distribution.Types.LegacyExeDependency
206     Distribution.Types.PkgconfigDependency
207     Distribution.Types.DependencyMap
208     Distribution.Types.ComponentId
209     Distribution.Types.MungedPackageId
210     Distribution.Types.PackageId
211     Distribution.Types.UnitId
212     Distribution.Types.Executable
213     Distribution.Types.ExecutableScope
214     Distribution.Types.Library
215     Distribution.Types.LibraryVisibility
216     Distribution.Types.Flag
217     Distribution.Types.ForeignLib
218     Distribution.Types.ForeignLibType
219     Distribution.Types.ForeignLibOption
220     Distribution.Types.Module
221     Distribution.Types.ModuleReexport
222     Distribution.Types.ModuleRenaming
223     Distribution.Types.ComponentName
224     Distribution.Types.LibraryName
225     Distribution.Types.MungedPackageName
226     Distribution.Types.PackageName
227     Distribution.Types.PackageName.Magic
228     Distribution.Types.PkgconfigName
229     Distribution.Types.PkgconfigVersion
230     Distribution.Types.PkgconfigVersionRange
231     Distribution.Types.UnqualComponentName
232     Distribution.Types.IncludeRenaming
233     Distribution.Types.Mixin
234     Distribution.Types.SetupBuildInfo
235     Distribution.Types.TestSuite
236     Distribution.Types.TestSuiteInterface
237     Distribution.Types.TestType
238     Distribution.Types.GenericPackageDescription
239     Distribution.Types.Condition
240     Distribution.Types.CondTree
241     Distribution.Types.HookedBuildInfo
242     Distribution.Types.PackageDescription
243     Distribution.Types.SourceRepo
244     Distribution.Types.Component
245     Distribution.Types.ComponentLocalBuildInfo
246     Distribution.Types.LocalBuildInfo
247     Distribution.Types.ComponentRequestedSpec
248     Distribution.Types.TargetInfo
249     Distribution.Types.Version
250     Distribution.Types.VersionRange
251     Distribution.Types.VersionRange.Internal
252     Distribution.Types.VersionInterval
253     Distribution.Types.VersionInterval.Legacy
254     Distribution.Types.GivenComponent
255     Distribution.Types.PackageVersionConstraint
256     Distribution.Utils.Generic
257     Distribution.Utils.NubList
258     Distribution.Utils.ShortText
259     Distribution.Utils.Progress
260     Distribution.Verbosity
261     Distribution.Verbosity.Internal
262     Distribution.Version
263     Language.Haskell.Extension
264     Distribution.Compat.Binary
266   -- Parsec parser-related modules
267   build-depends:
268     -- transformers-0.4.0.0 doesn't have record syntax e.g. for Identity
269     -- See also https://github.com/ekmett/transformers-compat/issues/35
270     transformers (>= 0.3      && < 0.4) || (>=0.4.1.0 && <0.6),
271     mtl           >= 2.1      && < 2.3,
272     text          >= 1.2.3.0  && < 1.3,
273     parsec        >= 3.1.13.0 && < 3.2
274   exposed-modules:
275     Distribution.Compat.Parsing
276     Distribution.Compat.CharParsing
277     Distribution.FieldGrammar
278     Distribution.FieldGrammar.Class
279     Distribution.FieldGrammar.FieldDescrs
280     Distribution.FieldGrammar.Newtypes
281     Distribution.FieldGrammar.Parsec
282     Distribution.FieldGrammar.Pretty
283     Distribution.PackageDescription.FieldGrammar
284     Distribution.PackageDescription.Parsec
285     Distribution.PackageDescription.Quirks
286     Distribution.Parsec
287     Distribution.Parsec.Error
288     Distribution.Parsec.Position
289     Distribution.Parsec.Warning
290     Distribution.Parsec.FieldLineStream
291     Distribution.Fields
292     Distribution.Fields.ConfVar
293     Distribution.Fields.Field
294     Distribution.Fields.Lexer
295     Distribution.Fields.LexerMonad
296     Distribution.Fields.ParseResult
297     Distribution.Fields.Parser
298     Distribution.Fields.Pretty
300   -- Lens functionality
301   exposed-modules:
302     Distribution.Compat.Lens
303     Distribution.Types.Lens
304     Distribution.Types.Benchmark.Lens
305     Distribution.Types.BuildInfo.Lens
306     Distribution.Types.Executable.Lens
307     Distribution.Types.ForeignLib.Lens
308     Distribution.Types.GenericPackageDescription.Lens
309     Distribution.Types.InstalledPackageInfo.Lens
310     Distribution.Types.Library.Lens
311     Distribution.Types.PackageDescription.Lens
312     Distribution.Types.PackageId.Lens
313     Distribution.Types.SetupBuildInfo.Lens
314     Distribution.Types.SourceRepo.Lens
315     Distribution.Types.TestSuite.Lens
317   other-modules:
318     Distribution.Backpack.PreExistingComponent
319     Distribution.Backpack.ReadyComponent
320     Distribution.Backpack.MixLink
321     Distribution.Backpack.ModuleScope
322     Distribution.Backpack.UnifyM
323     Distribution.Backpack.Id
324     Distribution.Utils.UnionFind
325     Distribution.Utils.Base62
326     Distribution.Compat.Async
327     Distribution.Compat.CopyFile
328     Distribution.Compat.GetShortPathName
329     Distribution.Compat.MonadFail
330     Distribution.Compat.Prelude
331     Distribution.Compat.SnocList
332     Distribution.GetOpt
333     Distribution.Lex
334     Distribution.Utils.String
335     Distribution.Simple.Build.Macros.Z
336     Distribution.Simple.Build.PathsModule.Z
337     Distribution.Simple.GHC.EnvironmentParser
338     Distribution.Simple.GHC.Internal
339     Distribution.Simple.GHC.ImplInfo
340     Distribution.Simple.Utils.Json
341     Distribution.ZinzaPrelude
342     Paths_Cabal
344   if flag(bundled-binary-generic)
345     other-modules:
346       Distribution.Compat.Binary.Class
347       Distribution.Compat.Binary.Generic
349   other-extensions:
350     BangPatterns
351     CPP
352     DefaultSignatures
353     DeriveDataTypeable
354     DeriveFoldable
355     DeriveFunctor
356     DeriveGeneric
357     DeriveTraversable
358     ExistentialQuantification
359     FlexibleContexts
360     FlexibleInstances
361     GeneralizedNewtypeDeriving
362     ImplicitParams
363     KindSignatures
364     NondecreasingIndentation
365     OverloadedStrings
366     RankNTypes
367     RecordWildCards
368     ScopedTypeVariables
369     StandaloneDeriving
370     Trustworthy
371     TypeFamilies
372     TypeOperators
373     TypeSynonymInstances
374     UndecidableInstances
376   if impl(ghc >= 7.11)
377     other-extensions: PatternSynonyms