-- Initial h2048.cabal generated by cabal init.  For further documentation,
--  see http://haskell.org/cabal/users-guide/

name:                h2048
version:             0.1.0.1
synopsis:            a haskell implementation of Game 2048
description:         a haskell implementation of Game 2048,
                     based on <https://github.com/gabrielecirulli/2048>.

homepage:            https://github.com/Javran/h2048
license:             MIT
license-file:        LICENSE
author:              Javran Cheng
maintainer:          Javran.C@gmail.com
copyright:           Copyright (c) 2014 Javran Cheng
category:            Game
build-type:          Simple
extra-source-files:  README.md
cabal-version:       >=1.10

flag exe
  description:         build executables
  default:             True

flag vty
  description:         build UI written in vty-ui
  default:             True

library
  hs-source-dirs:      src
  exposed-modules:     System.Game.H2048.Core,
                       System.Game.H2048.Utils

  build-depends:       base >= 4 && < 5,
                       transformers >= 0 && < 1,
                       mtl >= 2 && < 3,
                       MonadRandom >= 0 && < 1

  ghc-options:         -Wall
  default-language:    Haskell2010

executable h2048-simple
  hs-source-dirs:      src
  main-is:             MainSimple.hs
  ghc-options:         -Wall
  build-depends:       base >= 4 && < 5,
                       transformers >= 0 && < 1,
                       mtl >= 2 && < 3,
                       MonadRandom >= 0 && < 1

  if ! flag(exe)
    buildable:         False

  default-language:    Haskell2010

executable h2048-vty
  hs-source-dirs:      src
  main-is:             MainVty.hs
  ghc-options:         -Wall
  build-depends:       base >= 4 && < 5,
                       text >= 1 && < 2,
                       vty >= 4 && < 5,
                       vty-ui >= 1 && < 2,
                       transformers >= 0 && < 1,
                       mtl >= 2 && < 3,
                       MonadRandom >= 0 && < 1

  if ! flag(exe) || ! flag(vty)
    buildable:         False

  default-language:    Haskell2010

Test-Suite test
  hs-source-dirs:      src
  type:                exitcode-stdio-1.0
  main-is:             Test.hs
  ghc-options:         -Wall
  build-depends:       base >= 4 && < 5,
                       MonadRandom >= 0 && < 1,
                       transformers >= 0 && < 1,
                       mtl >= 2 && < 3,
                       HUnit >= 1 && < 2

  default-language:    Haskell2010