packages feed

cabal-dev-0.8: cabal-dev.cabal

Name:                cabal-dev
Version:             0.8
Synopsis:            Manage sandboxed Haskell build environments

Description:         cabal-dev is a tool for managing development builds of
                     Haskell projects. It supports maintaining sandboxed
                     cabal-install repositories, and sandboxed ghc package
                     databases.
                     .
                     By default, it uses a cabal-dev directory under
                     the current working directory as the sandbox.
                     .
                     For most packages, just use @cabal-dev@ instead of
                     @cabal@, and you will get a sandboxed build that
                     will not install anything (even automatically installed
                     dependencies) into the user or global ghc package
                     databases.
                     .
                     If your build depends on patched or unreleased libraries,
                     you can add them to your sandboxed build environment so
                     they can be installed by @cabal-dev@ or @cabal@. Just run:
                     .
                     > cabal-dev add-source /path/to/source/code
                     .
                     @cabal-dev add-source@ also supports importing tarballs
                     into a local cabal repository.

License:             BSD3
License-file:        LICENSE
Author:              Josh Hoyt, Jonathan Daughtery, Rogan Creswick
Maintainer:          j3h@galois.com, jtd@galois.com, creswick@galois.com
Homepage:            https://github.com/creswick/cabal-dev
Copyright:           2010 Galois, Inc.
Category:            Development
Build-type:          Custom
Cabal-version:       >=1.6
Data-Files:
  admin/cabal-config.in,
  admin/00-index.tar
Tested-with: GHC == 6.12.3, GHC == 6.10.4, GHC == 7.0.3

source-repository head
  type:        git
  location:    git://github.com/creswick/cabal-dev.git

Flag no-cabal-dev
  Description: Do not build cabal-dev (just build ghc-pkg-6_8-compat).
               This is useful for bootstrapping on GHC 6.8.
  Default: False

  -- Don't try to flip this flag when looking for a
  -- satisfiable configuration for this package
  Manual: True

Flag build-tests
  Description: Build and install the test executable
  Default: False
  Manual: True

Executable cabal-dev
  HS-Source-Dirs: src
  Main-is: Main.hs
  GHC-Options: -Wall

  if flag(no-cabal-dev)
    Buildable: False
  else
    if impl(ghc >= 6.10)
      Build-depends:
        base >= 4 && < 5
    else
      Build-depends:
        base >= 3 && < 4

    -- Containers 0.2 did not specify a constraint on base, so we
    -- avoid using it:
    if impl(ghc >= 6.12)
      Build-depends:
        containers >= 0.3 && < 0.5

    -- Require this specific version that came with GHC 6.10 because
    -- of packaging problems with containers-0.2
    if impl(ghc == 6.10)
      Build-depends:
        containers == 0.2.0.1

    if impl(ghc == 6.8)
      Build-depends:
        containers == 0.1.0.2

    Build-depends:
      bytestring >= 0.9 && < 0.10,
      directory >= 1.0 && < 1.3,
      filepath >= 1.1 && < 1.3,
      Cabal >= 1.10.0.0 && < 1.11,
      HTTP >= 4000.0.9 && < 4000.2,
      mtl >= 1.1 && < 2.1,
      network >= 2.2 && < 2.4,
      pretty >= 1.0 && < 1.1,
      process >= 1.0 && < 1.1,
      tar >= 0.3 && < 0.4,
      zlib >= 0.5 && < 0.6,
      transformers >= 0.2 && < 0.3,

      -- Template haskell is special: the compiler will die if a
      -- version other than the one that is shipped with the compiler
      -- is used. Here, we don't constrain the version and hope that
      -- there will be only one.
      template-haskell

  if os(windows)
     build-depends: Win32 >= 2.1  && < 2.3

  Build-tools:
    cabal >= 0.8.2

  Other-modules:
    Distribution.Dev.AddSource,
    Distribution.Dev.BuildOpts,
    Distribution.Dev.CabalInstall,
    Distribution.Dev.Command,
    Distribution.Dev.Flags,
    Distribution.Dev.Ghci,
    Distribution.Dev.GhcPkg,
    Distribution.Dev.GhcArgs,
    Distribution.Dev.InitPkgDb,
    Distribution.Dev.InstallDependencies,
    Distribution.Dev.InterrogateCabalInstall,
    Distribution.Dev.InvokeCabal,
    Distribution.Dev.MergeCabalConfig,
    Distribution.Dev.RewriteCabalConfig,
    Distribution.Dev.Sandbox,
    Distribution.Dev.TH.DeriveCabalCommands,
    Distribution.Dev.Utilities

Executable ghc-pkg-6_8-compat
  Main-is: GhcPkgCompat.hs
  Build-Depends:
    base < 5,
    Cabal >=1.2 && < 1.11

  GHC-Options: -Wall
  HS-Source-Dirs: src

Executable cabal-dev-test
  Main-is: RunTests.hs
  GHC-Options: -Wall
  HS-Source-Dirs: src, test
  if flag(no-cabal-dev) || !flag(build-tests)
    Buildable: False
  else
    if impl(ghc >= 6.10)
      Build-depends:
        base >= 4 && < 5
    else
      Build-depends:
        base >= 3 && < 4

    Build-depends:
      MonadRandom >= 0.1 && < 0.2,
      random >= 1 && < 1.1,
      test-framework >= 0.3 && < 0.4,
      test-framework-hunit >= 0.2,
      HUnit >= 1.2 && <2,
-- These dependencies are needed for the cabal-install
-- code that is pulled in automatically by the userhooks
      containers >= 0.1 && < 0.4,
      network  >= 1        && < 3,
      array      >= 0.1 && < 0.4,
      pretty     >= 1   && < 1.1

  if os(windows)
     build-depends: Win32 >= 2.1  && < 2.3


Executable fake-ghc-cabal-dev
  HS-Source-Dirs: src/
  Build-depends: base
  Main-is: FakeGhc.hs