cabal-install.cabal 26.9 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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
  tests/IntegrationTests/backpack/includes2-external.sh
  tests/IntegrationTests/backpack/includes2-internal.sh
  tests/IntegrationTests/backpack/includes2/Includes2.cabal
  tests/IntegrationTests/backpack/includes2/exe/Main.hs
  tests/IntegrationTests/backpack/includes2/exe/exe.cabal
  tests/IntegrationTests/backpack/includes2/mylib/Mine.hs
  tests/IntegrationTests/backpack/includes2/mylib/mylib.cabal
  tests/IntegrationTests/backpack/includes2/mysql/Database/MySQL.hs
  tests/IntegrationTests/backpack/includes2/mysql/mysql.cabal
  tests/IntegrationTests/backpack/includes2/postgresql/Database/PostgreSQL.hs
  tests/IntegrationTests/backpack/includes2/postgresql/postgresql.cabal
  tests/IntegrationTests/backpack/includes2/src/App.hs
  tests/IntegrationTests/backpack/includes2/src/src.cabal
  tests/IntegrationTests/backpack/includes3-external.sh
  tests/IntegrationTests/backpack/includes3-internal.sh
  tests/IntegrationTests/backpack/includes3/Includes3.cabal
  tests/IntegrationTests/backpack/includes3/exe/Main.hs
  tests/IntegrationTests/backpack/includes3/exe/Setup.hs
  tests/IntegrationTests/backpack/includes3/exe/exe.cabal
  tests/IntegrationTests/backpack/includes3/indef/Foo.hs
  tests/IntegrationTests/backpack/includes3/indef/Setup.hs
  tests/IntegrationTests/backpack/includes3/indef/indef.cabal
  tests/IntegrationTests/backpack/includes3/sigs/Setup.hs
  tests/IntegrationTests/backpack/includes3/sigs/sigs.cabal
49
  tests/IntegrationTests/common.sh
kristenk's avatar
kristenk committed
50 51 52 53
  tests/IntegrationTests/custom-setup/Cabal-99998/Cabal.cabal
  tests/IntegrationTests/custom-setup/Cabal-99998/CabalMessage.hs
  tests/IntegrationTests/custom-setup/Cabal-99999/Cabal.cabal
  tests/IntegrationTests/custom-setup/Cabal-99999/CabalMessage.hs
54 55 56 57
  tests/IntegrationTests/custom-setup/custom-setup-without-cabal-defaultMain/Setup.hs
  tests/IntegrationTests/custom-setup/custom-setup-without-cabal-defaultMain/custom-setup-without-cabal-defaultMain.cabal
  tests/IntegrationTests/custom-setup/custom-setup-without-cabal/Setup.hs
  tests/IntegrationTests/custom-setup/custom-setup-without-cabal/custom-setup-without-cabal.cabal
kristenk's avatar
kristenk committed
58 59
  tests/IntegrationTests/custom-setup/custom-setup/Setup.hs
  tests/IntegrationTests/custom-setup/custom-setup/custom-setup.cabal
60 61
  tests/IntegrationTests/custom-setup/custom_setup_without_Cabal_doesnt_allow_Cabal_import.sh
  tests/IntegrationTests/custom-setup/custom_setup_without_Cabal_doesnt_require_Cabal.sh
kristenk's avatar
kristenk committed
62
  tests/IntegrationTests/custom-setup/installs_Cabal_as_setup_dep.sh
63 64 65 66 67 68 69
  tests/IntegrationTests/custom/custom_dep.sh
  tests/IntegrationTests/custom/custom_dep/client/B.hs
  tests/IntegrationTests/custom/custom_dep/client/Setup.hs
  tests/IntegrationTests/custom/custom_dep/client/client.cabal
  tests/IntegrationTests/custom/custom_dep/custom/A.hs
  tests/IntegrationTests/custom/custom_dep/custom/Setup.hs
  tests/IntegrationTests/custom/custom_dep/custom/custom.cabal
70 71 72 73
  tests/IntegrationTests/custom/plain.sh
  tests/IntegrationTests/custom/plain/A.hs
  tests/IntegrationTests/custom/plain/Setup.hs
  tests/IntegrationTests/custom/plain/plain.cabal
74 75 76 77
  tests/IntegrationTests/custom/segfault.sh
  tests/IntegrationTests/custom/segfault/Setup.hs
  tests/IntegrationTests/custom/segfault/cabal.project
  tests/IntegrationTests/custom/segfault/plain.cabal
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
  tests/IntegrationTests/exec/Foo.hs
  tests/IntegrationTests/exec/My.hs
  tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.out
  tests/IntegrationTests/exec/adds_sandbox_bin_directory_to_path.sh
  tests/IntegrationTests/exec/auto_configures_on_exec.out
  tests/IntegrationTests/exec/auto_configures_on_exec.sh
  tests/IntegrationTests/exec/can_run_executables_installed_in_sandbox.out
  tests/IntegrationTests/exec/can_run_executables_installed_in_sandbox.sh
  tests/IntegrationTests/exec/configures_cabal_to_use_sandbox.sh
  tests/IntegrationTests/exec/configures_ghc_to_use_sandbox.sh
  tests/IntegrationTests/exec/exit_with_failure_without_args.err
  tests/IntegrationTests/exec/exit_with_failure_without_args.sh
  tests/IntegrationTests/exec/my.cabal
  tests/IntegrationTests/exec/runs_given_command.out
  tests/IntegrationTests/exec/runs_given_command.sh
  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
104
  tests/IntegrationTests/internal-libs/cabal.project
105 106
  tests/IntegrationTests/internal-libs/internal_lib_basic.sh
  tests/IntegrationTests/internal-libs/internal_lib_shadow.sh
107
  tests/IntegrationTests/internal-libs/new_build.sh
108 109 110 111 112 113 114 115 116 117 118 119
  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
120 121 122 123 124 125
  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
126 127 128 129 130 131 132 133 134 135 136
  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
137 138 139 140 141
  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
142 143 144 145
  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
146 147 148 149 150
  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
151 152 153 154 155 156
  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
157
  tests/IntegrationTests/new-build/monitor_cabal_files.sh
158
  tests/IntegrationTests/new-build/monitor_cabal_files/cabal.project
159 160 161 162 163 164 165
  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
166 167 168 169
  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
170 171 172 173
  tests/IntegrationTests/regression/t3199.sh
  tests/IntegrationTests/regression/t3199/Main.hs
  tests/IntegrationTests/regression/t3199/Setup.hs
  tests/IntegrationTests/regression/t3199/test-3199.cabal
174 175 176 177 178
  tests/IntegrationTests/regression/t3335.sh
  tests/IntegrationTests/regression/t3335/A.hs
  tests/IntegrationTests/regression/t3335/Setup.hs
  tests/IntegrationTests/regression/t3335/cabal.project
  tests/IntegrationTests/regression/t3335/t3335.cabal
179 180 181 182 183 184
  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
185 186 187 188 189
  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
190 191 192 193 194 195 196 197 198
  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
199
  tests/IntegrationTests/user-config/common.sh
200 201 202 203 204 205 206 207
  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
208 209 210 211 212
  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
213 214 215 216 217 218 219 220 221
  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
222
  tests/IntegrationTests2/exception/bad-config/cabal.project
223 224 225 226 227
  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
228 229 230 231 232
  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
233
  -- END gen-extra-source-files
Duncan Coutts's avatar
Duncan Coutts committed
234 235

source-repository head
236 237
  type:     git
  location: https://github.com/haskell/cabal/
Duncan Coutts's avatar
Duncan Coutts committed
238
  subdir:   cabal-install
239

240 241 242 243
Flag old-bytestring
  description:  Use bytestring < 0.10.2 and bytestring-builder
  default: False

244 245 246 247
Flag old-directory
  description:  Use directory < 1.2 and old-time
  default:      False

248 249 250 251
Flag network-uri
  description:  Get Network.URI from the network-uri package
  default:      True

252 253 254 255
Flag debug-conflict-sets
  description:  Add additional information to ConflictSets
  default:      False

Edsko de Vries's avatar
Edsko de Vries committed
256 257 258 259
Flag debug-tracetree
  description:  Compile in support for tracetree (used to debug the solver)
  default:      False

260 261
executable cabal
    main-is:        Main.hs
262
    ghc-options:    -Wall -fwarn-tabs -rtsopts
263
    if impl(ghc >= 8.0)
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
264 265 266
        ghc-options: -Wcompat
                     -Wnoncanonical-monad-instances
                     -Wnoncanonical-monadfail-instances
267

268
    other-modules:
269
        Distribution.Client.BuildTarget
Duncan Coutts's avatar
Duncan Coutts committed
270 271
        Distribution.Client.BuildReports.Anonymous
        Distribution.Client.BuildReports.Storage
Duncan Coutts's avatar
Duncan Coutts committed
272
        Distribution.Client.BuildReports.Types
Duncan Coutts's avatar
Duncan Coutts committed
273
        Distribution.Client.BuildReports.Upload
274
        Distribution.Client.Check
275 276
        Distribution.Client.CmdBuild
        Distribution.Client.CmdConfigure
Duncan Coutts's avatar
Duncan Coutts committed
277
        Distribution.Client.CmdFreeze
278
        Distribution.Client.CmdRepl
279
        Distribution.Client.Config
Duncan Coutts's avatar
Duncan Coutts committed
280
        Distribution.Client.Configure
281 282
        Distribution.Client.Dependency
        Distribution.Client.Dependency.Types
Duncan Coutts's avatar
Duncan Coutts committed
283
        Distribution.Client.DistDirLayout
barmston's avatar
barmston committed
284
        Distribution.Client.Exec
285
        Distribution.Client.Fetch
Duncan Coutts's avatar
Duncan Coutts committed
286
        Distribution.Client.FetchUtils
287
        Distribution.Client.FileMonitor
288
        Distribution.Client.Freeze
289
        Distribution.Client.GenBounds
290
        Distribution.Client.Get
291
        Distribution.Client.Glob
292
        Distribution.Client.GlobalFlags
293
        Distribution.Client.GZipUtils
294
        Distribution.Client.Haddock
295 296
        Distribution.Client.HttpUtils
        Distribution.Client.IndexUtils
297
        Distribution.Client.IndexUtils.Timestamp
298 299 300 301
        Distribution.Client.Init
        Distribution.Client.Init.Heuristics
        Distribution.Client.Init.Licenses
        Distribution.Client.Init.Types
302 303
        Distribution.Client.Install
        Distribution.Client.InstallPlan
304
        Distribution.Client.InstallSymlink
305
        Distribution.Client.JobControl
306
        Distribution.Client.List
Maciek Makowski's avatar
Maciek Makowski committed
307
        Distribution.Client.Manpage
Duncan Coutts's avatar
Duncan Coutts committed
308
        Distribution.Client.PackageHash
309
        Distribution.Client.PackageUtils
310
        Distribution.Client.ParseUtils
Duncan Coutts's avatar
Duncan Coutts committed
311
        Distribution.Client.ProjectBuilding
312
        Distribution.Client.ProjectBuilding.Types
313 314 315
        Distribution.Client.ProjectConfig
        Distribution.Client.ProjectConfig.Types
        Distribution.Client.ProjectConfig.Legacy
316
        Distribution.Client.ProjectOrchestration
Duncan Coutts's avatar
Duncan Coutts committed
317
        Distribution.Client.ProjectPlanning
318
        Distribution.Client.ProjectPlanning.Types
319
        Distribution.Client.ProjectPlanOutput
320
        Distribution.Client.RebuildMonad
ttuegel's avatar
ttuegel committed
321 322
        Distribution.Client.Reconfigure
        Distribution.Client.Run
323
        Distribution.Client.Sandbox
324 325
        Distribution.Client.Sandbox.Index
        Distribution.Client.Sandbox.PackageEnvironment
326
        Distribution.Client.Sandbox.Timestamp
327
        Distribution.Client.Sandbox.Types
ttuegel's avatar
ttuegel committed
328
        Distribution.Client.SavedFlags
329
        Distribution.Client.Security.DNS
Edsko de Vries's avatar
Edsko de Vries committed
330
        Distribution.Client.Security.HTTP
331 332 333
        Distribution.Client.Setup
        Distribution.Client.SetupWrapper
        Distribution.Client.SrcDist
334
        Distribution.Client.SolverInstallPlan
335
        Distribution.Client.SolverPlanIndex
336
        Distribution.Client.SourceFiles
337
        Distribution.Client.Tar
338
        Distribution.Client.Targets
339 340 341 342
        Distribution.Client.Types
        Distribution.Client.Update
        Distribution.Client.Upload
        Distribution.Client.Utils
343
        Distribution.Client.Utils.Json
344
        Distribution.Client.World
345
        Distribution.Client.Win32SelfUpgrade
346
        Distribution.Client.Compat.ExecutablePath
347
        Distribution.Client.Compat.FilePerms
348
        Distribution.Client.Compat.Prelude
349
        Distribution.Client.Compat.Process
350
        Distribution.Client.Compat.Semaphore
351
        Distribution.Solver.Types.ComponentDeps
352
        Distribution.Solver.Types.ConstraintSource
353
        Distribution.Solver.Types.DependencyResolver
354
        Distribution.Solver.Types.InstalledPreference
355
        Distribution.Solver.Types.InstSolverPackage
356
        Distribution.Solver.Types.LabeledPackageConstraint
357
        Distribution.Solver.Types.OptionalStanza
358
        Distribution.Solver.Types.PackageConstraint
359 360
        Distribution.Solver.Types.PackageFixedDeps
        Distribution.Solver.Types.PackageIndex
361
        Distribution.Solver.Types.PackagePath
362
        Distribution.Solver.Types.PackagePreferences
363 364
        Distribution.Solver.Types.PkgConfigDb
        Distribution.Solver.Types.Progress
365
        Distribution.Solver.Types.ResolverPackage
366 367 368 369
        Distribution.Solver.Types.Settings
        Distribution.Solver.Types.SolverId
        Distribution.Solver.Types.SolverPackage
        Distribution.Solver.Types.SourcePackage
370
        Distribution.Solver.Types.Variable
371 372 373 374 375 376 377
        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
378
        Distribution.Solver.Modular.Degree
379 380 381 382 383 384 385 386 387 388 389 390
        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
391
        Distribution.Solver.Modular.RetryLog
392 393 394 395 396
        Distribution.Solver.Modular.Solver
        Distribution.Solver.Modular.Tree
        Distribution.Solver.Modular.Validate
        Distribution.Solver.Modular.Var
        Distribution.Solver.Modular.Version
397
        Distribution.Solver.Modular.WeightedPSQ
398
        Paths_cabal_install
399

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
400 401
    -- NOTE: when updating build-depends, don't forget to update version regexps
    -- in bootstrap.sh.
Ben Millwood's avatar
Ben Millwood committed
402
    build-depends:
Duncan Coutts's avatar
Duncan Coutts committed
403
        async      >= 2.0      && < 3,
404 405
        array      >= 0.4      && < 0.6,
        base       >= 4.5      && < 5,
406
        base16-bytestring >= 0.1.1 && < 0.2,
407
        binary     >= 0.5      && < 0.9,
Ben Millwood's avatar
Ben Millwood committed
408
        bytestring >= 0.9      && < 1,
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
409
        Cabal      >= 1.25     && < 1.26,
410
        containers >= 0.4      && < 0.6,
411
        cryptohash-sha256 >= 0.11 && < 0.12,
412
        deepseq    >= 1.3      && < 1.5,
413
        edit-distance >= 0.2.2 && < 0.2.3,
414
        filepath   >= 1.3      && < 1.5,
415
        hashable   >= 1.0      && < 2,
416
        HTTP       >= 4000.1.5 && < 4000.4,
Ben Millwood's avatar
Ben Millwood committed
417
        mtl        >= 2.0      && < 3,
418
        pretty     >= 1.1      && < 1.2,
dsf's avatar
dsf committed
419
        random     >= 1        && < 1.2,
Ben Millwood's avatar
Ben Millwood committed
420
        stm        >= 2.0      && < 3,
421
        tar        >= 0.5.0.3  && < 0.6,
422
        time       >= 1.4      && < 1.7,
Edsko de Vries's avatar
Edsko de Vries committed
423
        zlib       >= 0.5.3    && < 0.7,
424
        hackage-security >= 0.5.2.2 && < 0.6
425

426 427 428 429 430
    if flag(old-bytestring)
      build-depends: bytestring <  0.10.2, bytestring-builder >= 0.10 && < 1
    else
      build-depends: bytestring >= 0.10.2

431
    if flag(old-directory)
432
      build-depends: directory >= 1.1 && < 1.2, old-time >= 1 && < 1.2,
433
                     process   >= 1.0.1.1  && < 1.1.0.2
434
    else
435
      build-depends: directory >= 1.2 && < 1.3,
436
                     process   >= 1.1.0.2  && < 1.5
437

438 439 440
    -- NOTE: you MUST include the network dependency even when network-uri
    -- is pulled in, otherwise the constraint solver doesn't have enough
    -- information
441
    if flag(network-uri)
442
      build-depends: network-uri >= 2.6 && < 2.7, network >= 2.6 && < 2.7
443
    else
tibbe's avatar
tibbe committed
444
      build-depends: network     >= 2.4 && < 2.6
445

446 447 448 449
    -- Needed for GHC.Generics before GHC 7.6
    if impl(ghc < 7.6)
      build-depends: ghc-prim >= 0.2 && < 0.3

450
    if os(windows)
451
      build-depends: Win32 >= 2 && < 3
452
    else
453
      build-depends: unix >= 2.5 && < 2.8
454

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

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

Edsko de Vries's avatar
Edsko de Vries committed
462 463 464 465
    if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
466
    default-language: Haskell2010
467

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

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

525 526 527 528 529
  if flag(network-uri)
    build-depends: network-uri >= 2.6, network >= 2.6
  else
    build-depends: network-uri < 2.6, network < 2.6

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

533 534 535 536 537
  if os(windows)
    build-depends: Win32
  else
    build-depends: unix

538 539
  ghc-options: -fno-ignore-asserts

540
  if !(arch(arm) && impl(ghc < 7.6))
541
    ghc-options: -threaded
542 543 544 545 546

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

Edsko de Vries's avatar
Edsko de Vries committed
547 548 549 550
  if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
551
  default-language: Haskell2010
barmston's avatar
barmston committed
552

553 554 555 556 557
-- Slow solver tests
Test-Suite solver-quickcheck
  type: exitcode-stdio-1.0
  main-is: SolverQuickCheck.hs
  hs-source-dirs: tests, .
558
  ghc-options: -Wall -fwarn-tabs -fno-ignore-asserts
559
  other-modules:
560 561
    UnitTests.Distribution.Solver.Modular.DSL
    UnitTests.Distribution.Solver.Modular.QuickCheck
562 563
  build-depends:
        base,
Duncan Coutts's avatar
Duncan Coutts committed
564
        async,
565 566 567 568
        array,
        bytestring,
        Cabal,
        containers,
569
        deepseq >= 1.2,
570 571 572 573 574 575 576 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
        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

605
  if !(arch(arm) && impl(ghc < 7.6))
606
    ghc-options: -threaded
607 608 609 610 611

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

Edsko de Vries's avatar
Edsko de Vries committed
612 613 614 615
  if flag(debug-tracetree)
      cpp-options: -DDEBUG_TRACETREE
      build-depends: tracetree >= 0.1 && < 0.2

616 617
  default-language: Haskell2010

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

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

640
  if !(arch(arm) && impl(ghc < 7.6))
barmston's avatar
barmston committed
641 642
    ghc-options: -threaded

643
  ghc-options: -Wall -fwarn-tabs -fno-ignore-asserts
Mikhail Glushenkov's avatar
Mikhail Glushenkov committed
644
  default-language: Haskell2010
645

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

  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

704 705 706 707 708
custom-setup
  setup-depends: Cabal >= 1.25,
                 base,
                 process   >= 1.1.0.1  && < 1.5,
                 filepath   >= 1.3      && < 1.5