packages feed

tracetree-0.1.0.2: tracetree.cabal

name:                tracetree
version:             0.1.0.2
synopsis:            Visualize Haskell data structures as edge-labeled trees
description:         The tracetree library can be used to conveniently write
                     Haskell data structures as trees represented as JSON
                     files. These JSON files can then be inspected with any
                     JSON viewer; the JSON viewer's functionality to collapse
                     part of the JSON tree can be particularly convenient when
                     exploring large objects.
                     .
                     Additionally, the ttrender executable can be used to render
                     these JSON trees as .svg or .png files, and provides
                     various command line flags for controlling the layout of
                     the tree (colour, orientation, hiding nodes, etc.).
                     .
                     The tracetree library and ttrender executable are
                     independent components; if you don't want to add the
                     dependency on tracetree to your project, you can just
                     generate the .JSON files directly in your code; the format
                     is not complicated (indeed, you can create them by hand
                     or post-process previously exported .JSON files).
license:             BSD3
license-file:        LICENSE
author:              Edsko de Vries
maintainer:          edsko@well-typed.com
copyright:           Copyright 2015 Well-Typed LLP
category:            Development
build-type:          Simple
-- extra-source-files:
cabal-version:       >=1.10

extra-source-files:
  ChangeLog.md

source-repository head
  type: git
  location: https://github.com/edsko/tracetree

flag ttrender
  description: Build executable to render the trees (requires Cairo)
  default: False

library
  exposed-modules:     Debug.Trace.Tree
                       Debug.Trace.Tree.Assoc
                       Debug.Trace.Tree.Edged
                       Debug.Trace.Tree.Generic
                       Debug.Trace.Tree.Rose
                       Debug.Trace.Tree.Simple
  -- We need ghc 7.10 (using bidrectional pattern synonyms),
  -- but I don't know how to specify that other through the version of base
  build-depends:       base         >= 4.8 && < 5,
                       bifunctors   >= 4.2 && < 5.6,
                       containers   >= 0.5 && < 0.6,
                       json         >= 0.9 && < 0.10,
                       mtl          >= 2.2 && < 2.3,
                       transformers >= 0.4 && < 0.6
  hs-source-dirs:      src
  default-language:    Haskell2010
  ghc-options:         -Wall
  default-extensions:  DefaultSignatures
                       ExistentialQuantification
                       FlexibleContexts
                       FlexibleInstances
                       MultiParamTypeClasses
                       NoMonomorphismRestriction
                       ParallelListComp
                       PatternSynonyms
                       RankNTypes
                       RecordWildCards
                       ScopedTypeVariables
                       TupleSections
                       TypeOperators
                       ViewPatterns
  other-extensions:    CPP

executable ttrender
  main-is:             Main.hs
  other-modules:       Debug.Trace.Tree.Render.Edged
                       Debug.Trace.Tree.Render.Options
                       Debug.Trace.Tree.Render.Simple
                       Debug.Trace.Tree.Render.Constants

  if flag(ttrender)
    build-depends:     base                 >= 4.8  && < 5,
                       colour               >= 2.3  && < 2.4,
                       json                 >= 0.9  && < 0.10,
                       optparse-applicative >= 0.11 && < 0.15,
                       regex-posix          >= 0.95 && < 0.96,
                       parsec               >= 3.1  && < 3.2,
                       diagrams-cairo       >= 1.3  && < 1.5,
                       diagrams-lib         >= 1.3  && < 1.5,
                       diagrams-contrib     >= 1.3  && < 1.5,
                       SVGFonts             >= 1.5  && < 1.7,
                       -- whatever version we use above
                       tracetree
  else
    buildable:         False

  hs-source-dirs:      ttrender
  default-language:    Haskell2010
  default-extensions:  BangPatterns
                       FlexibleContexts
                       FlexibleInstances
                       MultiParamTypeClasses
                       NoMonomorphismRestriction
                       PatternSynonyms
                       RecordWildCards
                       ScopedTypeVariables
                       TupleSections
                       TypeFamilies
                       ViewPatterns
  ghc-options:         -Wall