cabal-install.cabal 26.3 KB
Newer Older
1
Name:               cabal-install
2
Version:            2.1.0.0
3
Synopsis:           The command-line interface for Cabal and Hackage.
4
Description:
5 6 7
    The \'cabal\' command-line program simplifies the process of managing
    Haskell software by automating the fetching, configuration, compilation
    and installation of Haskell libraries and programs.
Edward Z. Yang's avatar
Edward Z. Yang committed
8 9 10
    .
    This package only provides an executable and cannot be used as a
    library (ignore the module listing below.)
11
homepage:           http://www.haskell.org/cabal/
12
bug-reports:        https://github.com/haskell/cabal/issues
13 14
License:            BSD3
License-File:       LICENSE
15
Author:             Cabal Development Team (see AUTHORS file)
16
Maintainer:         Cabal Development Team <cabal-devel@haskell.org>
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
17
Copyright:          2003-2017, Cabal Development Team
18
Category:           Distribution
lspitzner's avatar
lspitzner committed
19
Build-type:         Custom
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
20
Cabal-Version:      >= 1.10
barmston's avatar
barmston committed
21 22
Extra-Source-Files:
  README.md bash-completion/cabal bootstrap.sh changelog
23
  tests/README.md
barmston's avatar
barmston committed
24

25 26 27
  -- Generated with '../Cabal/misc/gen-extra-source-files.sh'
  -- Do NOT edit this section manually; instead, run the script.
  -- BEGIN gen-extra-source-files
28 29 30
  tests/IntegrationTests/common.sh
  tests/IntegrationTests/exec/Foo.hs
  tests/IntegrationTests/exec/My.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
31 32 33 34 35 36
  tests/IntegrationTests/exec/T4049.sh
  tests/IntegrationTests/exec/T4049/UseLib.c
  tests/IntegrationTests/exec/T4049/csrc/MyForeignLibWrapper.c
  tests/IntegrationTests/exec/T4049/my-foreign-lib.cabal
  tests/IntegrationTests/exec/T4049/src/MyForeignLib/Hello.hs
  tests/IntegrationTests/exec/T4049/src/MyForeignLib/SomeBindings.hsc
37 38 39 40 41 42 43 44 45 46 47 48
  tests/IntegrationTests/exec/my.cabal
  tests/IntegrationTests/freeze/disable_benchmarks_freezes_bench_deps.sh
  tests/IntegrationTests/freeze/disable_tests_freezes_test_deps.sh
  tests/IntegrationTests/freeze/does_not_freeze_nondeps.sh
  tests/IntegrationTests/freeze/does_not_freeze_self.sh
  tests/IntegrationTests/freeze/dry_run_does_not_create_config.sh
  tests/IntegrationTests/freeze/enable_benchmarks_freezes_bench_deps.sh
  tests/IntegrationTests/freeze/enable_tests_freezes_test_deps.sh
  tests/IntegrationTests/freeze/freezes_direct_dependencies.sh
  tests/IntegrationTests/freeze/freezes_transitive_dependencies.sh
  tests/IntegrationTests/freeze/my.cabal
  tests/IntegrationTests/freeze/runs_without_error.sh
49
  tests/IntegrationTests/internal-libs/cabal.project
50 51
  tests/IntegrationTests/internal-libs/internal_lib_basic.sh
  tests/IntegrationTests/internal-libs/internal_lib_shadow.sh
52
  tests/IntegrationTests/internal-libs/new_build.sh
53 54 55 56 57 58 59 60 61 62 63 64
  tests/IntegrationTests/internal-libs/p/Foo.hs
  tests/IntegrationTests/internal-libs/p/p.cabal
  tests/IntegrationTests/internal-libs/p/p/P.hs
  tests/IntegrationTests/internal-libs/p/q/Q.hs
  tests/IntegrationTests/internal-libs/q/Q.hs
  tests/IntegrationTests/internal-libs/q/q.cabal
  tests/IntegrationTests/manpage/outputs_manpage.sh
  tests/IntegrationTests/multiple-source/finds_second_source_of_multiple_source.sh
  tests/IntegrationTests/multiple-source/p/Setup.hs
  tests/IntegrationTests/multiple-source/p/p.cabal
  tests/IntegrationTests/multiple-source/q/Setup.hs
  tests/IntegrationTests/multiple-source/q/q.cabal
65 66 67 68 69 70
  tests/IntegrationTests/new-build/BuildToolsPath.sh
  tests/IntegrationTests/new-build/BuildToolsPath/A.hs
  tests/IntegrationTests/new-build/BuildToolsPath/MyCustomPreprocessor.hs
  tests/IntegrationTests/new-build/BuildToolsPath/build-tools-path.cabal
  tests/IntegrationTests/new-build/BuildToolsPath/cabal.project
  tests/IntegrationTests/new-build/BuildToolsPath/hello/Hello.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
71 72 73 74 75 76 77 78 79 80 81
  tests/IntegrationTests/new-build/T3460.sh
  tests/IntegrationTests/new-build/T3460/C.hs
  tests/IntegrationTests/new-build/T3460/Setup.hs
  tests/IntegrationTests/new-build/T3460/T3460.cabal
  tests/IntegrationTests/new-build/T3460/cabal.project
  tests/IntegrationTests/new-build/T3460/sub-package-A/A.hs
  tests/IntegrationTests/new-build/T3460/sub-package-A/Setup.hs
  tests/IntegrationTests/new-build/T3460/sub-package-A/sub-package-A.cabal
  tests/IntegrationTests/new-build/T3460/sub-package-B/B.hs
  tests/IntegrationTests/new-build/T3460/sub-package-B/Setup.hs
  tests/IntegrationTests/new-build/T3460/sub-package-B/sub-package-B.cabal
82 83 84 85 86
  tests/IntegrationTests/new-build/T3978.err
  tests/IntegrationTests/new-build/T3978.sh
  tests/IntegrationTests/new-build/T3978/cabal.project
  tests/IntegrationTests/new-build/T3978/p/p.cabal
  tests/IntegrationTests/new-build/T3978/q/q.cabal
87 88 89 90
  tests/IntegrationTests/new-build/T4017.sh
  tests/IntegrationTests/new-build/T4017/cabal.project
  tests/IntegrationTests/new-build/T4017/p/p.cabal
  tests/IntegrationTests/new-build/T4017/q/q.cabal
91 92 93 94 95
  tests/IntegrationTests/new-build/executable/Main.hs
  tests/IntegrationTests/new-build/executable/Setup.hs
  tests/IntegrationTests/new-build/executable/Test.hs
  tests/IntegrationTests/new-build/executable/a.cabal
  tests/IntegrationTests/new-build/executable/cabal.project
96 97 98 99 100 101
  tests/IntegrationTests/new-build/external_build_tools.sh
  tests/IntegrationTests/new-build/external_build_tools/cabal.project
  tests/IntegrationTests/new-build/external_build_tools/client/Hello.hs
  tests/IntegrationTests/new-build/external_build_tools/client/client.cabal
  tests/IntegrationTests/new-build/external_build_tools/happy/MyCustomPreprocessor.hs
  tests/IntegrationTests/new-build/external_build_tools/happy/happy.cabal
102
  tests/IntegrationTests/new-build/monitor_cabal_files.sh
103
  tests/IntegrationTests/new-build/monitor_cabal_files/cabal.project
104 105 106 107 108 109 110
  tests/IntegrationTests/new-build/monitor_cabal_files/p/P.hs
  tests/IntegrationTests/new-build/monitor_cabal_files/p/Setup.hs
  tests/IntegrationTests/new-build/monitor_cabal_files/p/p.cabal
  tests/IntegrationTests/new-build/monitor_cabal_files/q/Main.hs
  tests/IntegrationTests/new-build/monitor_cabal_files/q/Setup.hs
  tests/IntegrationTests/new-build/monitor_cabal_files/q/q-broken.cabal.in
  tests/IntegrationTests/new-build/monitor_cabal_files/q/q-fixed.cabal.in
111 112 113 114
  tests/IntegrationTests/regression/t2755.sh
  tests/IntegrationTests/regression/t2755/A.hs
  tests/IntegrationTests/regression/t2755/Setup.hs
  tests/IntegrationTests/regression/t2755/test-t2755.cabal
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
115 116 117 118
  tests/IntegrationTests/regression/t3199.sh
  tests/IntegrationTests/regression/t3199/Main.hs
  tests/IntegrationTests/regression/t3199/Setup.hs
  tests/IntegrationTests/regression/t3199/test-3199.cabal
119 120 121 122 123 124
  tests/IntegrationTests/regression/t3827.sh
  tests/IntegrationTests/regression/t3827/cabal.project
  tests/IntegrationTests/regression/t3827/p/P.hs
  tests/IntegrationTests/regression/t3827/p/p.cabal
  tests/IntegrationTests/regression/t3827/q/Main.hs
  tests/IntegrationTests/regression/t3827/q/q.cabal
125 126 127 128 129
  tests/IntegrationTests/sandbox-reinstalls/p/Main.hs
  tests/IntegrationTests/sandbox-reinstalls/p/p.cabal
  tests/IntegrationTests/sandbox-reinstalls/q/Q.hs
  tests/IntegrationTests/sandbox-reinstalls/q/q.cabal
  tests/IntegrationTests/sandbox-reinstalls/reinstall-modified-source.sh
130 131 132 133 134 135 136 137 138
  tests/IntegrationTests/sandbox-sources/fail_removing_source_thats_not_registered.err
  tests/IntegrationTests/sandbox-sources/fail_removing_source_thats_not_registered.sh
  tests/IntegrationTests/sandbox-sources/p/Setup.hs
  tests/IntegrationTests/sandbox-sources/p/p.cabal
  tests/IntegrationTests/sandbox-sources/q/Setup.hs
  tests/IntegrationTests/sandbox-sources/q/q.cabal
  tests/IntegrationTests/sandbox-sources/remove_nonexistent_source.sh
  tests/IntegrationTests/sandbox-sources/report_success_removing_source.out
  tests/IntegrationTests/sandbox-sources/report_success_removing_source.sh
139
  tests/IntegrationTests/user-config/common.sh
140 141 142 143 144 145 146 147
  tests/IntegrationTests/user-config/doesnt_overwrite_without_f.err
  tests/IntegrationTests/user-config/doesnt_overwrite_without_f.sh
  tests/IntegrationTests/user-config/overwrites_with_f.out
  tests/IntegrationTests/user-config/overwrites_with_f.sh
  tests/IntegrationTests/user-config/runs_without_error.out
  tests/IntegrationTests/user-config/runs_without_error.sh
  tests/IntegrationTests/user-config/uses_CABAL_CONFIG.out
  tests/IntegrationTests/user-config/uses_CABAL_CONFIG.sh
148 149 150 151 152
  tests/IntegrationTests2/build/keep-going/cabal.project
  tests/IntegrationTests2/build/keep-going/p/P.hs
  tests/IntegrationTests2/build/keep-going/p/p.cabal
  tests/IntegrationTests2/build/keep-going/q/Q.hs
  tests/IntegrationTests2/build/keep-going/q/q.cabal
153 154 155 156 157 158 159 160 161
  tests/IntegrationTests2/build/setup-custom1/A.hs
  tests/IntegrationTests2/build/setup-custom1/Setup.hs
  tests/IntegrationTests2/build/setup-custom1/a.cabal
  tests/IntegrationTests2/build/setup-custom2/A.hs
  tests/IntegrationTests2/build/setup-custom2/Setup.hs
  tests/IntegrationTests2/build/setup-custom2/a.cabal
  tests/IntegrationTests2/build/setup-simple/A.hs
  tests/IntegrationTests2/build/setup-simple/Setup.hs
  tests/IntegrationTests2/build/setup-simple/a.cabal
162
  tests/IntegrationTests2/exception/bad-config/cabal.project
163 164 165 166 167
  tests/IntegrationTests2/exception/build/Main.hs
  tests/IntegrationTests2/exception/build/a.cabal
  tests/IntegrationTests2/exception/configure/a.cabal
  tests/IntegrationTests2/exception/no-pkg/empty.in
  tests/IntegrationTests2/exception/no-pkg2/cabal.project
168 169 170 171 172
  tests/IntegrationTests2/regression/3324/cabal.project
  tests/IntegrationTests2/regression/3324/p/P.hs
  tests/IntegrationTests2/regression/3324/p/p.cabal
  tests/IntegrationTests2/regression/3324/q/Q.hs
  tests/IntegrationTests2/regression/3324/q/q.cabal
173 174 175 176 177
  tests/IntegrationTests2/targets/simple/P.hs
  tests/IntegrationTests2/targets/simple/cabal.project
  tests/IntegrationTests2/targets/simple/p.cabal
  tests/IntegrationTests2/targets/simple/q/Q.hs
  tests/IntegrationTests2/targets/simple/q/q.cabal
178
  -- END gen-extra-source-files
Duncan Coutts's avatar
Duncan Coutts committed
179 180

source-repository head
181 182
  type:     git
  location: https://github.com/haskell/cabal/
Duncan Coutts's avatar
Duncan Coutts committed
183
  subdir:   cabal-install
184

185 186 187 188
Flag old-bytestring
  description:  Use bytestring < 0.10.2 and bytestring-builder
  default: False

189 190 191 192
Flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

193 194 195 196
Flag network-uri
  description:  Get Network.URI from the network-uri package
  default:      True

197
Flag debug-expensive-assertions
198 199 200 201
  description:  Enable expensive assertions for testing or debugging
  default:      False
  manual:       True

202 203 204
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False
kristenk's avatar
kristenk committed
205
  manual:       True
206

Edsko de Vries's avatar
Edsko de Vries committed
207 208 209
Flag debug-tracetree
  description:  Compile in support for tracetree (used to debug the solver)
  default:      False
kristenk's avatar
kristenk committed
210
  manual:       True
Edsko de Vries's avatar
Edsko de Vries committed
211

212
flag parsec
213
  description:  Use parsec parser. This requires 'Cabal' library built with its parsec flag enabled.
214 215 216
  default:      False
  manual:       True

Edward Z. Yang's avatar
Edward Z. Yang committed
217 218 219 220 221 222 223
flag lib
  description:  Build cabal-install as a library. Please only use this if you are a cabal-install developer.
  default:      False
  manual:       True

library
    ghc-options:    -Wall -fwarn-tabs
224
    if impl(ghc >= 8.0)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
225 226 227
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances
228

Edward Z. Yang's avatar
Edward Z. Yang committed
229
    exposed-modules:
Duncan Coutts's avatar
Duncan Coutts committed
230 231
        Distribution.Client.BuildReports.Anonymous
        Distribution.Client.BuildReports.Storage
Duncan Coutts's avatar
Duncan Coutts committed
232
        Distribution.Client.BuildReports.Types
Duncan Coutts's avatar
Duncan Coutts committed
233
        Distribution.Client.BuildReports.Upload
234
        Distribution.Client.Check
235
        Distribution.Client.CmdBench
236 237
        Distribution.Client.CmdBuild
        Distribution.Client.CmdConfigure
Duncan Coutts's avatar
Duncan Coutts committed
238
        Distribution.Client.CmdFreeze
Ben Gamari's avatar
Ben Gamari committed
239
        Distribution.Client.CmdHaddock
240
        Distribution.Client.CmdRepl
241 242
        Distribution.Client.CmdRun
        Distribution.Client.CmdTest
243
        Distribution.Client.Config
Duncan Coutts's avatar
Duncan Coutts committed
244
        Distribution.Client.Configure
245 246
        Distribution.Client.Dependency
        Distribution.Client.Dependency.Types
Duncan Coutts's avatar
Duncan Coutts committed
247
        Distribution.Client.DistDirLayout
barmston's avatar
barmston committed
248
        Distribution.Client.Exec
249
        Distribution.Client.Fetch
Duncan Coutts's avatar
Duncan Coutts committed
250
        Distribution.Client.FetchUtils
251
        Distribution.Client.FileMonitor
252
        Distribution.Client.Freeze
253
        Distribution.Client.GenBounds
254
        Distribution.Client.Get
255
        Distribution.Client.Glob
256
        Distribution.Client.GlobalFlags
257
        Distribution.Client.GZipUtils
258
        Distribution.Client.Haddock
259 260
        Distribution.Client.HttpUtils
        Distribution.Client.IndexUtils
261
        Distribution.Client.IndexUtils.Timestamp
262 263 264 265
        Distribution.Client.Init
        Distribution.Client.Init.Heuristics
        Distribution.Client.Init.Licenses
        Distribution.Client.Init.Types
266 267
        Distribution.Client.Install
        Distribution.Client.InstallPlan
268
        Distribution.Client.InstallSymlink
269
        Distribution.Client.JobControl
270
        Distribution.Client.List
Maciek Makowski's avatar
Maciek Makowski committed
271
        Distribution.Client.Manpage
ttuegel's avatar
ttuegel committed
272
        Distribution.Client.Nix
273
        Distribution.Client.Outdated
Duncan Coutts's avatar
Duncan Coutts committed
274
        Distribution.Client.PackageHash
275
        Distribution.Client.PackageUtils
276
        Distribution.Client.ParseUtils
Duncan Coutts's avatar
Duncan Coutts committed
277
        Distribution.Client.ProjectBuilding
278
        Distribution.Client.ProjectBuilding.Types
279 280 281
        Distribution.Client.ProjectConfig
        Distribution.Client.ProjectConfig.Types
        Distribution.Client.ProjectConfig.Legacy
282
        Distribution.Client.ProjectOrchestration
Duncan Coutts's avatar
Duncan Coutts committed
283
        Distribution.Client.ProjectPlanning
284
        Distribution.Client.ProjectPlanning.Types
285
        Distribution.Client.ProjectPlanOutput
286
        Distribution.Client.RebuildMonad
ttuegel's avatar
ttuegel committed
287 288
        Distribution.Client.Reconfigure
        Distribution.Client.Run
289
        Distribution.Client.Sandbox
290 291
        Distribution.Client.Sandbox.Index
        Distribution.Client.Sandbox.PackageEnvironment
292
        Distribution.Client.Sandbox.Timestamp
293
        Distribution.Client.Sandbox.Types
ttuegel's avatar
ttuegel committed
294
        Distribution.Client.SavedFlags
295
        Distribution.Client.Security.DNS
Edsko de Vries's avatar
Edsko de Vries committed
296
        Distribution.Client.Security.HTTP
297 298 299
        Distribution.Client.Setup
        Distribution.Client.SetupWrapper
        Distribution.Client.SrcDist
300
        Distribution.Client.SolverInstallPlan
301
        Distribution.Client.SolverPlanIndex
302
        Distribution.Client.SourceFiles
303
        Distribution.Client.Tar
304
        Distribution.Client.Targets
305
        Distribution.Client.TargetSelector
306 307 308 309
        Distribution.Client.Types
        Distribution.Client.Update
        Distribution.Client.Upload
        Distribution.Client.Utils
310
        Distribution.Client.Utils.Assertion
311
        Distribution.Client.Utils.Json
312
        Distribution.Client.World
313
        Distribution.Client.Win32SelfUpgrade
314
        Distribution.Client.Compat.ExecutablePath
315
        Distribution.Client.Compat.FilePerms
316
        Distribution.Client.Compat.Prelude
317
        Distribution.Client.Compat.Process
318
        Distribution.Client.Compat.Semaphore
319
        Distribution.Solver.Types.ComponentDeps
320
        Distribution.Solver.Types.ConstraintSource
321
        Distribution.Solver.Types.DependencyResolver
322
        Distribution.Solver.Types.Flag
323
        Distribution.Solver.Types.InstalledPreference
324
        Distribution.Solver.Types.InstSolverPackage
325
        Distribution.Solver.Types.LabeledPackageConstraint
326
        Distribution.Solver.Types.OptionalStanza
327
        Distribution.Solver.Types.PackageConstraint
328 329
        Distribution.Solver.Types.PackageFixedDeps
        Distribution.Solver.Types.PackageIndex
330
        Distribution.Solver.Types.PackagePath
331
        Distribution.Solver.Types.PackagePreferences
332 333
        Distribution.Solver.Types.PkgConfigDb
        Distribution.Solver.Types.Progress
334
        Distribution.Solver.Types.ResolverPackage
335 336 337 338
        Distribution.Solver.Types.Settings
        Distribution.Solver.Types.SolverId
        Distribution.Solver.Types.SolverPackage
        Distribution.Solver.Types.SourcePackage
339
        Distribution.Solver.Types.Variable
340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
        Distribution.Solver.Modular
        Distribution.Solver.Modular.Assignment
        Distribution.Solver.Modular.Builder
        Distribution.Solver.Modular.Configured
        Distribution.Solver.Modular.ConfiguredConversion
        Distribution.Solver.Modular.ConflictSet
        Distribution.Solver.Modular.Cycles
        Distribution.Solver.Modular.Dependency
        Distribution.Solver.Modular.Explore
        Distribution.Solver.Modular.Flag
        Distribution.Solver.Modular.Index
        Distribution.Solver.Modular.IndexConversion
        Distribution.Solver.Modular.Linking
        Distribution.Solver.Modular.LabeledGraph
        Distribution.Solver.Modular.Log
        Distribution.Solver.Modular.Message
        Distribution.Solver.Modular.Package
        Distribution.Solver.Modular.Preference
        Distribution.Solver.Modular.PSQ
359
        Distribution.Solver.Modular.RetryLog
360 361 362 363 364
        Distribution.Solver.Modular.Solver
        Distribution.Solver.Modular.Tree
        Distribution.Solver.Modular.Validate
        Distribution.Solver.Modular.Var
        Distribution.Solver.Modular.Version
365
        Distribution.Solver.Modular.WeightedPSQ
366
        Paths_cabal_install
367

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
368 369
    -- NOTE: when updating build-depends, don't forget to update version regexps
    -- in bootstrap.sh.
Ben Millwood's avatar
Ben Millwood committed
370
    build-depends:
Duncan Coutts's avatar
Duncan Coutts committed
371
        async      >= 2.0      && < 3,
372 373
        array      >= 0.4      && < 0.6,
        base       >= 4.5      && < 5,
374
        base16-bytestring >= 0.1.1 && < 0.2,
375
        binary     >= 0.5      && < 0.9,
Ben Millwood's avatar
Ben Millwood committed
376
        bytestring >= 0.9      && < 1,
377
        Cabal      >= 2.1      && < 2.2,
378
        containers >= 0.4      && < 0.6,
379
        cryptohash-sha256 >= 0.11 && < 0.12,
380
        deepseq    >= 1.3      && < 1.5,
Ryan Scott's avatar
Ryan Scott committed
381
        echo       >= 0.1.3    && < 0.2,
382
        edit-distance >= 0.2.2 && < 0.3,
383
        filepath   >= 1.3      && < 1.5,
384
        hashable   >= 1.0      && < 2,
385
        HTTP       >= 4000.1.5 && < 4000.4,
Ben Millwood's avatar
Ben Millwood committed
386
        mtl        >= 2.0      && < 3,
387
        pretty     >= 1.1      && < 1.2,
dsf's avatar
dsf committed
388
        random     >= 1        && < 1.2,
Ben Millwood's avatar
Ben Millwood committed
389
        stm        >= 2.0      && < 3,
390
        tar        >= 0.5.0.3  && < 0.6,
391
        time       >= 1.4      && < 1.8,
Edsko de Vries's avatar
Edsko de Vries committed
392
        zlib       >= 0.5.3    && < 0.7,
393
        hackage-security >= 0.5.2.2 && < 0.6
394

395 396 397 398 399
    if flag(old-bytestring)
      build-depends: bytestring <  0.10.2, bytestring-builder >= 0.10 && < 1
    else
      build-depends: bytestring >= 0.10.2

400
    if flag(old-directory)
401
      build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
402
                     process   >= 1.0.1.1  && < 1.1.0.2
403
    else
404
      build-depends: directory >= 1.2 && < 1.4,
Tamar Christina's avatar
Tamar Christina committed
405
                     process   >= 1.1.0.2  && < 1.6
406

407 408 409
    -- NOTE: you MUST include the network dependency even when network-uri
    -- is pulled in, otherwise the constraint solver doesn't have enough
    -- information
410
    if flag(network-uri)
411
      build-depends: network-uri >= 2.6 && < 2.7, network >= 2.6 && < 2.7
412
    else
tibbe's avatar
tibbe committed
413
      build-depends: network     >= 2.4 && < 2.6
414

415 416 417 418
    -- Needed for GHC.Generics before GHC 7.6
    if impl(ghc < 7.6)
      build-depends: ghc-prim >= 0.2 && < 0.3

419
    if os(windows)
420
      build-depends: Win32 >= 2 && < 3
421
    else
422
      build-depends: unix >= 2.5 && < 2.8
423

424 425
    if flag(debug-expensive-assertions)
      cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
426

427 428 429 430
    if flag(debug-conflict-sets)
      cpp-options: -DDEBUG_CONFLICT_SETS
      build-depends: base >= 4.8

Edsko de Vries's avatar
Edsko de Vries committed
431 432 433 434
    if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

435 436 437
    if flag(parsec)
      cpp-options: -DCABAL_PARSEC

Edward Z. Yang's avatar
Edward Z. Yang committed
438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515
    if !flag(lib)
      buildable: False

    default-language: Haskell2010

executable cabal
    main-is:        Main.hs
    hs-source-dirs: main

    ghc-options:    -Wall -fwarn-tabs -rtsopts
    if impl(ghc >= 8.0)
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances

    if flag(lib)
        build-depends:
            cabal-install,
            Cabal      >= 2.1      && < 2.2,
            base,
            directory,
            filepath
    else
        hs-source-dirs: .
        build-depends:
            async      >= 2.0      && < 3,
            array      >= 0.4      && < 0.6,
            base       >= 4.5      && < 5,
            base16-bytestring >= 0.1.1 && < 0.2,
            binary     >= 0.5      && < 0.9,
            bytestring >= 0.9      && < 1,
            Cabal      >= 2.1      && < 2.2,
            containers >= 0.4      && < 0.6,
            cryptohash-sha256 >= 0.11 && < 0.12,
            deepseq    >= 1.3      && < 1.5,
            echo       >= 0.1.3    && < 0.2,
            edit-distance >= 0.2.2 && < 0.3,
            filepath   >= 1.3      && < 1.5,
            hashable   >= 1.0      && < 2,
            HTTP       >= 4000.1.5 && < 4000.4,
            mtl        >= 2.0      && < 3,
            pretty     >= 1.1      && < 1.2,
            random     >= 1        && < 1.2,
            stm        >= 2.0      && < 3,
            tar        >= 0.5.0.3  && < 0.6,
            time       >= 1.4      && < 1.8,
            zlib       >= 0.5.3    && < 0.7,
            hackage-security >= 0.5.2.2 && < 0.6

        if flag(old-bytestring)
          build-depends: bytestring <  0.10.2, bytestring-builder >= 0.10 && < 1
        else
          build-depends: bytestring >= 0.10.2

        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
          build-depends: directory >= 1.2 && < 1.4,
                         process   >= 1.1.0.2  && < 1.5

        -- NOTE: you MUST include the network dependency even when network-uri
        -- is pulled in, otherwise the constraint solver doesn't have enough
        -- information
        if flag(network-uri)
          build-depends: network-uri >= 2.6 && < 2.7, network >= 2.6 && < 2.7
        else
          build-depends: network     >= 2.4 && < 2.6

        -- Needed for GHC.Generics before GHC 7.6
        if impl(ghc < 7.6)
          build-depends: ghc-prim >= 0.2 && < 0.3

        if os(windows)
          build-depends: Win32 >= 2 && < 3
        else
          build-depends: unix >= 2.5 && < 2.8

516 517
        if flag(debug-expensive-assertions)
          cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
518

Edward Z. Yang's avatar
Edward Z. Yang committed
519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535
        if flag(debug-conflict-sets)
          cpp-options: -DDEBUG_CONFLICT_SETS
          build-depends: base >= 4.8

        if flag(debug-tracetree)
          cpp-options: -DDEBUG_TRACETREE
          build-depends: tracetree >= 0.1 && < 0.2

        if flag(parsec)
          cpp-options: -DCABAL_PARSEC

    if !(arch(arm) && impl(ghc < 7.6))
      ghc-options: -threaded

    if flag(parsec)
      cpp-options: -DCABAL_PARSEC

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
536
    default-language: Haskell2010
537

barmston's avatar
barmston committed
538
-- Small, fast running tests.
539 540 541
Test-Suite unit-tests
  type: exitcode-stdio-1.0
  main-is: UnitTests.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
542
  hs-source-dirs: tests
543 544
  ghc-options: -Wall -fwarn-tabs
  other-modules:
545
    UnitTests.Distribution.Client.ArbitraryInstances
546
    UnitTests.Distribution.Client.Targets
Duncan Coutts's avatar
Duncan Coutts committed
547
    UnitTests.Distribution.Client.FileMonitor
548
    UnitTests.Distribution.Client.Glob
549
    UnitTests.Distribution.Client.GZipUtils
550
    UnitTests.Distribution.Client.Sandbox
551
    UnitTests.Distribution.Client.Sandbox.Timestamp
552
    UnitTests.Distribution.Client.Tar
553
    UnitTests.Distribution.Client.UserConfig
554
    UnitTests.Distribution.Client.ProjectConfig
555
    UnitTests.Distribution.Client.JobControl
556
    UnitTests.Distribution.Client.IndexUtils.Timestamp
557
    UnitTests.Distribution.Client.InstallPlan
558
    UnitTests.Distribution.Solver.Modular.PSQ
559
    UnitTests.Distribution.Solver.Modular.RetryLog
560 561
    UnitTests.Distribution.Solver.Modular.Solver
    UnitTests.Distribution.Solver.Modular.DSL
562
    UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
kristenk's avatar
kristenk committed
563
    UnitTests.Distribution.Solver.Modular.WeightedPSQ
564
    UnitTests.Options
565
  build-depends:
Edward Z. Yang's avatar
Edward Z. Yang committed
566
        array,
567
        base,
Duncan Coutts's avatar
Duncan Coutts committed
568
        async,
569
        bytestring,
Edward Z. Yang's avatar
Edward Z. Yang committed
570
        cabal-install,
571 572
        Cabal,
        containers,
573
        deepseq,
574
        mtl,
Edward Z. Yang's avatar
Edward Z. Yang committed
575
        random,
576
        directory,
577
        filepath,
Duncan Coutts's avatar
Duncan Coutts committed
578
        tar,
579 580
        time,
        zlib,
Edward Z. Yang's avatar
Edward Z. Yang committed
581 582
        network-uri,
        network,
583 584 585
        tasty,
        tasty-hunit,
        tasty-quickcheck,
Edsko de Vries's avatar
Edsko de Vries committed
586
        tagged,
587
        QuickCheck >= 2.8.2
588

589
  if !(arch(arm) && impl(ghc < 7.6))
590
    ghc-options: -threaded
591

Edward Z. Yang's avatar
Edward Z. Yang committed
592 593
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
594

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
595
  default-language: Haskell2010
barmston's avatar
barmston committed
596

597
-- Tests to run with a limited stack and heap size
598 599 600
Test-Suite memory-usage-tests
  type: exitcode-stdio-1.0
  main-is: MemoryUsageTests.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
601
  hs-source-dirs: tests
602
  ghc-options: -Wall -fwarn-tabs "-with-rtsopts=-M4M -K1K"
603 604 605 606 607 608 609 610 611
  other-modules:
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
    UnitTests.Distribution.Solver.Modular.MemoryUsage
    UnitTests.Options
  build-depends:
        base,
        async,
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
612
        cabal-install,
613 614 615 616 617 618 619 620 621
        containers,
        deepseq,
        tagged,
        tasty,
        tasty-hunit

  if !(arch(arm) && impl(ghc < 7.6))
    ghc-options: -threaded

Edward Z. Yang's avatar
Edward Z. Yang committed
622 623
  if !flag(lib)
    buildable: False
624 625 626

  default-language: Haskell2010

627 628 629 630
-- Slow solver tests
Test-Suite solver-quickcheck
  type: exitcode-stdio-1.0
  main-is: SolverQuickCheck.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
631 632
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
633
  other-modules:
634 635
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.QuickCheck
636 637
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
638
        async,
639
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
640
        cabal-install,
641
        containers,
642
        deepseq >= 1.2,
643 644 645 646 647
        tasty,
        tasty-quickcheck,
        QuickCheck >= 2.8.2,
        pretty-show

648
  if !(arch(arm) && impl(ghc < 7.6))
649
    ghc-options: -threaded
650

Edward Z. Yang's avatar
Edward Z. Yang committed
651 652
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
653

654 655
  default-language: Haskell2010

656
-- Integration tests that call the cabal executable externally
657
test-suite integration-tests
barmston's avatar
barmston committed
658 659
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
660
  main-is: IntegrationTests.hs
barmston's avatar
barmston committed
661 662
  build-depends:
    Cabal,
663
    async,
barmston's avatar
barmston committed
664 665 666 667 668
    base,
    bytestring,
    directory,
    filepath,
    process,
669
    regex-posix,
670
    tasty,
671
    tasty-hunit
barmston's avatar
barmston committed
672 673 674 675

  if os(windows)
    build-depends: Win32 >= 2 && < 3
  else
676
    build-depends: unix >= 2.5 && < 2.8
barmston's avatar
barmston committed
677

678
  if !(arch(arm) && impl(ghc < 7.6))
barmston's avatar
barmston committed
679 680
    ghc-options: -threaded

Edward Z. Yang's avatar
Edward Z. Yang committed
681
  ghc-options: -Wall -fwarn-tabs
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
682
  default-language: Haskell2010
683

684 685 686 687 688
-- Integration tests that use the cabal-install code directly
-- but still build whole projects
test-suite integration-tests2
  type: exitcode-stdio-1.0
  main-is: IntegrationTests2.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
689 690
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
691 692 693 694
  other-modules:
  build-depends:
        base,
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
695
        cabal-install,
696
        containers,
697
        deepseq,
698
        directory,
699
        edit-distance,
700 701
        filepath,
        tasty,
702 703
        tasty-hunit,
        tagged
704

Edward Z. Yang's avatar
Edward Z. Yang committed
705 706
  if !flag(lib)
    buildable: False
707

Edward Z. Yang's avatar
Edward Z. Yang committed
708
  if !(arch(arm) && impl(ghc < 7.6))
709 710 711
    ghc-options: -threaded
  default-language: Haskell2010

712
custom-setup
713
  setup-depends: Cabal >= 2.1,
714
                 base,
Tamar Christina's avatar
Tamar Christina committed
715
                 process   >= 1.1.0.1  && < 1.6,
716
                 filepath   >= 1.3      && < 1.5