Cabal.cabal 12.2 KB
Newer Older
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
1
name:          Cabal
2
version:       2.1.0.0
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
3
copyright:     2003-2017, Cabal Development Team (see AUTHORS file)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
4 5 6 7 8 9 10
license:       BSD3
license-file:  LICENSE
author:        Cabal Development Team <cabal-devel@haskell.org>
maintainer:    cabal-devel@haskell.org
homepage:      http://www.haskell.org/cabal/
bug-reports:   https://github.com/haskell/cabal/issues
synopsis:      A framework for packaging Haskell software
11
description:
12 13 14 15 16 17
  The Haskell Common Architecture for Building Applications and
  Libraries: a framework defining a common interface for authors to more
  easily build their Haskell applications in a portable way.
  .
  The Haskell Cabal is part of a larger infrastructure for distributing,
  organizing, and cataloging Haskell libraries and tools.
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
18 19 20
category:       Distribution
cabal-version:  >=1.10
build-type:     Simple
21 22
-- If we use a new Cabal feature, this needs to be changed to Custom so
-- we can bootstrap.
23

24
extra-source-files:
25
  README.md tests/README.md changelog
26 27 28 29
  doc/bugs-and-stability.rst doc/concepts-and-development.rst
  doc/conf.py doc/config-and-install.rst doc/developing-packages.rst
  doc/images/Cabal-dark.png doc/index.rst doc/installing-packages.rst
  doc/intro.rst doc/misc.rst doc/nix-local-build-overview.rst
30
  doc/nix-local-build.rst doc/README.md doc/references.inc
31

32 33 34
  -- Generated with 'misc/gen-extra-source-files.sh'
  -- Do NOT edit this section manually; instead, run the script.
  -- BEGIN gen-extra-source-files
Oleg Grenrus's avatar
Oleg Grenrus committed
35
  tests/ParserTests/warnings/bom.cabal
Oleg Grenrus's avatar
Oleg Grenrus committed
36 37 38 39
  tests/ParserTests/warnings/bool.cabal
  tests/ParserTests/warnings/deprecatedfield.cabal
  tests/ParserTests/warnings/extratestmodule.cabal
  tests/ParserTests/warnings/gluedop.cabal
Oleg Grenrus's avatar
Oleg Grenrus committed
40
  tests/ParserTests/warnings/nbsp.cabal
Oleg Grenrus's avatar
Oleg Grenrus committed
41 42 43 44 45 46 47 48
  tests/ParserTests/warnings/newsyntax.cabal
  tests/ParserTests/warnings/oldsyntax.cabal
  tests/ParserTests/warnings/subsection.cabal
  tests/ParserTests/warnings/trailingfield.cabal
  tests/ParserTests/warnings/unknownfield.cabal
  tests/ParserTests/warnings/unknownsection.cabal
  tests/ParserTests/warnings/utf8.cabal
  tests/ParserTests/warnings/versiontag.cabal
49 50
  tests/hackage/check.sh
  tests/hackage/download.sh
51 52
  tests/hackage/unpack.sh
  tests/misc/ghc-supported-languages.hs
53
  -- END gen-extra-source-files
54

55
source-repository head
56 57
  type:     git
  location: https://github.com/haskell/cabal/
58
  subdir:   Cabal
59

60 61 62
flag bundled-binary-generic
  default: False

63 64 65 66
flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

Oleg Grenrus's avatar
Oleg Grenrus committed
67 68 69 70 71
flag parsec
  description:  Use parsec parser
  default:      False
  manual:       True

Oleg Grenrus's avatar
Oleg Grenrus committed
72 73 74 75 76
flag parsec-struct-diff
  description:  Use StructDiff in parsec tests. Affects only parsec tests.
  default:      False
  manual:       True

77
library
78
  build-depends:
79 80 81 82
    array      >= 0.1 && < 0.6,
    base       >= 4.5 && < 5,
    bytestring >= 0.9 && < 1,
    containers >= 0.4 && < 0.6,
83
    deepseq    >= 1.3 && < 1.5,
84 85
    filepath   >= 1.3 && < 1.5,
    pretty     >= 1.1 && < 1.2,
Tamar Christina's avatar
Tamar Christina committed
86
    process    >= 1.1.0.1 && < 1.6,
87
    time       >= 1.4 && < 1.8
88

89 90 91 92
  if flag(old-directory)
    build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
                   process   >= 1.0.1.1  && < 1.1.0.2
  else
93
    build-depends: directory >= 1.2 && < 1.4,
Tamar Christina's avatar
Tamar Christina committed
94
                   process   >= 1.1.0.2  && < 1.6
95

96 97 98
  if flag(bundled-binary-generic)
    build-depends: binary >= 0.5 && < 0.7
  else
99
    build-depends: binary >= 0.7 && < 0.9
100

ttuegel's avatar
ttuegel committed
101 102 103 104
  -- Needed for GHC.Generics before GHC 7.6
  if impl(ghc < 7.6)
    build-depends: ghc-prim >= 0.2 && < 0.3

105
  if !os(windows)
106
    build-depends:
107
      unix >= 2.5 && < 2.8
108

Ben Gamari's avatar
Ben Gamari committed
109 110
  if os(windows)
    build-depends:
Ben Gamari's avatar
Ben Gamari committed
111
      Win32 >= 2.2 && < 2.6
Ben Gamari's avatar
Ben Gamari committed
112

113
  ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs
114
  if impl(ghc >= 8.0)
115 116
    ghc-options: -Wcompat -Wnoncanonical-monad-instances
                 -Wnoncanonical-monadfail-instances
117

118
  exposed-modules:
119
    Distribution.Backpack
120 121 122
    Distribution.Backpack.Configure
    Distribution.Backpack.ComponentsGraph
    Distribution.Backpack.ConfiguredComponent
123
    Distribution.Backpack.DescribeUnitId
124 125 126 127 128 129
    Distribution.Backpack.FullUnitId
    Distribution.Backpack.LinkedComponent
    Distribution.Backpack.ModSubst
    Distribution.Backpack.ModuleShape
    Distribution.Utils.LogProgress
    Distribution.Utils.MapAccum
ttuegel's avatar
ttuegel committed
130
    Distribution.Compat.CreatePipe
131
    Distribution.Compat.Environment
132
    Distribution.Compat.Exception
133
    Distribution.Compat.Graph
134
    Distribution.Compat.Internal.TempFile
135
    Distribution.Compat.Map.Strict
136
    Distribution.Compat.Prelude.Internal
137
    Distribution.Compat.ReadP
138
    Distribution.Compat.Semigroup
139
    Distribution.Compat.Stack
140
    Distribution.Compat.Time
141
    Distribution.Compat.DList
142 143 144 145 146 147 148 149 150 151 152 153 154
    Distribution.Compiler
    Distribution.InstalledPackageInfo
    Distribution.License
    Distribution.Make
    Distribution.ModuleName
    Distribution.Package
    Distribution.PackageDescription
    Distribution.PackageDescription.Check
    Distribution.PackageDescription.Configuration
    Distribution.PackageDescription.Parse
    Distribution.PackageDescription.PrettyPrint
    Distribution.PackageDescription.Utils
    Distribution.ParseUtils
Oleg Grenrus's avatar
Oleg Grenrus committed
155
    Distribution.PrettyUtils
156 157 158 159 160 161 162 163
    Distribution.ReadE
    Distribution.Simple
    Distribution.Simple.Bench
    Distribution.Simple.Build
    Distribution.Simple.Build.Macros
    Distribution.Simple.Build.PathsModule
    Distribution.Simple.BuildPaths
    Distribution.Simple.BuildTarget
John Ericson's avatar
John Ericson committed
164
    Distribution.Simple.BuildToolDepends
165 166 167 168 169
    Distribution.Simple.CCompiler
    Distribution.Simple.Command
    Distribution.Simple.Compiler
    Distribution.Simple.Configure
    Distribution.Simple.GHC
170
    Distribution.Simple.GHCJS
171
    Distribution.Simple.Haddock
172
    Distribution.Simple.HaskellSuite
173 174 175 176 177 178 179 180 181 182 183 184 185
    Distribution.Simple.Hpc
    Distribution.Simple.Install
    Distribution.Simple.InstallDirs
    Distribution.Simple.JHC
    Distribution.Simple.LHC
    Distribution.Simple.LocalBuildInfo
    Distribution.Simple.PackageIndex
    Distribution.Simple.PreProcess
    Distribution.Simple.PreProcess.Unlit
    Distribution.Simple.Program
    Distribution.Simple.Program.Ar
    Distribution.Simple.Program.Builtin
    Distribution.Simple.Program.Db
186
    Distribution.Simple.Program.Find
187 188 189
    Distribution.Simple.Program.GHC
    Distribution.Simple.Program.HcPkg
    Distribution.Simple.Program.Hpc
190
    Distribution.Simple.Program.Internal
191 192 193
    Distribution.Simple.Program.Ld
    Distribution.Simple.Program.Run
    Distribution.Simple.Program.Script
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
194
    Distribution.Simple.Program.Strip
195 196 197 198 199
    Distribution.Simple.Program.Types
    Distribution.Simple.Register
    Distribution.Simple.Setup
    Distribution.Simple.SrcDist
    Distribution.Simple.Test
ttuegel's avatar
ttuegel committed
200 201 202
    Distribution.Simple.Test.ExeV10
    Distribution.Simple.Test.LibV09
    Distribution.Simple.Test.Log
203 204 205 206 207 208
    Distribution.Simple.UHC
    Distribution.Simple.UserHooks
    Distribution.Simple.Utils
    Distribution.System
    Distribution.TestSuite
    Distribution.Text
209 210 211 212 213
    Distribution.Types.Benchmark
    Distribution.Types.BenchmarkInterface
    Distribution.Types.BenchmarkType
    Distribution.Types.BuildInfo
    Distribution.Types.BuildType
214
    Distribution.Types.ComponentInclude
215
    Distribution.Types.Dependency
216
    Distribution.Types.ExeDependency
217
    Distribution.Types.DependencyMap
218 219
    Distribution.Types.LegacyExeDependency
    Distribution.Types.PkgconfigDependency
220 221
    Distribution.Types.Executable
    Distribution.Types.Library
222 223 224
    Distribution.Types.ForeignLib
    Distribution.Types.ForeignLibType
    Distribution.Types.ForeignLibOption
225 226
    Distribution.Types.ModuleReexport
    Distribution.Types.ModuleRenaming
227
    Distribution.Types.IncludeRenaming
228
    Distribution.Types.Mixin
229 230 231 232 233 234
    Distribution.Types.SetupBuildInfo
    Distribution.Types.TestSuite
    Distribution.Types.TestSuiteInterface
    Distribution.Types.TestType
    Distribution.Types.ComponentName
    Distribution.Types.GenericPackageDescription
235 236
    Distribution.Types.Condition
    Distribution.Types.CondTree
237 238 239 240 241 242
    Distribution.Types.HookedBuildInfo
    Distribution.Types.PackageDescription
    Distribution.Types.SourceRepo
    Distribution.Types.Component
    Distribution.Types.ComponentLocalBuildInfo
    Distribution.Types.LocalBuildInfo
243
    Distribution.Types.ComponentRequestedSpec
244
    Distribution.Types.TargetInfo
245
    Distribution.Types.UnqualComponentName
246
    Distribution.Utils.Generic
247
    Distribution.Utils.NubList
248
    Distribution.Utils.ShortText
249
    Distribution.Utils.Progress
250 251
    Distribution.Verbosity
    Distribution.Version
252
    Language.Haskell.Extension
253
    Distribution.Compat.Binary
254

Oleg Grenrus's avatar
Oleg Grenrus committed
255 256 257 258 259 260
  if flag(parsec)
    cpp-options: -DCABAL_PARSEC
    build-depends:
      transformers,
      parsec >= 3.1.9 && <3.2
    build-tools:
Oleg Grenrus's avatar
Oleg Grenrus committed
261
      alex >=3.1.4 && <3.3
Oleg Grenrus's avatar
Oleg Grenrus committed
262 263 264 265 266 267 268 269 270 271 272 273 274 275
    exposed-modules:
      Distribution.Compat.Parsec
      Distribution.PackageDescription.Parsec
      Distribution.PackageDescription.Parsec.FieldDescr
      Distribution.Parsec.Class
      Distribution.Parsec.ConfVar
      Distribution.Parsec.Lexer
      Distribution.Parsec.LexerMonad
      Distribution.Parsec.Parser
      Distribution.Parsec.Types.Common
      Distribution.Parsec.Types.Field
      Distribution.Parsec.Types.FieldDescr
      Distribution.Parsec.Types.ParseResult

276
  other-modules:
277 278 279 280 281 282 283
    Distribution.Backpack.PreExistingComponent
    Distribution.Backpack.ReadyComponent
    Distribution.Backpack.MixLink
    Distribution.Backpack.ModuleScope
    Distribution.Backpack.UnifyM
    Distribution.Backpack.Id
    Distribution.Utils.UnionFind
284
    Distribution.Utils.Base62
285
    Distribution.Compat.CopyFile
286
    Distribution.Compat.GetShortPathName
287
    Distribution.Compat.MonadFail
288
    Distribution.Compat.Prelude
289
    Distribution.Compat.SnocList
290
    Distribution.GetOpt
291
    Distribution.Lex
292
    Distribution.Utils.String
293
    Distribution.Simple.GHC.Internal
294
    Distribution.Simple.GHC.IPI642
295
    Distribution.Simple.GHC.IPIConvert
296
    Distribution.Simple.GHC.ImplInfo
297
    Paths_Cabal
298

299 300 301 302 303
  if flag(bundled-binary-generic)
    other-modules:
      Distribution.Compat.Binary.Class
      Distribution.Compat.Binary.Generic

304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333
  default-language: Haskell2010
  other-extensions:
    BangPatterns
    CPP
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    ExistentialQuantification
    FlexibleContexts
    FlexibleInstances
    GeneralizedNewtypeDeriving
    ImplicitParams
    KindSignatures
    NondecreasingIndentation
    OverloadedStrings
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    Trustworthy
    TypeFamilies
    TypeOperators
    TypeSynonymInstances
    UndecidableInstances

  if impl(ghc >= 7.11)
    other-extensions: PatternSynonyms
334

335
-- Small, fast running tests.
336 337
test-suite unit-tests
  type: exitcode-stdio-1.0
338
  hs-source-dirs: tests
339
  other-modules:
340 341
    Test.Laws
    Test.QuickCheck.Utils
342 343
    UnitTests.Distribution.Compat.CreatePipe
    UnitTests.Distribution.Compat.ReadP
344
    UnitTests.Distribution.Compat.Time
345
    UnitTests.Distribution.Compat.Graph
346
    UnitTests.Distribution.Simple.Program.Internal
347
    UnitTests.Distribution.Simple.Utils
348
    UnitTests.Distribution.System
349
    UnitTests.Distribution.Utils.NubList
350
    UnitTests.Distribution.Utils.ShortText
351
    UnitTests.Distribution.Version
352
  main-is: UnitTests.hs
353
  build-depends:
354
    array,
355
    base,
356
    containers,
357
    directory,
358
    filepath,
359 360 361
    tasty,
    tasty-hunit,
    tasty-quickcheck,
362
    tagged,
363
    pretty,
Oleg Grenrus's avatar
Oleg Grenrus committed
364
    QuickCheck >= 2.7 && < 2.10,
365
    Cabal
tibbe's avatar
tibbe committed
366
  ghc-options: -Wall
367
  default-language: Haskell2010
368

Oleg Grenrus's avatar
Oleg Grenrus committed
369 370 371 372 373
test-suite parser-tests
  if !flag(parsec)
    buildable: False

  type: exitcode-stdio-1.0
Oleg Grenrus's avatar
Oleg Grenrus committed
374
  hs-source-dirs: tests
Oleg Grenrus's avatar
Oleg Grenrus committed
375
  main-is: ParserTests.hs
Oleg Grenrus's avatar
Oleg Grenrus committed
376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392
  build-depends:
    base,
    bytestring,
    filepath,
    tasty,
    tasty-hunit,
    tasty-quickcheck,
    Cabal
  ghc-options: -Wall
  default-language: Haskell2010

test-suite parser-hackage-tests
  if !flag(parsec)
    buildable: False

  type: exitcode-stdio-1.0
  main-is: ParserHackageTests.hs
Oleg Grenrus's avatar
Oleg Grenrus committed
393

Oleg Grenrus's avatar
Oleg Grenrus committed
394 395 396 397 398 399 400 401 402
  hs-source-dirs: tests
  build-depends:
    base,
    containers,
    tar >=0.5 && <0.6,
    bytestring,
    directory,
    filepath,
    Cabal
Oleg Grenrus's avatar
Oleg Grenrus committed
403 404 405 406 407 408 409 410 411 412 413 414

  if flag(parsec-struct-diff)
    build-depends:
      generics-sop ==0.2.*,
      these >=0.7.1 && <0.8,
      singleton-bool >=0.1.1.0 && <0.2,
      keys
    other-modules:
      DiffInstances
      StructDiff
    cpp-options: -DHAS_STRUCT_DIFF

Oleg Grenrus's avatar
Oleg Grenrus committed
415 416 417
  ghc-options: -Wall -rtsopts
  default-extensions: CPP
  default-language: Haskell2010