packages feed

ghc-exactprint-0.4.2.0: ghc-exactprint.cabal

name:                ghc-exactprint
version:             0.4.2.0
synopsis:            ExactPrint for GHC
description:         Using the API Annotations available from GHC 7.10.2, this
                     library provides a means to round trip any code that can
                     be compiled by GHC, currently excluding lhs files.
                     .
                     It does this with a phased approach
                     .
                        * Delta - converts GHC API Annotations into relative
                          offsets, indexed by SrcSpan
                     .
                        * Transform - functions to facilitate changes to
                          the AST, adjusting the annotations generated in the
                          Delta phase to suit the changes.
                     .
                        * Print - converts an AST and its annotations to
                          properly formatted source text.
                     .
                     .
                     Note: requires GHC 7.10.2 or later

license:             BSD3
license-file:        LICENSE
author:              Alan Zimmerman, Matthew Pickering
maintainer:          alan.zimm@gmail.com
category:            Development
build-type:          Simple
extra-source-files:  ChangeLog
                     tests/examples/*.hs
                     tests/examples/*.hs.bad
                     tests/examples/*.hs.expected
                     tests/examples/*.hs-boot
cabal-version:       >=1.10

source-repository head
  type:     git
  location: https://github.com/alanz/ghc-exactprint.git

Flag roundtrip {
  Description: Build roundtripping executables
  Default:     False
}


library
  exposed-modules:     Language.Haskell.GHC.ExactPrint
                     , Language.Haskell.GHC.ExactPrint.Annotate
                     , Language.Haskell.GHC.ExactPrint.Delta
                     , Language.Haskell.GHC.ExactPrint.GhcInterim
                     , Language.Haskell.GHC.ExactPrint.Lookup
                     , Language.Haskell.GHC.ExactPrint.Preprocess
                     , Language.Haskell.GHC.ExactPrint.Print
                     , Language.Haskell.GHC.ExactPrint.Transform
                     , Language.Haskell.GHC.ExactPrint.Types
                     , Language.Haskell.GHC.ExactPrint.Utils
                     , Language.Haskell.GHC.ExactPrint.Parsers


  -- other-modules:
  -- other-extensions:
  GHC-Options:         -Wall
  build-depends:       base >=4.7 && <4.9
                     , containers >= 0.5
                     , directory >= 1.2
                     , filepath  >= 1.4
                     , ghc       >= 7.10.2
                     , ghc-paths >= 0.1
                     , mtl       >= 2.2.1
                     , syb       >= 0.5
                     , free      >= 4.12
  hs-source-dirs:      src
  default-language:    Haskell2010
  if impl (ghc < 7.10.2)
      buildable: False

Test-Suite test
  type:                exitcode-stdio-1.0
  hs-source-dirs:      tests
  main-is:             Test.hs
  other-modules:      Test.Common, Test.Consistency, Test.Transform
  GHC-Options:         -threaded
  Default-language:    Haskell2010
  if impl (ghc < 7.10.2)
      buildable: False
  Build-depends:       HUnit >= 1.2
                     , base < 5
                     , containers >= 0.5
                     , directory >= 1.2
                     , filepath  >= 1.4
                     , ghc  >= 7.10.2
                     , ghc-exactprint >= 0.3
                     , ghc-paths  >= 0.1
                     , mtl        >= 2.2.1
                     , syb        >= 0.5
                     , silently   >= 1.2
                     , filemanip  >= 0.3

executable roundtrip
  main-is: Roundtrip.hs
  hs-source-dirs: tests
  other-modules: Test.Common
  default-language:    Haskell2010
  if impl (ghc >= 7.10.2) && flag (roundtrip)
    build-depends:
                 HUnit
               , base
               , containers
               , directory
               , filemanip
               , filepath
               , ghc
               , ghc-exactprint
               , ghc-paths
               , syb
               , temporary
    buildable: True
  else
    buildable: False
  ghc-options:
    -threaded

executable static
  main-is: Static.hs
  hs-source-dirs: tests
  default-language:    Haskell2010
  if flag (roundtrip)
    build-depends: base
                 , directory
                 , filepath
                 , Diff
    buildable: True
  else
    buildable: False