name:                packunused
version:             0.1.0.1
synopsis:            Tool for detecting redundant Cabal package dependencies
homepage:            https://github.com/hvr/packunused
license:             BSD3
license-file:        LICENSE
author:              Herbert Valerio Riedel <hvr@gnu.org>
maintainer:          Herbert Valerio Riedel <hvr@gnu.org>
category:            Distribution
build-type:          Simple
cabal-version:       >=1.10
tested-with:         GHC ==7.6.3, GHC ==7.6.2, GHC ==7.6.1, GHC ==7.4.2, GHC ==7.4.1
description:
  This simple CLI tool allows to find out which of the packages listed as
  @build-depends@ in a Cabal package description file are redundant.
  .
  @packunused@ works by taking advantage of GHC's
  @-ddump-minimal-imports@ feature which creates @.import@ files for
  each compiled module containing a /minimal/ set of explicit import
  declarations. These @.import@ files together with Cabal's generated
  package configuration meta-data is analyzed by @packunused@ to
  detect potentially redundant package dependencies.
  .
  In order to use @packunused@ you have to configure the package as
  usual. See the example session below:
  .
  > cabal clean
  > rm *.imports
  > cabal configure -O0 --disable-library-profiling
  > cabal build --ghc-option=-ddump-minimal-imports
  > packunused
  .
  The @-O0 --disable-library-profiling@ options are just to speed up
  compilation. In some cases you might want to pass additional options
  to the @configure@ step, such as @--enable-benchmark@ or
  @--enable-tests@.
  .
  When run, @packunused@ prints a report to standard output listing
  its findings for each component built. The following is an example
  for the @packunused@ package itself, with a redundant dependency
  added for demonstration on purpose:
  .
  > detected package components
  > ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  >
  >  - executable(s): packunused
  >
  > (component names suffixed with '*' are not configured to be built)
  >
  > executable(packunused)
  > ~~~~~~~~~~~~~~~~~~~~~~
  >
  > The following package depencencies seem redundant:
  >
  >  - criterion-0.6.2.0-9dd4d764629a47662168743b2dfda9bc
  >

source-repository head
    type:     git
    location: https://github.com/hvr/packunused.git

executable packunused
  main-is:             packunused.hs
  default-language:    Haskell2010
  other-extensions:    CPP, DeriveDataTypeable, RecordWildCards
  ghc-options:         -Wall -fwarn-tabs -fno-warn-unused-do-bind
  build-depends:
    base              >=4.5  && <4.7,
    Cabal             >=1.14 && <1.17,
    cmdargs           ==0.10.*,
    directory         >=1.1  && <1.3,
    filepath          ==1.3.*,
    haskell-src-exts  >=1.13 && <1.15