packages feed

shake-0.3.1: shake.cabal

cabal-version:      >= 1.8
build-type:         Simple
name:               shake
version:            0.3.1
license:            BSD3
license-file:       LICENSE
category:           Development
author:             Neil Mitchell <ndmitchell@gmail.com>
maintainer:         Neil Mitchell <ndmitchell@gmail.com>
copyright:          Neil Mitchell 2011-2012
synopsis:           Build system library, like Make, but more accurate dependencies.
description:
    Shake is a Haskell library for writing build systems - designed as a
    replacement for make. To use Shake the user writes a Haskell program
    that imports the Shake library, defines some build rules, and calls
    shake. Thanks to do notation and infix operators, a simple Shake program
    is not too dissimilar from a simple Makefile. However, as build systems
    get more complex, Shake is able to take advantage of the excellent
    abstraction facilities offered by Haskell and easily support much larger
    projects.
    .
    The Shake library provides all the standard features available in other
    build systems, including automatic parallelism and minimal rebuilds.
    Shake provides highly accurate dependency tracking, including seamless
    support for generated files, and dependencies on system information
    (i.e. compiler version). Shake can produce profile reports, indicating
    which files and take longest to build, and providing an analysis of the
    parallelism.
    .
    The theory behind an old version of Shake is described in a video at
    <http://vimeo.com/15465133>, and an example is given at the top of
    "Development.Shake". Further examples are included in the Cabal tarball,
    under the @Examples@ directory.
homepage:           http://community.haskell.org/~ndm/shake/
stability:          Beta
extra-source-files:
    Examples/C/constants.c
    Examples/C/constants.h
    Examples/C/main.c
    Examples/Tar/list.txt

data-files:
    html/*.js
    html/*.css
    html/report.html

source-repository head
    type:     darcs
    location: http://community.haskell.org/~ndm/darcs/shake/

flag testprog
    default: False
    description: Build the test program

flag portable
    default: False
    description: Obtain FileTime using portable functions

library
    build-depends:
        base == 4.*,
        old-time,
        directory,
        hashable >= 1.1.2.3 && < 1.2,
        binary,
        filepath,
        process,
        unordered-containers (>= 0.1.4.3 && < 0.2) || (>= 0.2.1 && < 0.3),
        bytestring,
        time,
        random,
        transformers >= 0.2 && < 0.4,
        deepseq >= 1.1 && < 1.4

    if flag(portable)
        cpp-options: -DPORTABLE
    elif !os(windows)
        build-depends: unix >= 2.5.1

    exposed-modules:
        Development.Shake
        Development.Shake.FilePath

    other-modules:
        Development.Shake.Binary
        Development.Shake.Core
        Development.Shake.Database
        Development.Shake.Derived
        Development.Shake.Directory
        Development.Shake.File
        Development.Shake.FilePattern
        Development.Shake.Files
        Development.Shake.FileTime
        Development.Shake.Intern
        Development.Shake.Locks
        Development.Shake.Oracle
        Development.Shake.Pool
        Development.Shake.Report
        Development.Shake.Rerun
        Development.Shake.Storage
        Development.Shake.Value
        Paths_shake

executable shake
    main-is: Main.hs
    if flag(testprog)
        buildable: True
    else
        buildable: False
    build-depends:
        base == 4.*,
        old-time,
        directory,
        hashable >= 1.1.2.3 && < 1.2,
        binary,
        filepath,
        process,
        unordered-containers (>= 0.1.4.3 && < 0.2) || (>= 0.2.1 && < 0.3),
        bytestring,
        time,
        random,
        transformers >= 0.2 && < 0.4,
        deepseq >= 1.1 && < 1.4

    other-modules:
        Examples.Util
        Examples.C.Main
        Examples.Self.Main
        Examples.Tar.Main
        Examples.Test.Basic
        Examples.Test.Directory
        Examples.Test.Errors
        Examples.Test.FilePath
        Examples.Test.Files
        Examples.Test.Journal
        Examples.Test.Pool
        Examples.Test.Random
        Examples.Test.Resources