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