cabal-install.cabal 25.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
  -- 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 195
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False

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

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

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

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

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

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

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

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

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

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

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

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

417 418 419
    if flag(parsec)
      cpp-options: -DCABAL_PARSEC

Edward Z. Yang's avatar
Edward Z. Yang committed
420 421 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
    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
515
    default-language: Haskell2010
516

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

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

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

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
574
  default-language: Haskell2010
barmston's avatar
barmston committed
575

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

  default-language: Haskell2010

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

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

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

633 634
  default-language: Haskell2010

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

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

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

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

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

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

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

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