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