name: Cabal
version: 1.22.4.0
copyright: 2003-2006, Isaac Jones
           2005-2011, Duncan Coutts
license: BSD3
license-file: LICENSE
author: Isaac Jones <ijones@syntaxpolice.org>
        Duncan Coutts <duncan@community.haskell.org>
maintainer: cabal-devel@haskell.org
homepage: http://www.haskell.org/cabal/
bug-reports: https://github.com/haskell/cabal/issues
synopsis: A framework for packaging Haskell software
description:
  The Haskell Common Architecture for Building Applications and
  Libraries: a framework defining a common interface for authors to more
  easily build their Haskell applications in a portable way.
  .
  The Haskell Cabal is part of a larger infrastructure for distributing,
  organizing, and cataloging Haskell libraries and tools.
category: Distribution
cabal-version: >=1.10
build-type: Custom
-- Even though we do use the default Setup.lhs it's vital to bootstrapping
-- that we build Setup.lhs using our own local Cabal source code.

extra-source-files:
  README.md tests/README.md changelog
  doc/developing-packages.markdown doc/index.markdown
  doc/installing-packages.markdown
  doc/misc.markdown

  -- Generated with 'misc/gen-extra-source-files.sh' & 'M-x sort-lines':
  tests/PackageTests/BenchmarkExeV10/Foo.hs
  tests/PackageTests/BenchmarkExeV10/benchmarks/bench-Foo.hs
  tests/PackageTests/BenchmarkExeV10/my.cabal
  tests/PackageTests/BenchmarkOptions/BenchmarkOptions.cabal
  tests/PackageTests/BenchmarkOptions/test-BenchmarkOptions.hs
  tests/PackageTests/BenchmarkStanza/my.cabal
  tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/GlobalBuildDepsNotAdditive1.cabal
  tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive1/MyLibrary.hs
  tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/GlobalBuildDepsNotAdditive2.cabal
  tests/PackageTests/BuildDeps/GlobalBuildDepsNotAdditive2/lemon.hs
  tests/PackageTests/BuildDeps/InternalLibrary0/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary0/my.cabal
  tests/PackageTests/BuildDeps/InternalLibrary0/programs/lemon.hs
  tests/PackageTests/BuildDeps/InternalLibrary1/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary1/my.cabal
  tests/PackageTests/BuildDeps/InternalLibrary1/programs/lemon.hs
  tests/PackageTests/BuildDeps/InternalLibrary2/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary2/my.cabal
  tests/PackageTests/BuildDeps/InternalLibrary2/programs/lemon.hs
  tests/PackageTests/BuildDeps/InternalLibrary2/to-install/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary2/to-install/my.cabal
  tests/PackageTests/BuildDeps/InternalLibrary3/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary3/my.cabal
  tests/PackageTests/BuildDeps/InternalLibrary3/programs/lemon.hs
  tests/PackageTests/BuildDeps/InternalLibrary3/to-install/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary3/to-install/my.cabal
  tests/PackageTests/BuildDeps/InternalLibrary4/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary4/my.cabal
  tests/PackageTests/BuildDeps/InternalLibrary4/programs/lemon.hs
  tests/PackageTests/BuildDeps/InternalLibrary4/to-install/MyLibrary.hs
  tests/PackageTests/BuildDeps/InternalLibrary4/to-install/my.cabal
  tests/PackageTests/BuildDeps/SameDepsAllRound/MyLibrary.hs
  tests/PackageTests/BuildDeps/SameDepsAllRound/SameDepsAllRound.cabal
  tests/PackageTests/BuildDeps/SameDepsAllRound/lemon.hs
  tests/PackageTests/BuildDeps/SameDepsAllRound/pineapple.hs
  tests/PackageTests/BuildDeps/TargetSpecificDeps1/MyLibrary.hs
  tests/PackageTests/BuildDeps/TargetSpecificDeps1/lemon.hs
  tests/PackageTests/BuildDeps/TargetSpecificDeps1/my.cabal
  tests/PackageTests/BuildDeps/TargetSpecificDeps2/MyLibrary.hs
  tests/PackageTests/BuildDeps/TargetSpecificDeps2/lemon.hs
  tests/PackageTests/BuildDeps/TargetSpecificDeps2/my.cabal
  tests/PackageTests/BuildDeps/TargetSpecificDeps3/MyLibrary.hs
  tests/PackageTests/BuildDeps/TargetSpecificDeps3/lemon.hs
  tests/PackageTests/BuildDeps/TargetSpecificDeps3/my.cabal
  tests/PackageTests/BuildTestSuiteDetailedV09/Dummy.hs
  tests/PackageTests/BuildTestSuiteDetailedV09/my.cabal
  tests/PackageTests/CMain/Bar.hs
  tests/PackageTests/CMain/Setup.hs
  tests/PackageTests/CMain/foo.c
  tests/PackageTests/CMain/my.cabal
  tests/PackageTests/DeterministicAr/Lib.hs
  tests/PackageTests/DeterministicAr/my.cabal
  tests/PackageTests/EmptyLib/empty/empty.cabal
  tests/PackageTests/Haddock/CPP.hs
  tests/PackageTests/Haddock/Literate.lhs
  tests/PackageTests/Haddock/NoCPP.hs
  tests/PackageTests/Haddock/Simple.hs
  tests/PackageTests/Haddock/my.cabal
  tests/PackageTests/OrderFlags/Foo.hs
  tests/PackageTests/OrderFlags/my.cabal
  tests/PackageTests/PathsModule/Executable/Main.hs
  tests/PackageTests/PathsModule/Executable/my.cabal
  tests/PackageTests/PathsModule/Library/my.cabal
  tests/PackageTests/PreProcess/Foo.hsc
  tests/PackageTests/PreProcess/Main.hs
  tests/PackageTests/PreProcess/my.cabal
  tests/PackageTests/ReexportedModules/ReexportedModules.cabal
  tests/PackageTests/TemplateHaskell/dynamic/Exe.hs
  tests/PackageTests/TemplateHaskell/dynamic/Lib.hs
  tests/PackageTests/TemplateHaskell/dynamic/TH.hs
  tests/PackageTests/TemplateHaskell/dynamic/my.cabal
  tests/PackageTests/TemplateHaskell/profiling/Exe.hs
  tests/PackageTests/TemplateHaskell/profiling/Lib.hs
  tests/PackageTests/TemplateHaskell/profiling/TH.hs
  tests/PackageTests/TemplateHaskell/profiling/my.cabal
  tests/PackageTests/TemplateHaskell/vanilla/Exe.hs
  tests/PackageTests/TemplateHaskell/vanilla/Lib.hs
  tests/PackageTests/TemplateHaskell/vanilla/TH.hs
  tests/PackageTests/TemplateHaskell/vanilla/my.cabal
  tests/PackageTests/TestOptions/TestOptions.cabal
  tests/PackageTests/TestOptions/test-TestOptions.hs
  tests/PackageTests/TestStanza/my.cabal
  tests/PackageTests/TestSuiteExeV10/Foo.hs
  tests/PackageTests/TestSuiteExeV10/my.cabal
  tests/PackageTests/TestSuiteExeV10/tests/test-Foo.hs
  tests/Setup.hs
  tests/hackage/check.sh
  tests/hackage/download.sh
  tests/hackage/unpack.sh
  tests/misc/ghc-supported-languages.hs

source-repository head
  type:     git
  location: https://github.com/haskell/cabal/
  subdir:   Cabal

flag bundled-binary-generic
  default: False

library
  build-depends:
    base       >= 4.4 && < 5,
    deepseq    >= 1.3 && < 1.5,
    filepath   >= 1   && < 1.5,
    directory  >= 1   && < 1.3,
    process    >= 1.1.0.1 && < 1.3,
    time       >= 1.1 && < 1.6,
    containers >= 0.1 && < 0.6,
    array      >= 0.1 && < 0.6,
    pretty     >= 1   && < 1.2,
    bytestring >= 0.9

  if flag(bundled-binary-generic)
    build-depends: binary >= 0.5 && < 0.7
  else
    build-depends: binary >= 0.7 && < 0.8

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

  if !os(windows)
    build-depends:
      unix >= 2.0 && < 2.8

  ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs

  exposed-modules:
    Distribution.Compat.CreatePipe
    Distribution.Compat.Environment
    Distribution.Compat.Exception
    Distribution.Compat.ReadP
    Distribution.Compiler
    Distribution.InstalledPackageInfo
    Distribution.License
    Distribution.Make
    Distribution.ModuleName
    Distribution.Package
    Distribution.PackageDescription
    Distribution.PackageDescription.Check
    Distribution.PackageDescription.Configuration
    Distribution.PackageDescription.Parse
    Distribution.PackageDescription.PrettyPrint
    Distribution.PackageDescription.Utils
    Distribution.ParseUtils
    Distribution.ReadE
    Distribution.Simple
    Distribution.Simple.Bench
    Distribution.Simple.Build
    Distribution.Simple.Build.Macros
    Distribution.Simple.Build.PathsModule
    Distribution.Simple.BuildPaths
    Distribution.Simple.BuildTarget
    Distribution.Simple.CCompiler
    Distribution.Simple.Command
    Distribution.Simple.Compiler
    Distribution.Simple.Configure
    Distribution.Simple.GHC
    Distribution.Simple.GHCJS
    Distribution.Simple.Haddock
    Distribution.Simple.HaskellSuite
    Distribution.Simple.Hpc
    Distribution.Simple.Install
    Distribution.Simple.InstallDirs
    Distribution.Simple.JHC
    Distribution.Simple.LHC
    Distribution.Simple.LocalBuildInfo
    Distribution.Simple.PackageIndex
    Distribution.Simple.PreProcess
    Distribution.Simple.PreProcess.Unlit
    Distribution.Simple.Program
    Distribution.Simple.Program.Ar
    Distribution.Simple.Program.Builtin
    Distribution.Simple.Program.Db
    Distribution.Simple.Program.Find
    Distribution.Simple.Program.GHC
    Distribution.Simple.Program.HcPkg
    Distribution.Simple.Program.Hpc
    Distribution.Simple.Program.Ld
    Distribution.Simple.Program.Run
    Distribution.Simple.Program.Script
    Distribution.Simple.Program.Strip
    Distribution.Simple.Program.Types
    Distribution.Simple.Register
    Distribution.Simple.Setup
    Distribution.Simple.SrcDist
    Distribution.Simple.Test
    Distribution.Simple.Test.ExeV10
    Distribution.Simple.Test.LibV09
    Distribution.Simple.Test.Log
    Distribution.Simple.UHC
    Distribution.Simple.UserHooks
    Distribution.Simple.Utils
    Distribution.System
    Distribution.TestSuite
    Distribution.Text
    Distribution.Utils.NubList
    Distribution.Verbosity
    Distribution.Version
    Language.Haskell.Extension

  other-modules:
    Distribution.Compat.Binary
    Distribution.Compat.CopyFile
    Distribution.Compat.TempFile
    Distribution.GetOpt
    Distribution.Simple.GHC.Internal
    Distribution.Simple.GHC.IPI641
    Distribution.Simple.GHC.IPI642
    Distribution.Simple.GHC.ImplInfo
    Paths_Cabal

  if flag(bundled-binary-generic)
    other-modules:
      Distribution.Compat.Binary.Class
      Distribution.Compat.Binary.Generic

  default-language: Haskell98
  default-extensions: CPP

-- Small, fast running tests.
test-suite unit-tests
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  other-modules:
    UnitTests.Distribution.Compat.CreatePipe
    UnitTests.Distribution.Compat.ReadP
    UnitTests.Distribution.Utils.NubList
  main-is: UnitTests.hs
  build-depends:
    base,
    test-framework,
    test-framework-hunit,
    test-framework-quickcheck2,
    HUnit,
    QuickCheck < 2.8,
    Cabal
  ghc-options: -Wall
  default-language: Haskell98

-- Large, system tests that build packages.
test-suite package-tests
  type: exitcode-stdio-1.0
  main-is: PackageTests.hs
  other-modules:
    PackageTests.BenchmarkExeV10.Check
    PackageTests.BenchmarkOptions.Check
    PackageTests.BenchmarkStanza.Check
    PackageTests.BuildDeps.GlobalBuildDepsNotAdditive1.Check
    PackageTests.BuildDeps.GlobalBuildDepsNotAdditive2.Check
    PackageTests.BuildDeps.InternalLibrary0.Check
    PackageTests.BuildDeps.InternalLibrary1.Check
    PackageTests.BuildDeps.InternalLibrary2.Check
    PackageTests.BuildDeps.InternalLibrary3.Check
    PackageTests.BuildDeps.InternalLibrary4.Check
    PackageTests.BuildDeps.SameDepsAllRound.Check
    PackageTests.BuildDeps.TargetSpecificDeps1.Check
    PackageTests.BuildDeps.TargetSpecificDeps2.Check
    PackageTests.BuildDeps.TargetSpecificDeps3.Check
    PackageTests.BuildTestSuiteDetailedV09.Check
    PackageTests.CMain.Check
    PackageTests.DeterministicAr.Check
    PackageTests.EmptyLib.Check
    PackageTests.Haddock.Check
    PackageTests.OrderFlags.Check
    PackageTests.PackageTester
    PackageTests.PathsModule.Executable.Check
    PackageTests.PathsModule.Library.Check
    PackageTests.PreProcess.Check
    PackageTests.ReexportedModules.Check
    PackageTests.TemplateHaskell.Check
    PackageTests.TestOptions.Check
    PackageTests.TestStanza.Check
    PackageTests.TestSuiteExeV10.Check
  hs-source-dirs: tests
  build-depends:
    base,
    containers,
    test-framework,
    test-framework-quickcheck2 >= 0.2.12,
    test-framework-hunit,
    HUnit,
    QuickCheck >= 2.1.0.1 && < 2.8,
    Cabal,
    process,
    directory,
    filepath,
    extensible-exceptions,
    bytestring,
    regex-posix,
    old-time
  if !os(windows)
    build-depends: unix
  ghc-options: -Wall
  default-extensions: CPP
  default-language: Haskell98
