name:                rest-example
version:             0.1.0.3
synopsis:            Example project for rest
homepage:            http://www.github.com/silkapp/rest
license:             BSD3
license-file:        LICENSE
author:              Silk B.V.
maintainer:          code@silk.co
copyright:           2014 Silk B.V.
category:            Web
build-type:          Simple
cabal-version:       >=1.10

extra-source-files:
  CHANGELOG.md
  LICENSE

library
  default-language:  Haskell2010
  ghc-options:       -Wall
  hs-source-dirs:    example-api
  exposed-modules:
    Api
    Api.Post
    Api.Post.Comment
    Api.User
    ApiTypes
    Example
    Type.Comment
    Type.CreatePost
    Type.Post
    Type.PostError
    Type.User
    Type.UserComment
    Type.UserInfo
    Type.UserPost
    Type.UserSignupError
  build-depends:
      base >= 4.6 && < 4.8
    , aeson >= 0.7 && < 0.9
    , containers >= 0.3 && < 0.6
    , filepath >= 1.1 && < 1.4
    , hxt == 9.3.*
    , json-schema >= 0.6 && < 0.8
    , monad-control == 0.3.*
    , mtl >= 2.0 && < 2.3
    , regular == 0.3.*
    , regular-xmlpickler == 0.2.*
    , rest-core >= 0.31 && < 0.33
    , rest-types == 1.10.*
    , safe >= 0.2 && < 0.4
    , transformers >= 0.2 && < 0.5
    , stm >= 2.1 && < 2.5
    , text >= 0.10 && < 1.2
    , time >= 1.1 && < 1.5
    , transformers-base == 0.4.*
    , unordered-containers == 0.2.*

-------------------------------------------------------------------------------
-- Executables linking against the rest-example library.

flag happstack
  description: Build the happstack executable.
  default:     False
  manual:      True

flag wai
  description: Build the wai executable.
  default:     False
  manual:      True

flag snap
  description: Build the snap executable.
  default:     False
  manual:      True

flag gen
  description: Build client generation executable.
  default:     True
  manual:      True

executable rest-example-happstack
  default-language:  Haskell2010
  ghc-options:       -Wall
  main-is:           Main.hs
  hs-source-dirs:    happstack
  if flag(happstack)
    buildable: True
    build-depends:
        base >= 4.6 && < 4.8
      , happstack-server >= 7.1 && < 7.4
      , mtl >= 2.0 && < 2.3
      , rest-core >= 0.31 && < 0.33
      , rest-example
      , rest-happstack == 0.2.*
  else
    buildable: False

executable rest-example-wai
  default-language:  Haskell2010
  ghc-options:       -Wall
  main-is:           Main.hs
  hs-source-dirs:    wai
  if flag(wai)
    buildable: True
    build-depends:
        base >= 4.6 && < 4.8
      , mtl >= 2.0 && < 2.3
      , rest-core >= 0.31 && < 0.33
      , rest-example
      , rest-wai == 0.1.*
      , wai >= 2.1 && < 3.1
      , warp >= 2.1 && < 3.1
  else
    buildable: False

executable rest-example-snap
  default-language:  Haskell2010
  ghc-options:       -Wall
  main-is:           Main.hs
  hs-source-dirs:    snap
  if flag(snap)
    buildable: True
    build-depends:
        base >= 4.6 && < 4.8
      , mtl >= 2.0 && < 2.3
      , rest-core >= 0.31 && < 0.33
      , rest-example
      , rest-snap == 0.1.*
      , snap-core == 0.9.*
      , snap-server == 0.9.*
  else
    buildable: False

executable rest-example-gen
  default-language:  Haskell2010
  ghc-options:       -Wall
  main-is:           Main.hs
  hs-source-dirs:    generate
  if flag(gen)
    buildable: True
    build-depends:
        base >= 4.6 && < 4.8
      , mtl >= 2.0 && < 2.3
      , rest-core >= 0.31 && < 0.33
      , rest-example
      , rest-gen >= 0.14 && < 0.16
  else
    buildable: False