packages feed

battleships-1.0.0: battleships.cabal

name:              battleships
version:           1.0.0
cabal-version:     >= 1.8
build-type:        Simple
category:          Game
author:		   Meike Grewing, Lukas Heidemann, Fabian Thorand, Fabian Zaiser
maintainer:        thorand@cs.uni-bonn.de
license:           BSD3
license-file:      LICENSE
Bug-Reports:   	   https://github.com/zrho/afp/issues
Homepage:      	   https://github.com/zrho/afp

synopsis:    A web-based implementation of battleships including an AI opponent.
description: This package provides a web-based implementation of the popular
             battleships game, developed over the course of a practical functional
             programming class at the University of Bonn (<http://www.iai.uni-bonn.de/~jv/teaching/afp13/>).

             Alongside with the classical gameplay against an AI opponent, a game mode
             is provided in which players may move their undamaged ships.

Extra-Source-Files:
                messages/*.msg
                config/routes
                config/settings.yml
                config/key.aes
                templates/*.cassius
                templates/*.hamlet
                templates/*.julius
                static/.htaccess
                static/js/*.js
                static/img/*.svg
                static/img/*.ico
                static/img/*.png

Flag dev
    Description:   Turn on development settings, like auto-reload templates.
    Default:       False

Flag library-only
    Description:   Build for use with "yesod devel"; also turns on development settings.
    Default:       False

library
    exposed-modules: Application
                     Foundation
                     Import
                     Settings
                     Settings.Development
                     Settings.StaticFiles
                     Handler.About
                     Handler.GameEnded
                     Handler.Home
                     Handler.PlaceShips
                     Handler.Play
                     Handler.Replay
                     Handler.Rules
                     Handler.Util
                     Handler.SaveGame
                     Logic.Util
                     Logic.AIUtil
                     Logic.Binary
                     Logic.CleverAI
                     Logic.Debug
                     Logic.DefaultAI
                     Logic.Game
                     Logic.GameExt
                     Logic.Random
                     Logic.Render
                     Logic.StupidAI
                     Logic.Types

    ghc-options:   -Wall

    if flag(dev) || flag(library-only)
        cpp-options:   -DDEVELOPMENT
        ghc-options:   -O0
    else
        ghc-options:   -O2

    extensions: TemplateHaskell
                QuasiQuotes
                OverloadedStrings
                NoImplicitPrelude
                RecordWildCards
                FlexibleContexts

    build-depends: base                          >= 4          && < 5
                -- * needed for yesod
                 , yesod                         >= 1.2        && < 1.2.5
                 , yesod-core                    >= 1.2        && < 1.3
                 , yesod-static                  >= 1.2        && < 1.3
                 , yesod-routes
                 , hamlet                        >= 1.1        && < 1.2
                 , shakespeare-text              >= 1.0        && < 1.1
                 , wai-extra                 
                 , wai-logger    
                 , cookie
                 , hjsmin
                -- * more monads
                 , mtl
                 , MonadRandom
                -- * data types
                 , bytestring                    >= 0.9        && < 0.11
                 , text                          >= 0.11       && < 0.12
                 , aeson
                 , containers                    
                 , array
                -- * diagrams
                 , blaze-svg
                 , diagrams-svg                  
                 , diagrams-lib                  
                 , colour
                -- * other
                 , template-haskell
                 , data-default
                 , fast-logger                   >= 0.3.2
                 , cereal
                 , transformers
                 , base64-bytestring
                 , SimpleAES
                 , attoparsec
                 , word8
                 , shakespeare-js
                 , yaml
                 , filepath

    if flag(library-only)
        build-depends:   warp
                       , directory               >= 1.1        && < 1.3

executable         main.fcgi
    if flag(library-only)
        Buildable: False

    ghc-options:   -threaded -Wall

    if flag(dev)
        cpp-options:   -DDEVELOPMENT
        ghc-options:   -O0
        build-depends: warp
    else
        ghc-options:   -O2
        build-depends: wai-handler-fastcgi       >= 1.3        && < 2.1

    main-is:           main.hs
    hs-source-dirs:    app
    build-depends:     base
                     , battleships
                     , yesod

executable img-gen
    if flag(library-only)
        Buildable: False

    extensions:      FlexibleContexts
    main-is:         Main.hs
    hs-source-dirs:  img-gen
    ghc-options:     -Wall
    build-depends:   base
                   , mtl
                   , battleships
                   , bytestring
                   , blaze-svg
                   , diagrams-svg
                   , diagrams-lib
                   , filepath

executable aibenchmark
    if flag(library-only)
        Buildable: False

    main-is:         Main.hs
    hs-source-dirs:  aibenchmark
    ghc-options:     -O2 -Wall
    build-depends:   base
                   , battleships
                   , mtl
                   , transformers
                   , containers
                   , MonadRandom

executable key-gen
    if flag(library-only)
        Buildable: False

    main-is:         Main.hs
    hs-source-dirs:  key-gen
    ghc-options:     -Wall
    build-depends:   base
                   , mtl
                   , bytestring
                   , crypto-random