packages feed

happstack-data-6.0.1: happstack-data.cabal

Name:               happstack-data
Version:            6.0.1
License:            BSD3
License-File:       COPYING
Author:             Happstack team, HAppS LLC
Maintainer:         Happstack team <happs@googlegroups.com>
homepage:           http://happstack.com
Stability:          experimental
Category:           Web, Distributed Computing
Synopsis:           Happstack data manipulation libraries
Description:
    This package provides libraries for:
    .
     * Deriving instances for your datatypes.
    .
     * Producing default values of Haskell datatypes.
    .
     * Normalizing values of Haskell datatypes.
    .
     * Marshalling Haskell values to and from XML.
    .
     * Marshalling Haskell values to and from HTML forms.
Tested-With:        GHC==6.6.1, GHC==6.8.2
Build-Type:         Simple
Cabal-Version:      >= 1.6

source-repository head
    type:     darcs
    subdir:   happstack-data
    location: http://patch-tag.com/r/mae/happstack

flag base4

Flag tests
    Description: Build the testsuite, and include the tests in the library
    Default: False

Flag old-haxml
     Description: Build against HaXml => 1.13 && < 1.14
     Default: False

Flag new-haxml
     Description: Build against new HaXml
     Default: False

Library
  if flag(base4)
    Build-Depends:    base >=4 && < 5, syb
  else
    Build-Depends:    base < 4

-- Saizan said that we need syb-with-class at least 0.6.1 for
-- GHC 6.12.1, but we should use 0.6.0 for GHC 6.10.4.
-- I don't know of a nicer way than explicitly checking
-- the GHC version used.
  if impl(ghc >= 6.12.1)
    Build-Depends:    syb-with-class >= 0.6.1
  else
    Build-Depends:    syb-with-class < 0.6.1

  if flag(old-haxml)
    Build-Depends:    HaXml >= 1.13 && < 1.14

  if flag(new-haxml)
    Build-Depends:    HaXml >= 1.20 && < 1.21


  Build-Depends:      binary,
                      bytestring,
                      containers,
                      mtl >= 1.1 && < 2.1,
                      pretty,
                      syb-with-class-instances-text,
                      text >= 0.10 && < 0.12,
                      time >= 1.1.4,
                      template-haskell

  hs-source-dirs:     src
  if flag(tests)
    hs-source-dirs:    tests
  Exposed-modules:
    Happstack.Data
    Happstack.Data.Default
    Happstack.Data.Default.Generic
    Happstack.Data.DeriveAll
    Happstack.Data.Migrate
    Happstack.Data.Normalize
    Happstack.Data.Pairs
    Happstack.Data.Xml
    Happstack.Data.GOps
    Happstack.Data.Proxy
    Happstack.Data.Serialize
    Happstack.Data.SerializeTH
  if flag(old-haxml)
    Exposed-modules:   
      Happstack.Data.Xml.HaXml13
  if flag(new-haxml)
    Exposed-modules:   
      Happstack.Data.Xml.HaXml
  if flag(tests)
    Build-depends: HUnit
    Exposed-modules:   
      Happstack.Data.Tests
      Happstack.Data.Tests.Xml001
      Happstack.Data.Tests.Xml002
      Happstack.Data.Tests.Xml003

  Other-modules:
    Happstack.Data.Xml.Base
    Happstack.Data.Xml.Instances
  if flag(old-haxml)
    Other-modules:
      Happstack.Data.Xml.PrintParse13
  if flag(new-haxml)
    Other-modules:
      Happstack.Data.Xml.PrintParse
  Extensions: TemplateHaskell, FlexibleInstances, UndecidableInstances,
              OverlappingInstances, MultiParamTypeClasses, CPP,
              FunctionalDependencies, DeriveDataTypeable, FlexibleContexts,
              ScopedTypeVariables, GADTs, GeneralizedNewtypeDeriving,
              TypeSynonymInstances, PatternGuards,
              PolymorphicComponents
  -- Should also have ", DeriveDataTypeable" but Cabal complains
  if impl(ghc >= 7.0)
     ghc-options:      -Wall -fno-warn-unused-do-bind
  else {
       if impl(ghc >= 6.12)
            ghc-options:      -Wall -fno-warn-unused-do-bind -O0
       else
            ghc-options:      -Wall -O0
       }           

Executable happstack-data-tests
  Main-Is: Test.hs
  GHC-Options: -threaded
  hs-source-dirs: tests, src
  if flag(tests)
    Buildable: True
    Build-depends: HUnit
  else
    Buildable: False