cabal-install.cabal 25.6 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
  -- END gen-extra-source-files
Duncan Coutts's avatar
Duncan Coutts committed
174 175

source-repository head
176 177
  type:     git
  location: https://github.com/haskell/cabal/
Duncan Coutts's avatar
Duncan Coutts committed
178
  subdir:   cabal-install
179

180 181 182 183
Flag old-bytestring
  description:  Use bytestring < 0.10.2 and bytestring-builder
  default: False

184 185 186 187
Flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

188 189 190 191
Flag network-uri
  description:  Get Network.URI from the network-uri package
  default:      True

192 193 194
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False
kristenk's avatar
kristenk committed
195
  manual:       True
196

Edsko de Vries's avatar
Edsko de Vries committed
197 198 199
Flag debug-tracetree
  description:  Compile in support for tracetree (used to debug the solver)
  default:      False
kristenk's avatar
kristenk committed
200
  manual:       True
Edsko de Vries's avatar
Edsko de Vries committed
201

202
flag parsec
203
  description:  Use parsec parser. This requires 'Cabal' library built with its parsec flag enabled.
204 205 206
  default:      False
  manual:       True

Edward Z. Yang's avatar
Edward Z. Yang committed
207 208 209 210 211 212 213
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
214
    if impl(ghc >= 8.0)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
215 216 217
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances
218

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

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

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

387
    if flag(old-directory)
388
      build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
389
                     process   >= 1.0.1.1  && < 1.1.0.2
390
    else
391
      build-depends: directory >= 1.2 && < 1.4,
Tamar Christina's avatar
Tamar Christina committed
392
                     process   >= 1.1.0.2  && < 1.6
393

394 395 396
    -- NOTE: you MUST include the network dependency even when network-uri
    -- is pulled in, otherwise the constraint solver doesn't have enough
    -- information
397
    if flag(network-uri)
398
      build-depends: network-uri >= 2.6 && < 2.7, network >= 2.6 && < 2.7
399
    else
tibbe's avatar
tibbe committed
400
      build-depends: network     >= 2.4 && < 2.6
401

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

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

411 412 413 414
    if flag(debug-conflict-sets)
      cpp-options: -DDEBUG_CONFLICT_SETS
      build-depends: base >= 4.8

Edsko de Vries's avatar
Edsko de Vries committed
415 416 417 418
    if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

419 420 421
    if flag(parsec)
      cpp-options: -DCABAL_PARSEC

Edward Z. Yang's avatar
Edward Z. Yang committed
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 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 516
    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

        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
517
    default-language: Haskell2010
518

barmston's avatar
barmston committed
519
-- Small, fast running tests.
520 521 522
Test-Suite unit-tests
  type: exitcode-stdio-1.0
  main-is: UnitTests.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
523
  hs-source-dirs: tests
524 525
  ghc-options: -Wall -fwarn-tabs
  other-modules:
526
    UnitTests.Distribution.Client.ArbitraryInstances
527
    UnitTests.Distribution.Client.Targets
Duncan Coutts's avatar
Duncan Coutts committed
528
    UnitTests.Distribution.Client.FileMonitor
529
    UnitTests.Distribution.Client.Glob
530
    UnitTests.Distribution.Client.GZipUtils
531
    UnitTests.Distribution.Client.Sandbox
532
    UnitTests.Distribution.Client.Sandbox.Timestamp
533
    UnitTests.Distribution.Client.Tar
534
    UnitTests.Distribution.Client.UserConfig
535
    UnitTests.Distribution.Client.ProjectConfig
536
    UnitTests.Distribution.Client.JobControl
537
    UnitTests.Distribution.Client.IndexUtils.Timestamp
538
    UnitTests.Distribution.Client.InstallPlan
539
    UnitTests.Distribution.Solver.Modular.PSQ
540
    UnitTests.Distribution.Solver.Modular.RetryLog
541 542
    UnitTests.Distribution.Solver.Modular.Solver
    UnitTests.Distribution.Solver.Modular.DSL
543
    UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
kristenk's avatar
kristenk committed
544
    UnitTests.Distribution.Solver.Modular.WeightedPSQ
545
    UnitTests.Options
546
  build-depends:
Edward Z. Yang's avatar
Edward Z. Yang committed
547
        array,
548
        base,
Duncan Coutts's avatar
Duncan Coutts committed
549
        async,
550
        bytestring,
Edward Z. Yang's avatar
Edward Z. Yang committed
551
        cabal-install,
552 553
        Cabal,
        containers,
554
        deepseq,
555
        mtl,
Edward Z. Yang's avatar
Edward Z. Yang committed
556
        random,
557
        directory,
558
        filepath,
Duncan Coutts's avatar
Duncan Coutts committed
559
        tar,
560 561
        time,
        zlib,
Edward Z. Yang's avatar
Edward Z. Yang committed
562 563
        network-uri,
        network,
564 565 566
        tasty,
        tasty-hunit,
        tasty-quickcheck,
Edsko de Vries's avatar
Edsko de Vries committed
567
        tagged,
568
        QuickCheck >= 2.8.2
569

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

Edward Z. Yang's avatar
Edward Z. Yang committed
573 574
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
575

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
576
  default-language: Haskell2010
barmston's avatar
barmston committed
577

578
-- Tests to run with a limited stack and heap size
579 580 581
Test-Suite memory-usage-tests
  type: exitcode-stdio-1.0
  main-is: MemoryUsageTests.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
582
  hs-source-dirs: tests
583
  ghc-options: -Wall -fwarn-tabs "-with-rtsopts=-M4M -K1K"
584 585 586 587 588 589 590 591 592
  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
593
        cabal-install,
594 595 596 597 598 599 600 601 602
        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
603 604
  if !flag(lib)
    buildable: False
605 606 607

  default-language: Haskell2010

608 609 610 611
-- 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
612 613
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
614
  other-modules:
615 616
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.QuickCheck
617 618
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
619
        async,
620
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
621
        cabal-install,
622
        containers,
623
        deepseq >= 1.2,
624 625 626 627 628
        tasty,
        tasty-quickcheck,
        QuickCheck >= 2.8.2,
        pretty-show

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

Edward Z. Yang's avatar
Edward Z. Yang committed
632 633
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
634

635 636
  default-language: Haskell2010

637
-- Integration tests that call the cabal executable externally
638
test-suite integration-tests
barmston's avatar
barmston committed
639 640
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
641
  main-is: IntegrationTests.hs
barmston's avatar
barmston committed
642 643
  build-depends:
    Cabal,
644
    async,
barmston's avatar
barmston committed
645 646 647 648 649
    base,
    bytestring,
    directory,
    filepath,
    process,
650
    regex-posix,
651
    tasty,
652
    tasty-hunit
barmston's avatar
barmston committed
653 654 655 656

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

659
  if !(arch(arm) && impl(ghc < 7.6))
barmston's avatar
barmston committed
660 661
    ghc-options: -threaded

Edward Z. Yang's avatar
Edward Z. Yang committed
662
  ghc-options: -Wall -fwarn-tabs
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
663
  default-language: Haskell2010
664

665 666 667 668 669
-- 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
670 671
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
672 673 674 675
  other-modules:
  build-depends:
        base,
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
676
        cabal-install,
677
        containers,
678
        deepseq,
679 680 681
        directory,
        filepath,
        tasty,
682 683
        tasty-hunit,
        tagged
684

Edward Z. Yang's avatar
Edward Z. Yang committed
685 686
  if !flag(lib)
    buildable: False
687

Edward Z. Yang's avatar
Edward Z. Yang committed
688
  if !(arch(arm) && impl(ghc < 7.6))
689 690 691
    ghc-options: -threaded
  default-language: Haskell2010

692
custom-setup
693
  setup-depends: Cabal >= 2.1,
694
                 base,
Tamar Christina's avatar
Tamar Christina committed
695
                 process   >= 1.1.0.1  && < 1.6,
696
                 filepath   >= 1.3      && < 1.5