cabal-install.cabal 26.5 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/complex/cabal.project
  tests/IntegrationTests2/targets/complex/q/Q.hs
  tests/IntegrationTests2/targets/complex/q/q.cabal
  tests/IntegrationTests2/targets/empty/cabal.project
  tests/IntegrationTests2/targets/empty/foo.hs
178 179 180 181 182
  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
183
  -- END gen-extra-source-files
Duncan Coutts's avatar
Duncan Coutts committed
184 185

source-repository head
186 187
  type:     git
  location: https://github.com/haskell/cabal/
Duncan Coutts's avatar
Duncan Coutts committed
188
  subdir:   cabal-install
189

190 191 192 193
Flag old-bytestring
  description:  Use bytestring < 0.10.2 and bytestring-builder
  default: False

194 195 196 197
Flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

198 199 200 201
Flag network-uri
  description:  Get Network.URI from the network-uri package
  default:      True

202
Flag debug-expensive-assertions
203 204 205 206
  description:  Enable expensive assertions for testing or debugging
  default:      False
  manual:       True

207 208 209
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False
kristenk's avatar
kristenk committed
210
  manual:       True
211

Edsko de Vries's avatar
Edsko de Vries committed
212 213 214
Flag debug-tracetree
  description:  Compile in support for tracetree (used to debug the solver)
  default:      False
kristenk's avatar
kristenk committed
215
  manual:       True
Edsko de Vries's avatar
Edsko de Vries committed
216

217
flag parsec
218
  description:  Use parsec parser. This requires 'Cabal' library built with its parsec flag enabled.
219 220 221
  default:      False
  manual:       True

Edward Z. Yang's avatar
Edward Z. Yang committed
222 223 224 225 226 227 228
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
229
    if impl(ghc >= 8.0)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
230 231 232
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances
233

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

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

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

405
    if flag(old-directory)
406
      build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
407
                     process   >= 1.0.1.1  && < 1.1.0.2
408
    else
409
      build-depends: directory >= 1.2 && < 1.4,
Tamar Christina's avatar
Tamar Christina committed
410
                     process   >= 1.1.0.2  && < 1.6
411

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

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

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

429 430
    if flag(debug-expensive-assertions)
      cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
431

432 433 434 435
    if flag(debug-conflict-sets)
      cpp-options: -DDEBUG_CONFLICT_SETS
      build-depends: base >= 4.8

Edsko de Vries's avatar
Edsko de Vries committed
436 437 438 439
    if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

440 441 442
    if flag(parsec)
      cpp-options: -DCABAL_PARSEC

Edward Z. Yang's avatar
Edward Z. Yang committed
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 516 517 518 519 520
    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

521 522
        if flag(debug-expensive-assertions)
          cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
523

Edward Z. Yang's avatar
Edward Z. Yang committed
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540
        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
541
    default-language: Haskell2010
542

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

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

Edward Z. Yang's avatar
Edward Z. Yang committed
597 598
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
599

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
600
  default-language: Haskell2010
barmston's avatar
barmston committed
601

602
-- Tests to run with a limited stack and heap size
603 604 605
Test-Suite memory-usage-tests
  type: exitcode-stdio-1.0
  main-is: MemoryUsageTests.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
606
  hs-source-dirs: tests
607
  ghc-options: -Wall -fwarn-tabs "-with-rtsopts=-M4M -K1K"
608 609 610 611 612 613 614 615 616
  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
617
        cabal-install,
618 619 620 621 622 623 624 625 626
        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
627 628
  if !flag(lib)
    buildable: False
629 630 631

  default-language: Haskell2010

632 633 634 635
-- 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
636 637
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
638
  other-modules:
639 640
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.QuickCheck
641 642
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
643
        async,
644
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
645
        cabal-install,
646
        containers,
647
        deepseq >= 1.2,
648 649 650 651 652
        tasty,
        tasty-quickcheck,
        QuickCheck >= 2.8.2,
        pretty-show

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

Edward Z. Yang's avatar
Edward Z. Yang committed
656 657
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
658

659 660
  default-language: Haskell2010

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

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

683
  if !(arch(arm) && impl(ghc < 7.6))
barmston's avatar
barmston committed
684 685
    ghc-options: -threaded

Edward Z. Yang's avatar
Edward Z. Yang committed
686
  ghc-options: -Wall -fwarn-tabs
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
687
  default-language: Haskell2010
688

689 690 691 692 693
-- 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
694 695
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
696 697 698 699
  other-modules:
  build-depends:
        base,
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
700
        cabal-install,
701
        containers,
702
        deepseq,
703
        directory,
704
        edit-distance,
705 706
        filepath,
        tasty,
707 708
        tasty-hunit,
        tagged
709

Edward Z. Yang's avatar
Edward Z. Yang committed
710 711
  if !flag(lib)
    buildable: False
712

Edward Z. Yang's avatar
Edward Z. Yang committed
713
  if !(arch(arm) && impl(ghc < 7.6))
714 715 716
    ghc-options: -threaded
  default-language: Haskell2010

717
custom-setup
718
  setup-depends: Cabal >= 2.1,
719
                 base,
Tamar Christina's avatar
Tamar Christina committed
720
                 process   >= 1.1.0.1  && < 1.6,
721
                 filepath   >= 1.3      && < 1.5