name:           criterion
version:        1.1.1.0
synopsis:       Robust, reliable performance measurement and analysis
license:        BSD3
license-file:   LICENSE
author:         Bryan O'Sullivan <bos@serpentine.com>
maintainer:     Bryan O'Sullivan <bos@serpentine.com>
copyright:      2009-2014 Bryan O'Sullivan
category:       Development, Performance, Testing, Benchmarking
homepage:       http://www.serpentine.com/criterion
bug-reports:    https://github.com/bos/criterion/issues
build-type:     Simple
cabal-version:  >= 1.8
extra-source-files:
  README.markdown
  changelog.md
  examples/*.cabal
  examples/*.hs
  examples/*.html
  js-src/flot-0.8.3.zip
  js-src/jquery-2.1.1.js

data-files:
  templates/*.css
  templates/*.tpl
  templates/js/jquery-2.1.1.min.js
  templates/js/jquery.criterion.js
  templates/js/jquery.flot-0.8.3.min.js

description:
  This library provides a powerful but simple way to measure software
  performance.  It provides both a framework for executing and
  analysing benchmarks and a set of driver functions that makes it
  easy to build and run benchmarks, and to analyse their results.
  .
  The fastest way to get started is to read the
  <http://www.serpentine.com/criterion/tutorial.html online tutorial>,
  followed by the documentation and examples in the "Criterion.Main"
  module.
  .
  For examples of the kinds of reports that criterion generates, see
  <http://www.serpentine.com/criterion the home page>.

library
  exposed-modules:
    Criterion
    Criterion.Analysis
    Criterion.IO
    Criterion.IO.Printf
    Criterion.Internal
    Criterion.Main
    Criterion.Main.Options
    Criterion.Measurement
    Criterion.Monad
    Criterion.Report
    Criterion.Types

  other-modules:
    Criterion.Monad.Internal

  c-sources: cbits/cycles.c
  if os(darwin)
    c-sources: cbits/time-osx.c
  else {
    if os(windows)
      c-sources: cbits/time-windows.c
    else
      c-sources: cbits/time-posix.c
  }

  other-modules:
    Paths_criterion

  build-depends:
    aeson >= 0.8,
    ansi-wl-pprint >= 0.6.7.2,
    base >= 4.5 && < 5,
    binary >= 0.5.1.0,
    bytestring >= 0.9 && < 1.0,
    cassava >= 0.3.0.0,
    containers,
    deepseq >= 1.1.0.0,
    directory,
    filepath,
    Glob >= 0.7.2,
    hastache >= 0.6.0,
    mtl >= 2,
    mwc-random >= 0.8.0.3,
    optparse-applicative >= 0.11,
    parsec >= 3.1.0,
    statistics >= 0.13.2.1,
    text >= 0.11,
    time,
    transformers,
    transformers-compat >= 0.4,
    vector >= 0.7.1,
    vector-algorithms >= 0.4
  if impl(ghc < 7.6)
    build-depends:
      ghc-prim

  ghc-options: -O2 -Wall -funbox-strict-fields
  if impl(ghc >= 6.8)
    ghc-options: -fwarn-tabs

executable criterion
  hs-source-dirs: app
  main-is:        App.hs
  other-modules:
    Options

  ghc-options:
    -Wall -threaded -rtsopts

  build-depends:
    base,
    criterion,
    optparse-applicative

test-suite sanity
  type:           exitcode-stdio-1.0
  hs-source-dirs: tests
  main-is:        Sanity.hs
  ghc-options:    -O2 -Wall -rtsopts
  build-depends:
    HUnit,
    base,
    bytestring,
    criterion,
    test-framework,
    test-framework-hunit

test-suite tests
  type:           exitcode-stdio-1.0
  hs-source-dirs: tests
  main-is:        Tests.hs
  other-modules:  Properties

  ghc-options:
    -Wall -threaded -O0 -rtsopts

  build-depends:
    QuickCheck >= 2.4,
    base,
    criterion,
    statistics,
    test-framework >= 0.4,
    test-framework-quickcheck2 >= 0.2,
    vector

source-repository head
  type:     git
  location: https://github.com/bos/criterion.git
