cabal-install.cabal 22.8 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/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
71
72
73
74
75
  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
76
77
78
79
80
81
82
83
84
  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
85
  tests/IntegrationTests/user-config/common.sh
86
87
88
89
90
91
92
93
  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
94
95
96
97
98
  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
99
100
101
102
103
104
105
106
107
  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
108
  tests/IntegrationTests2/exception/bad-config/cabal.project
109
110
111
112
113
  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
114
115
116
117
118
  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
119
  -- END gen-extra-source-files
Duncan Coutts's avatar
Duncan Coutts committed
120
121

source-repository head
122
123
  type:     git
  location: https://github.com/haskell/cabal/
Duncan Coutts's avatar
Duncan Coutts committed
124
  subdir:   cabal-install
125

126
127
128
129
Flag old-bytestring
  description:  Use bytestring < 0.10.2 and bytestring-builder
  default: False

130
131
132
133
Flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

134
135
136
137
Flag network-uri
  description:  Get Network.URI from the network-uri package
  default:      True

138
Flag debug-expensive-assertions
139
140
141
142
  description:  Enable expensive assertions for testing or debugging
  default:      False
  manual:       True

143
144
145
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False
kristenk's avatar
kristenk committed
146
  manual:       True
147

Edsko de Vries's avatar
Edsko de Vries committed
148
149
150
Flag debug-tracetree
  description:  Compile in support for tracetree (used to debug the solver)
  default:      False
kristenk's avatar
kristenk committed
151
  manual:       True
Edsko de Vries's avatar
Edsko de Vries committed
152

153
flag parsec
154
  description:  Use parsec parser. This requires 'Cabal' library built with its parsec flag enabled.
155
156
157
  default:      False
  manual:       True

Edward Z. Yang's avatar
Edward Z. Yang committed
158
159
160
161
162
163
164
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
165
    if impl(ghc >= 8.0)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
166
167
168
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances
169

Edward Z. Yang's avatar
Edward Z. Yang committed
170
    exposed-modules:
171
        Distribution.Client.BuildTarget
Duncan Coutts's avatar
Duncan Coutts committed
172
173
        Distribution.Client.BuildReports.Anonymous
        Distribution.Client.BuildReports.Storage
Duncan Coutts's avatar
Duncan Coutts committed
174
        Distribution.Client.BuildReports.Types
Duncan Coutts's avatar
Duncan Coutts committed
175
        Distribution.Client.BuildReports.Upload
176
        Distribution.Client.Check
177
178
        Distribution.Client.CmdBuild
        Distribution.Client.CmdConfigure
Duncan Coutts's avatar
Duncan Coutts committed
179
        Distribution.Client.CmdFreeze
Ben Gamari's avatar
Ben Gamari committed
180
        Distribution.Client.CmdHaddock
Oleg Grenrus's avatar
Oleg Grenrus committed
181
        Distribution.Client.CmdTest
182
        Distribution.Client.CmdRepl
183
        Distribution.Client.Config
Duncan Coutts's avatar
Duncan Coutts committed
184
        Distribution.Client.Configure
185
186
        Distribution.Client.Dependency
        Distribution.Client.Dependency.Types
Duncan Coutts's avatar
Duncan Coutts committed
187
        Distribution.Client.DistDirLayout
barmston's avatar
barmston committed
188
        Distribution.Client.Exec
189
        Distribution.Client.Fetch
Duncan Coutts's avatar
Duncan Coutts committed
190
        Distribution.Client.FetchUtils
191
        Distribution.Client.FileMonitor
192
        Distribution.Client.Freeze
193
        Distribution.Client.GenBounds
194
        Distribution.Client.Get
195
        Distribution.Client.Glob
196
        Distribution.Client.GlobalFlags
197
        Distribution.Client.GZipUtils
198
        Distribution.Client.Haddock
199
200
        Distribution.Client.HttpUtils
        Distribution.Client.IndexUtils
201
        Distribution.Client.IndexUtils.Timestamp
202
203
204
205
        Distribution.Client.Init
        Distribution.Client.Init.Heuristics
        Distribution.Client.Init.Licenses
        Distribution.Client.Init.Types
206
207
        Distribution.Client.Install
        Distribution.Client.InstallPlan
208
        Distribution.Client.InstallSymlink
209
        Distribution.Client.JobControl
210
        Distribution.Client.List
Maciek Makowski's avatar
Maciek Makowski committed
211
        Distribution.Client.Manpage
ttuegel's avatar
ttuegel committed
212
        Distribution.Client.Nix
213
        Distribution.Client.Outdated
Duncan Coutts's avatar
Duncan Coutts committed
214
        Distribution.Client.PackageHash
215
        Distribution.Client.PackageUtils
216
        Distribution.Client.ParseUtils
Duncan Coutts's avatar
Duncan Coutts committed
217
        Distribution.Client.ProjectBuilding
218
        Distribution.Client.ProjectBuilding.Types
219
220
221
        Distribution.Client.ProjectConfig
        Distribution.Client.ProjectConfig.Types
        Distribution.Client.ProjectConfig.Legacy
222
        Distribution.Client.ProjectOrchestration
Duncan Coutts's avatar
Duncan Coutts committed
223
        Distribution.Client.ProjectPlanning
224
        Distribution.Client.ProjectPlanning.Types
225
        Distribution.Client.ProjectPlanOutput
226
        Distribution.Client.RebuildMonad
ttuegel's avatar
ttuegel committed
227
228
        Distribution.Client.Reconfigure
        Distribution.Client.Run
229
        Distribution.Client.Sandbox
230
231
        Distribution.Client.Sandbox.Index
        Distribution.Client.Sandbox.PackageEnvironment
232
        Distribution.Client.Sandbox.Timestamp
233
        Distribution.Client.Sandbox.Types
ttuegel's avatar
ttuegel committed
234
        Distribution.Client.SavedFlags
235
        Distribution.Client.Security.DNS
Edsko de Vries's avatar
Edsko de Vries committed
236
        Distribution.Client.Security.HTTP
237
238
239
        Distribution.Client.Setup
        Distribution.Client.SetupWrapper
        Distribution.Client.SrcDist
240
        Distribution.Client.SolverInstallPlan
241
        Distribution.Client.SolverPlanIndex
242
        Distribution.Client.SourceFiles
243
        Distribution.Client.Tar
244
        Distribution.Client.Targets
245
246
247
248
        Distribution.Client.Types
        Distribution.Client.Update
        Distribution.Client.Upload
        Distribution.Client.Utils
249
        Distribution.Client.Utils.Assertion
250
        Distribution.Client.Utils.Json
251
        Distribution.Client.World
252
        Distribution.Client.Win32SelfUpgrade
253
        Distribution.Client.Compat.ExecutablePath
254
        Distribution.Client.Compat.FilePerms
255
        Distribution.Client.Compat.Prelude
256
        Distribution.Client.Compat.Process
257
        Distribution.Client.Compat.Semaphore
258
        Distribution.Solver.Types.ComponentDeps
259
        Distribution.Solver.Types.ConstraintSource
260
        Distribution.Solver.Types.DependencyResolver
261
        Distribution.Solver.Types.Flag
262
        Distribution.Solver.Types.InstalledPreference
263
        Distribution.Solver.Types.InstSolverPackage
264
        Distribution.Solver.Types.LabeledPackageConstraint
265
        Distribution.Solver.Types.OptionalStanza
266
        Distribution.Solver.Types.PackageConstraint
267
268
        Distribution.Solver.Types.PackageFixedDeps
        Distribution.Solver.Types.PackageIndex
269
        Distribution.Solver.Types.PackagePath
270
        Distribution.Solver.Types.PackagePreferences
271
272
        Distribution.Solver.Types.PkgConfigDb
        Distribution.Solver.Types.Progress
273
        Distribution.Solver.Types.ResolverPackage
274
275
276
277
        Distribution.Solver.Types.Settings
        Distribution.Solver.Types.SolverId
        Distribution.Solver.Types.SolverPackage
        Distribution.Solver.Types.SourcePackage
278
        Distribution.Solver.Types.Variable
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
        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
298
        Distribution.Solver.Modular.RetryLog
299
300
301
302
303
        Distribution.Solver.Modular.Solver
        Distribution.Solver.Modular.Tree
        Distribution.Solver.Modular.Validate
        Distribution.Solver.Modular.Var
        Distribution.Solver.Modular.Version
304
        Distribution.Solver.Modular.WeightedPSQ
305
        Paths_cabal_install
306

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
307
308
    -- NOTE: when updating build-depends, don't forget to update version regexps
    -- in bootstrap.sh.
Ben Millwood's avatar
Ben Millwood committed
309
    build-depends:
Duncan Coutts's avatar
Duncan Coutts committed
310
        async      >= 2.0      && < 3,
311
312
        array      >= 0.4      && < 0.6,
        base       >= 4.5      && < 5,
313
        base16-bytestring >= 0.1.1 && < 0.2,
314
        binary     >= 0.5      && < 0.9,
Ben Millwood's avatar
Ben Millwood committed
315
        bytestring >= 0.9      && < 1,
316
        Cabal      >= 2.1      && < 2.2,
317
        containers >= 0.4      && < 0.6,
318
        cryptohash-sha256 >= 0.11 && < 0.12,
319
        deepseq    >= 1.3      && < 1.5,
Ryan Scott's avatar
Ryan Scott committed
320
        echo       >= 0.1.3    && < 0.2,
321
        edit-distance >= 0.2.2 && < 0.3,
322
        filepath   >= 1.3      && < 1.5,
323
        hashable   >= 1.0      && < 2,
324
        HTTP       >= 4000.1.5 && < 4000.4,
Ben Millwood's avatar
Ben Millwood committed
325
        mtl        >= 2.0      && < 3,
326
        pretty     >= 1.1      && < 1.2,
dsf's avatar
dsf committed
327
        random     >= 1        && < 1.2,
Ben Millwood's avatar
Ben Millwood committed
328
        stm        >= 2.0      && < 3,
329
        tar        >= 0.5.0.3  && < 0.6,
330
        time       >= 1.4      && < 1.8,
Edsko de Vries's avatar
Edsko de Vries committed
331
        zlib       >= 0.5.3    && < 0.7,
332
        hackage-security >= 0.5.2.2 && < 0.6
333

334
335
336
337
338
    if flag(old-bytestring)
      build-depends: bytestring <  0.10.2, bytestring-builder >= 0.10 && < 1
    else
      build-depends: bytestring >= 0.10.2

339
    if flag(old-directory)
340
      build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
341
                     process   >= 1.0.1.1  && < 1.1.0.2
342
    else
343
      build-depends: directory >= 1.2 && < 1.4,
Tamar Christina's avatar
Tamar Christina committed
344
                     process   >= 1.1.0.2  && < 1.6
345

346
347
348
    -- NOTE: you MUST include the network dependency even when network-uri
    -- is pulled in, otherwise the constraint solver doesn't have enough
    -- information
349
    if flag(network-uri)
350
      build-depends: network-uri >= 2.6 && < 2.7, network >= 2.6 && < 2.7
351
    else
tibbe's avatar
tibbe committed
352
      build-depends: network     >= 2.4 && < 2.6
353

354
355
356
357
    -- Needed for GHC.Generics before GHC 7.6
    if impl(ghc < 7.6)
      build-depends: ghc-prim >= 0.2 && < 0.3

358
    if os(windows)
359
      build-depends: Win32 >= 2 && < 3
360
    else
361
      build-depends: unix >= 2.5 && < 2.8
362

363
364
    if flag(debug-expensive-assertions)
      cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
365

366
367
368
369
    if flag(debug-conflict-sets)
      cpp-options: -DDEBUG_CONFLICT_SETS
      build-depends: base >= 4.8

Edsko de Vries's avatar
Edsko de Vries committed
370
371
372
373
    if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

374
375
376
    if flag(parsec)
      cpp-options: -DCABAL_PARSEC

Edward Z. Yang's avatar
Edward Z. Yang committed
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
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
    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

455
456
        if flag(debug-expensive-assertions)
          cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS
457

Edward Z. Yang's avatar
Edward Z. Yang committed
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
        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
475
    default-language: Haskell2010
476

barmston's avatar
barmston committed
477
-- Small, fast running tests.
478
479
480
Test-Suite unit-tests
  type: exitcode-stdio-1.0
  main-is: UnitTests.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
481
  hs-source-dirs: tests
482
483
  ghc-options: -Wall -fwarn-tabs
  other-modules:
484
    UnitTests.Distribution.Client.ArbitraryInstances
485
    UnitTests.Distribution.Client.Targets
Duncan Coutts's avatar
Duncan Coutts committed
486
    UnitTests.Distribution.Client.FileMonitor
487
    UnitTests.Distribution.Client.Glob
488
    UnitTests.Distribution.Client.GZipUtils
489
    UnitTests.Distribution.Client.Sandbox
490
    UnitTests.Distribution.Client.Sandbox.Timestamp
491
    UnitTests.Distribution.Client.Tar
492
    UnitTests.Distribution.Client.UserConfig
493
    UnitTests.Distribution.Client.ProjectConfig
494
    UnitTests.Distribution.Client.JobControl
495
    UnitTests.Distribution.Client.IndexUtils.Timestamp
496
    UnitTests.Distribution.Client.InstallPlan
497
    UnitTests.Distribution.Solver.Modular.PSQ
498
    UnitTests.Distribution.Solver.Modular.RetryLog
499
500
    UnitTests.Distribution.Solver.Modular.Solver
    UnitTests.Distribution.Solver.Modular.DSL
501
    UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
kristenk's avatar
kristenk committed
502
    UnitTests.Distribution.Solver.Modular.WeightedPSQ
503
    UnitTests.Options
504
  build-depends:
Edward Z. Yang's avatar
Edward Z. Yang committed
505
        array,
506
        base,
Duncan Coutts's avatar
Duncan Coutts committed
507
        async,
508
        bytestring,
Edward Z. Yang's avatar
Edward Z. Yang committed
509
        cabal-install,
510
511
        Cabal,
        containers,
512
        deepseq,
513
        mtl,
Edward Z. Yang's avatar
Edward Z. Yang committed
514
        random,
515
        directory,
516
        filepath,
Duncan Coutts's avatar
Duncan Coutts committed
517
        tar,
518
519
        time,
        zlib,
Edward Z. Yang's avatar
Edward Z. Yang committed
520
521
        network-uri,
        network,
522
523
524
        tasty,
        tasty-hunit,
        tasty-quickcheck,
Edsko de Vries's avatar
Edsko de Vries committed
525
        tagged,
526
        QuickCheck >= 2.8.2
527

528
  if !(arch(arm) && impl(ghc < 7.6))
529
    ghc-options: -threaded
530

Edward Z. Yang's avatar
Edward Z. Yang committed
531
532
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
533

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
534
  default-language: Haskell2010
barmston's avatar
barmston committed
535

536
-- Tests to run with a limited stack and heap size
537
538
539
Test-Suite memory-usage-tests
  type: exitcode-stdio-1.0
  main-is: MemoryUsageTests.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
540
  hs-source-dirs: tests
541
  ghc-options: -Wall -fwarn-tabs "-with-rtsopts=-M4M -K1K"
542
543
544
545
546
547
548
549
550
  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
551
        cabal-install,
552
553
554
555
556
557
558
559
560
        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
561
562
  if !flag(lib)
    buildable: False
563
564
565

  default-language: Haskell2010

566
567
568
569
-- 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
570
571
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
572
  other-modules:
573
574
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.QuickCheck
575
576
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
577
        async,
578
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
579
        cabal-install,
580
        containers,
581
        deepseq >= 1.2,
582
583
584
585
586
        tasty,
        tasty-quickcheck,
        QuickCheck >= 2.8.2,
        pretty-show

587
  if !(arch(arm) && impl(ghc < 7.6))
588
    ghc-options: -threaded
589

Edward Z. Yang's avatar
Edward Z. Yang committed
590
591
  if !flag(lib)
    buildable: False
Edsko de Vries's avatar
Edsko de Vries committed
592

593
594
  default-language: Haskell2010

595
-- Integration tests that call the cabal executable externally
596
test-suite integration-tests
barmston's avatar
barmston committed
597
598
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
599
  main-is: IntegrationTests.hs
barmston's avatar
barmston committed
600
601
  build-depends:
    Cabal,
602
    async,
barmston's avatar
barmston committed
603
604
605
606
607
    base,
    bytestring,
    directory,
    filepath,
    process,
608
    regex-posix,
609
    tasty,
610
    tasty-hunit
barmston's avatar
barmston committed
611
612
613
614

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

617
  if !(arch(arm) && impl(ghc < 7.6))
barmston's avatar
barmston committed
618
619
    ghc-options: -threaded

Edward Z. Yang's avatar
Edward Z. Yang committed
620
  ghc-options: -Wall -fwarn-tabs
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
621
  default-language: Haskell2010
622

623
624
625
626
627
-- 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
628
629
  hs-source-dirs: tests
  ghc-options: -Wall -fwarn-tabs
630
631
632
633
  other-modules:
  build-depends:
        base,
        Cabal,
Edward Z. Yang's avatar
Edward Z. Yang committed
634
        cabal-install,
635
        containers,
636
        deepseq,
637
638
639
        directory,
        filepath,
        tasty,
640
641
        tasty-hunit,
        tagged
642

Edward Z. Yang's avatar
Edward Z. Yang committed
643
644
  if !flag(lib)
    buildable: False
645

Edward Z. Yang's avatar
Edward Z. Yang committed
646
  if !(arch(arm) && impl(ghc < 7.6))
647
648
649
    ghc-options: -threaded
  default-language: Haskell2010

650
custom-setup
651
  setup-depends: Cabal >= 2.1,
652
                 base,
Tamar Christina's avatar
Tamar Christina committed
653
                 process   >= 1.1.0.1  && < 1.6,
654
                 filepath   >= 1.3      && < 1.5