cabal-install.cabal 24.6 KB
Newer Older
1
Name:               cabal-install
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
2
Version:            1.25.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.
8
homepage:           http://www.haskell.org/cabal/
9
bug-reports:        https://github.com/haskell/cabal/issues
10 11
License:            BSD3
License-File:       LICENSE
12
Author:             Cabal Development Team (see AUTHORS file)
13 14
Maintainer:         Cabal Development Team <cabal-devel@haskell.org>
Copyright:          2003-2016, Cabal Development Team
15
Category:           Distribution
lspitzner's avatar
lspitzner committed
16
Build-type:         Custom
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
17
Cabal-Version:      >= 1.10
barmston's avatar
barmston committed
18 19
Extra-Source-Files:
  README.md bash-completion/cabal bootstrap.sh changelog
20
  tests/README.md
barmston's avatar
barmston committed
21

22 23 24
  -- Generated with '../Cabal/misc/gen-extra-source-files.sh'
  -- Do NOT edit this section manually; instead, run the script.
  -- BEGIN gen-extra-source-files
25 26 27
  tests/IntegrationTests/common.sh
  tests/IntegrationTests/exec/Foo.hs
  tests/IntegrationTests/exec/My.hs
Edward Z. Yang's avatar
Edward Z. Yang committed
28 29 30 31 32 33
  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
34 35 36 37 38 39 40 41 42 43 44 45
  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
46
  tests/IntegrationTests/internal-libs/cabal.project
47 48
  tests/IntegrationTests/internal-libs/internal_lib_basic.sh
  tests/IntegrationTests/internal-libs/internal_lib_shadow.sh
49
  tests/IntegrationTests/internal-libs/new_build.sh
50 51 52 53 54 55 56 57 58 59 60 61
  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
62 63 64 65 66 67
  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
68 69 70 71 72 73 74 75 76 77 78
  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
79 80 81 82 83
  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
84 85 86 87
  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
88 89 90 91 92
  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
93 94 95 96 97 98
  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
99
  tests/IntegrationTests/new-build/monitor_cabal_files.sh
100
  tests/IntegrationTests/new-build/monitor_cabal_files/cabal.project
101 102 103 104 105 106 107
  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
108 109 110 111
  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
112 113 114 115
  tests/IntegrationTests/regression/t3199.sh
  tests/IntegrationTests/regression/t3199/Main.hs
  tests/IntegrationTests/regression/t3199/Setup.hs
  tests/IntegrationTests/regression/t3199/test-3199.cabal
116 117 118 119 120 121
  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
122 123 124 125 126
  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
127 128 129 130 131 132 133 134 135
  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
136
  tests/IntegrationTests/user-config/common.sh
137 138 139 140 141 142 143 144
  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
145 146 147 148 149
  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
150 151 152 153 154 155 156 157 158
  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
159
  tests/IntegrationTests2/exception/bad-config/cabal.project
160 161 162 163 164
  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
165 166 167 168 169
  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
170
  -- END gen-extra-source-files
Duncan Coutts's avatar
Duncan Coutts committed
171 172

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

177 178 179 180
Flag old-bytestring
  description:  Use bytestring < 0.10.2 and bytestring-builder
  default: False

181 182 183 184
Flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

185 186 187 188
Flag network-uri
  description:  Get Network.URI from the network-uri package
  default:      True

189 190 191 192
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False

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

197 198
executable cabal
    main-is:        Main.hs
199
    ghc-options:    -Wall -fwarn-tabs -rtsopts
200
    if impl(ghc >= 8.0)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
201 202 203
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances
204

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

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
338 339
    -- NOTE: when updating build-depends, don't forget to update version regexps
    -- in bootstrap.sh.
Ben Millwood's avatar
Ben Millwood committed
340
    build-depends:
Duncan Coutts's avatar
Duncan Coutts committed
341
        async      >= 2.0      && < 3,
342 343
        array      >= 0.4      && < 0.6,
        base       >= 4.5      && < 5,
344
        base16-bytestring >= 0.1.1 && < 0.2,
345
        binary     >= 0.5      && < 0.9,
Ben Millwood's avatar
Ben Millwood committed
346
        bytestring >= 0.9      && < 1,
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
347
        Cabal      >= 1.25     && < 1.26,
348
        containers >= 0.4      && < 0.6,
349
        cryptohash-sha256 >= 0.11 && < 0.12,
350
        deepseq    >= 1.3      && < 1.5,
351
        edit-distance >= 0.2.2 && < 0.3,
352
        filepath   >= 1.3      && < 1.5,
353
        hashable   >= 1.0      && < 2,
354
        HTTP       >= 4000.1.5 && < 4000.4,
Ben Millwood's avatar
Ben Millwood committed
355
        mtl        >= 2.0      && < 3,
356
        pretty     >= 1.1      && < 1.2,
dsf's avatar
dsf committed
357
        random     >= 1        && < 1.2,
Ben Millwood's avatar
Ben Millwood committed
358
        stm        >= 2.0      && < 3,
359
        tar        >= 0.5.0.3  && < 0.6,
360
        time       >= 1.4      && < 1.7,
Edsko de Vries's avatar
Edsko de Vries committed
361
        zlib       >= 0.5.3    && < 0.7,
362
        hackage-security >= 0.5.2.2 && < 0.6
363

364 365 366 367 368
    if flag(old-bytestring)
      build-depends: bytestring <  0.10.2, bytestring-builder >= 0.10 && < 1
    else
      build-depends: bytestring >= 0.10.2

369
    if flag(old-directory)
370
      build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
371
                     process   >= 1.0.1.1  && < 1.1.0.2
372
    else
373
      build-depends: directory >= 1.2 && < 1.3,
374
                     process   >= 1.1.0.2  && < 1.5
375

376 377 378
    -- NOTE: you MUST include the network dependency even when network-uri
    -- is pulled in, otherwise the constraint solver doesn't have enough
    -- information
379
    if flag(network-uri)
380
      build-depends: network-uri >= 2.6 && < 2.7, network >= 2.6 && < 2.7
381
    else
tibbe's avatar
tibbe committed
382
      build-depends: network     >= 2.4 && < 2.6
383

384 385 386 387
    -- Needed for GHC.Generics before GHC 7.6
    if impl(ghc < 7.6)
      build-depends: ghc-prim >= 0.2 && < 0.3

388
    if os(windows)
389
      build-depends: Win32 >= 2 && < 3
390
    else
391
      build-depends: unix >= 2.5 && < 2.8
392

393 394
    if !(arch(arm) && impl(ghc < 7.6))
      ghc-options: -threaded
395

396 397 398 399
    if flag(debug-conflict-sets)
      cpp-options: -DDEBUG_CONFLICT_SETS
      build-depends: base >= 4.8

Edsko de Vries's avatar
Edsko de Vries committed
400 401 402 403
    if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
404
    default-language: Haskell2010
405

barmston's avatar
barmston committed
406
-- Small, fast running tests.
407 408 409
Test-Suite unit-tests
  type: exitcode-stdio-1.0
  main-is: UnitTests.hs
410 411 412
  hs-source-dirs: tests, .
  ghc-options: -Wall -fwarn-tabs
  other-modules:
413
    UnitTests.Distribution.Client.ArbitraryInstances
414
    UnitTests.Distribution.Client.Targets
Duncan Coutts's avatar
Duncan Coutts committed
415
    UnitTests.Distribution.Client.FileMonitor
416
    UnitTests.Distribution.Client.Glob
417
    UnitTests.Distribution.Client.GZipUtils
418
    UnitTests.Distribution.Client.Sandbox
419
    UnitTests.Distribution.Client.Sandbox.Timestamp
420
    UnitTests.Distribution.Client.Tar
421
    UnitTests.Distribution.Client.UserConfig
422
    UnitTests.Distribution.Client.ProjectConfig
423
    UnitTests.Distribution.Client.JobControl
424
    UnitTests.Distribution.Client.IndexUtils.Timestamp
425
    UnitTests.Distribution.Client.InstallPlan
426
    UnitTests.Distribution.Solver.Modular.PSQ
427
    UnitTests.Distribution.Solver.Modular.RetryLog
428 429
    UnitTests.Distribution.Solver.Modular.Solver
    UnitTests.Distribution.Solver.Modular.DSL
430
    UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
kristenk's avatar
kristenk committed
431
    UnitTests.Distribution.Solver.Modular.WeightedPSQ
432
    UnitTests.Options
433 434
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
435
        async,
436 437 438 439
        array,
        bytestring,
        Cabal,
        containers,
440
        deepseq,
441 442 443 444
        mtl,
        pretty,
        process,
        directory,
445
        filepath,
Duncan Coutts's avatar
Duncan Coutts committed
446
        hashable,
447
        stm,
Duncan Coutts's avatar
Duncan Coutts committed
448
        tar,
449 450 451
        time,
        HTTP,
        zlib,
452
        binary,
453
        random,
Edsko de Vries's avatar
Edsko de Vries committed
454
        hackage-security,
455 456 457
        tasty,
        tasty-hunit,
        tasty-quickcheck,
Edsko de Vries's avatar
Edsko de Vries committed
458
        tagged,
459
        QuickCheck >= 2.8.2
460 461 462 463

  if flag(old-directory)
    build-depends: old-time

464 465 466 467 468
  if flag(network-uri)
    build-depends: network-uri >= 2.6, network >= 2.6
  else
    build-depends: network-uri < 2.6, network < 2.6

469 470 471
  if impl(ghc < 7.6)
    build-depends: ghc-prim >= 0.2 && < 0.3

472 473 474 475 476
  if os(windows)
    build-depends: Win32
  else
    build-depends: unix

477 478
  ghc-options: -fno-ignore-asserts

479
  if !(arch(arm) && impl(ghc < 7.6))
480
    ghc-options: -threaded
481 482 483 484 485

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

Edsko de Vries's avatar
Edsko de Vries committed
486 487 488 489
  if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
490
  default-language: Haskell2010
barmston's avatar
barmston committed
491

492
-- Tests to run with a limited stack and heap size
493 494 495 496
Test-Suite memory-usage-tests
  type: exitcode-stdio-1.0
  main-is: MemoryUsageTests.hs
  hs-source-dirs: tests, .
497
  ghc-options: -Wall -fwarn-tabs "-with-rtsopts=-M4M -K1K"
498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559
  other-modules:
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
    UnitTests.Distribution.Solver.Modular.MemoryUsage
    UnitTests.Options
  build-depends:
        base,
        async,
        array,
        bytestring,
        Cabal,
        containers,
        deepseq,
        mtl,
        pretty,
        process,
        directory,
        filepath,
        hashable,
        stm,
        tar,
        time,
        HTTP,
        zlib,
        binary,
        random,
        hackage-security,
        tagged,
        tasty,
        tasty-hunit

  if flag(old-directory)
    build-depends: old-time

  if flag(network-uri)
    build-depends: network-uri >= 2.6, network >= 2.6
  else
    build-depends: network-uri < 2.6, network < 2.6

  if impl(ghc < 7.6)
    build-depends: ghc-prim >= 0.2 && < 0.3

  if os(windows)
    build-depends: Win32
  else
    build-depends: unix

  ghc-options: -fno-ignore-asserts

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

  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

  default-language: Haskell2010

560 561 562 563 564
-- Slow solver tests
Test-Suite solver-quickcheck
  type: exitcode-stdio-1.0
  main-is: SolverQuickCheck.hs
  hs-source-dirs: tests, .
565
  ghc-options: -Wall -fwarn-tabs -fno-ignore-asserts
566
  other-modules:
567 568
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.QuickCheck
569 570
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
571
        async,
572 573 574 575
        array,
        bytestring,
        Cabal,
        containers,
576
        deepseq >= 1.2,
577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611
        mtl,
        pretty,
        process,
        directory,
        filepath,
        hashable,
        stm,
        tar,
        time,
        HTTP,
        zlib,
        binary,
        random,
        hackage-security,
        tasty,
        tasty-quickcheck,
        QuickCheck >= 2.8.2,
        pretty-show

  if flag(old-directory)
    build-depends: old-time

  if flag(network-uri)
    build-depends: network-uri >= 2.6, network >= 2.6
  else
    build-depends: network-uri < 2.6, network < 2.6

  if impl(ghc < 7.6)
    build-depends: ghc-prim >= 0.2 && < 0.3

  if os(windows)
    build-depends: Win32
  else
    build-depends: unix

612
  if !(arch(arm) && impl(ghc < 7.6))
613
    ghc-options: -threaded
614 615 616 617 618

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

Edsko de Vries's avatar
Edsko de Vries committed
619 620 621 622
  if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

623 624
  default-language: Haskell2010

625
-- Integration tests that call the cabal executable externally
626
test-suite integration-tests
barmston's avatar
barmston committed
627 628
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
629
  main-is: IntegrationTests.hs
barmston's avatar
barmston committed
630 631
  build-depends:
    Cabal,
632
    async,
barmston's avatar
barmston committed
633 634 635 636 637
    base,
    bytestring,
    directory,
    filepath,
    process,
638
    regex-posix,
639
    tasty,
640
    tasty-hunit
barmston's avatar
barmston committed
641 642 643 644

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

647
  if !(arch(arm) && impl(ghc < 7.6))
barmston's avatar
barmston committed
648 649
    ghc-options: -threaded

650
  ghc-options: -Wall -fwarn-tabs -fno-ignore-asserts
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
651
  default-language: Haskell2010
652

653 654 655 656 657 658
-- 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
  hs-source-dirs: tests, .
659
  ghc-options: -Wall -fwarn-tabs -fno-ignore-asserts
660 661 662 663 664 665 666 667 668 669 670
  other-modules:
  build-depends:
        async,
        array,
        base,
        base16-bytestring,
        binary,
        bytestring,
        Cabal,
        containers,
        cryptohash-sha256,
671
        deepseq,
672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687
        directory,
        filepath,
        hackage-security,
        hashable,
        HTTP,
        mtl,
        network,
        network-uri,
        pretty,
        process,
        random,
        stm,
        tar,
        time,
        zlib,
        tasty,
688 689
        tasty-hunit,
        tagged
690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710

  if flag(old-bytestring)
    build-depends: bytestring-builder

  if flag(old-directory)
    build-depends: old-time

  if impl(ghc < 7.6)
    build-depends: ghc-prim >= 0.2 && < 0.3

  if os(windows)
    build-depends: Win32
  else
    build-depends: unix

  if arch(arm)
    cc-options:  -DCABAL_NO_THREADED
  else
    ghc-options: -threaded
  default-language: Haskell2010

711 712 713 714 715
custom-setup
  setup-depends: Cabal >= 1.25,
                 base,
                 process   >= 1.1.0.1  && < 1.5,
                 filepath   >= 1.3      && < 1.5