packages feed

intricacy-0.7: intricacy.cabal

name:                intricacy
version:             0.7
synopsis:            A game of competitive puzzle-design
homepage:            http://mbays.freeshell.org/intricacy
license:             GPL-3
license-file:        COPYING
author:              Martin Bays
maintainer:          mbays@sdf.org
-- copyright:           
category:            Game
build-type:          Simple
cabal-version:       >=1.8
data-files: VeraMoBd.ttf tutorial/*.lock tutorial/*.text sounds/*.ogg
extra-doc-files: README BUILD NEWS tutorial-extra/*.lock tutorial-extra/README
extra-source-files: Main_stub.h

description:
    A networked game with client-server architecture. The core game is a
    lockpicking-themed turn-based puzzle game on a hex grid. Players design
    puzzles (locks) and solve those designed by others. A metagame encourages
    the design of maximally difficult puzzles, within tight size constraints.
    The client supports Curses and SDL, with all graphics in SDL mode drawn by
    code using SDL-gfx. The network protocol is based on the 'binary' package,
    and is intended to be reasonably efficient. TVars are used to give
    transparent local caching and background network operations. Also
    incorporates an implementation of a graph 5-colouring algorithm (see
    GraphColouring.hs).

source-repository head
   type:     git
   location: http://mbays.freeshell.org/intricacy/.git

Flag Game
    Description: Build game
    Default: True
    Manual: True
Flag SDL 
    Description: Enable SDL UI
    Default: True
Flag Sound 
    Description: Enable sound
    Default: True
Flag Curses 
    Description: Enable Curses UI
    Default: True
Flag Server
    Description: Build server
    Default: False
    Manual: True

executable intricacy
  if flag(Game)
      extensions: DoAndIfThenElse
      build-depends: base >=4.3, base < 5
        , mtl >=2.2, transformers >=0.4, stm >= 2.1
        , directory >= 1.0, filepath >= 1.0, time >= 1.2
        , bytestring >=0.10
        , array >=0.3, containers >=0.4, vector >=0.9
        , binary >=0.5, network-fancy >= 0.1.5
        , cryptohash >= 0.8
        , safe >= 0.2
        , RSA >= 2.0, crypto-pubkey-types >= 0.2, crypto-api >= 0.10
      if flag(SDL)
          build-depends: SDL >=0.6.5, SDL-ttf >=0.6, SDL-gfx >=0.6
          if flag(Sound)
              cpp-options: -DSOUND
              build-depends: SDL-mixer >= 0.6, random >= 1.0
          if os(windows)
              Extra-Lib-Dirs:    winlibs
              Extra-Libraries:   SDL_ttf SDL SDL_gfx freetype
              if flag(Sound)
                  Extra-Libraries: SDL_mixer
              ghc-options: -optl-mwindows
          if os(darwin)
              -- network-fancy-0.2.1+ causes a ___xpg_strerror_r link error
              build-depends: network-fancy < 0.2.1
              -- workaround for SDL on OS X, borrowed from TimePiece-0.0.5
              cpp-options: -DAPPLE
              ghc-options: -no-hs-main
              include-dirs: /usr/include/SDL /usr/local/include/SDL
              c-sources: c_main.c
      if flag(Curses)
          build-depends: hscurses >=1.4
      if flag(SDL)
          if flag(Curses)
            main-is: MainBoth.hs
          else
            main-is: MainSDL.hs
      else
          if flag(Curses)
            main-is: MainCurses.hs
          else
            Buildable: False
            -- XXX: there must be a neater way to prevent the cabal flag sat
            -- solver from thinking it's acceptable to have both SDL and Curses be
            -- False... but this will have to do for now:
            build-depends: Unsatisfiable >= 1337
  else
      main-is: MainBoth.hs
      Buildable: False

  ghc-options: -fno-warn-tabs
  other-modules: AsciiLock, BinaryInstances, BoardColouring, Cache, Command,
      CursesRender, CursesUI, CursesUIMInstance, CVec, Database, Debug,
      EditGameState, Frame, GameState, GameStateTypes, GraphColouring, Hex, Init,
      InputMode, Interact, InteractUtil, KeyBindings, Lock, MainState,
      Maxlocksize, Metagame, Mundanities, Physics, Protocol, SDLGlyph,
      SDLRender, SDLUI, SDLUIMInstance, ServerAddr, Util, Version

executable intricacy-server
  if flag(Server)
      extensions: DoAndIfThenElse
      build-depends: base >=4.3, base < 5
        , mtl >=2.2, transformers >=0.4, stm >= 2.1
        , directory >= 1.0, filepath >= 1.0, time >= 1.5
        , bytestring >=0.10
        , array >=0.3, containers >=0.4, vector >=0.9
        , binary >=0.5, network-fancy >= 0.1.5
        , cryptohash >= 0.8
        , RSA >= 2.0, crypto-pubkey-types >= 0.2, crypto-api >= 0.10
        , random >= 1.0, pipes >= 4
        , feed >= 0.3.1, xml >= 1.2.6
        , email-validate >= 1.0.0, text, smtp-mail >= 0.1.4.1
  else
    Buildable: False
  main-is:  Server.hs
  ghc-options: -fno-warn-tabs
  other-modules: AsciiLock, BinaryInstances, BoardColouring, CVec, Database,
      Debug, Frame, GameState, GameStateTypes, GraphColouring, Hex, Lock,
      Maxlocksize, Metagame, Mundanities, Physics, Protocol, Util, Version