cabal-install.cabal 25.1 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
Maintainer:         Cabal Development Team <cabal-devel@haskell.org>
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
14
Copyright:          2003-2017, 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 93
  tests/IntegrationTests/new-build/build_tool_depends.sh
  tests/IntegrationTests/new-build/build_tool_depends/cabal.project
  tests/IntegrationTests/new-build/build_tool_depends/client/Hello.hs
  tests/IntegrationTests/new-build/build_tool_depends/client/client.cabal
  tests/IntegrationTests/new-build/build_tool_depends/pre-proc/MyCustomPreprocessor.hs
  tests/IntegrationTests/new-build/build_tool_depends/pre-proc/pre-proc.cabal
94 95 96 97 98
  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
99 100 101 102 103 104
  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
105
  tests/IntegrationTests/new-build/monitor_cabal_files.sh
106
  tests/IntegrationTests/new-build/monitor_cabal_files/cabal.project
107 108 109 110 111 112 113
  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
114 115 116 117
  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
118 119 120 121
  tests/IntegrationTests/regression/t3199.sh
  tests/IntegrationTests/regression/t3199/Main.hs
  tests/IntegrationTests/regression/t3199/Setup.hs
  tests/IntegrationTests/regression/t3199/test-3199.cabal
122 123 124 125 126 127
  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
128 129 130 131 132
  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
133 134 135 136 137 138 139 140 141
  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
142
  tests/IntegrationTests/user-config/common.sh
143 144 145 146 147 148 149 150
  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
151 152 153 154 155
  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
156 157 158 159 160 161 162 163 164
  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
165
  tests/IntegrationTests2/exception/bad-config/cabal.project
166 167 168 169 170
  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
171 172 173 174 175
  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
176
  -- END gen-extra-source-files
Duncan Coutts's avatar
Duncan Coutts committed
177 178

source-repository head
179 180
  type:     git
  location: https://github.com/haskell/cabal/
Duncan Coutts's avatar
Duncan Coutts committed
181
  subdir:   cabal-install
182

183 184 185 186
Flag old-bytestring
  description:  Use bytestring < 0.10.2 and bytestring-builder
  default: False

187 188 189 190
Flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

191 192 193 194
Flag network-uri
  description:  Get Network.URI from the network-uri package
  default:      True

195 196 197 198
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False

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

203 204
executable cabal
    main-is:        Main.hs
205
    ghc-options:    -Wall -fwarn-tabs -rtsopts
206
    if impl(ghc >= 8.0)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
207 208 209
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances
210

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

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

372 373 374 375 376
    if flag(old-bytestring)
      build-depends: bytestring <  0.10.2, bytestring-builder >= 0.10 && < 1
    else
      build-depends: bytestring >= 0.10.2

377
    if flag(old-directory)
378
      build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
379
                     process   >= 1.0.1.1  && < 1.1.0.2
380
    else
381
      build-depends: directory >= 1.2 && < 1.4,
382
                     process   >= 1.1.0.2  && < 1.5
383

384 385 386
    -- NOTE: you MUST include the network dependency even when network-uri
    -- is pulled in, otherwise the constraint solver doesn't have enough
    -- information
387
    if flag(network-uri)
388
      build-depends: network-uri >= 2.6 && < 2.7, network >= 2.6 && < 2.7
389
    else
tibbe's avatar
tibbe committed
390
      build-depends: network     >= 2.4 && < 2.6
391

392 393 394 395
    -- Needed for GHC.Generics before GHC 7.6
    if impl(ghc < 7.6)
      build-depends: ghc-prim >= 0.2 && < 0.3

396
    if os(windows)
397
      build-depends: Win32 >= 2 && < 3
398
    else
399
      build-depends: unix >= 2.5 && < 2.8
400

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

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

Edsko de Vries's avatar
Edsko de Vries committed
408 409 410 411
    if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
412
    default-language: Haskell2010
413

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

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

472 473 474 475 476
  if flag(network-uri)
    build-depends: network-uri >= 2.6, network >= 2.6
  else
    build-depends: network-uri < 2.6, network < 2.6

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

480 481 482 483 484
  if os(windows)
    build-depends: Win32
  else
    build-depends: unix

485 486
  ghc-options: -fno-ignore-asserts

487
  if !(arch(arm) && impl(ghc < 7.6))
488
    ghc-options: -threaded
489 490 491 492 493

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

Edsko de Vries's avatar
Edsko de Vries committed
494 495 496 497
  if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
498
  default-language: Haskell2010
barmston's avatar
barmston committed
499

500
-- Tests to run with a limited stack and heap size
501 502 503 504
Test-Suite memory-usage-tests
  type: exitcode-stdio-1.0
  main-is: MemoryUsageTests.hs
  hs-source-dirs: tests, .
505
  ghc-options: -Wall -fwarn-tabs "-with-rtsopts=-M4M -K1K"
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 560 561 562 563 564 565 566 567
  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

568 569 570 571 572
-- Slow solver tests
Test-Suite solver-quickcheck
  type: exitcode-stdio-1.0
  main-is: SolverQuickCheck.hs
  hs-source-dirs: tests, .
573
  ghc-options: -Wall -fwarn-tabs -fno-ignore-asserts
574
  other-modules:
575 576
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.QuickCheck
577 578
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
579
        async,
580 581 582 583
        array,
        bytestring,
        Cabal,
        containers,
584
        deepseq >= 1.2,
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 612 613 614 615 616 617 618 619
        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

620
  if !(arch(arm) && impl(ghc < 7.6))
621
    ghc-options: -threaded
622 623 624 625 626

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

Edsko de Vries's avatar
Edsko de Vries committed
627 628 629 630
  if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

631 632
  default-language: Haskell2010

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

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

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

658
  ghc-options: -Wall -fwarn-tabs -fno-ignore-asserts
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
659
  default-language: Haskell2010
660

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

  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

719 720 721 722 723
custom-setup
  setup-depends: Cabal >= 1.25,
                 base,
                 process   >= 1.1.0.1  && < 1.5,
                 filepath   >= 1.3      && < 1.5