packages feed

ansi-terminal-game-0.2.0.0: ansi-terminal-game.cabal

name:                ansi-terminal-game
version:             0.2.0.0
synopsis:            sdl-like functions for terminal applications, based on
                     ansi-terminal
description:         Library which aims to replicate standard 2d game
                     functions (blit, ticks, timers, etc.) in a terminal
                     setting.
                     Aims to be cross compatible (based on "ansi-terminal",
                     no unix-only dependencies), practical.
                     This is a proof of concept release, used to implement
                     @http://www.ariis.it/static/articles/animascii/page.html@
                     . See example folder for some minimal programs.
homepage:            none-yet
license:             GPL-3
license-file:        LICENSE
author:              Francesco Ariis
maintainer:          fa-ml@ariis.it
copyright:           © 2017-2018 Francesco Ariis
category:            Game
build-type:          Simple
extra-source-files:  changes.txt
cabal-version:       >=1.10

flag example
  description:       builds examples
  default:           False

library
  exposed-modules:     Terminal.Game
  other-modules:       Terminal.Game.ANSI,
                       Terminal.Game.Plane,
                       Terminal.Game.Draw,
                       Terminal.Game.Animation,
                       Terminal.Game.Input,
                       Terminal.Game.Timer,
                       Terminal.Game.GameLoop
                       Terminal.Game.Utils
  build-depends:       base == 4.*,
                       ansi-terminal == 0.8.*,
                       array == 0.5.*,
                       bytestring == 0.10.*,
                       cereal == 0.5.*,
                       clock == 0.7.*,
                       linebreak == 1.0.*,
                       split == 0.2.*,
                       terminal-size == 0.3.*,
                       timers-tick == 0.4.*
  hs-source-dirs:      src
  default-language:    Haskell2010

  -- horrible horrible horrible hack to make unbuffered input
  -- work on Windows
  if os(windows)
    hs-source-dirs: platform-dep/windows
  if !os(windows)
    hs-source-dirs: platform-dep/non-win

test-suite test
  default-language:    Haskell2010
  ghc-options:         -Wall
  HS-Source-Dirs:      test, src
  main-is:             Test.hs
  build-depends:       base==4.*,
                       array,
                       linebreak
                       -- the above plus hspec
                       , hspec
  type:                exitcode-stdio-1.0

executable alone-in-a-room
    if flag(example)
      build-depends:    base == 4.*,
                        ansi-terminal-game
    else
      buildable:        False

    hs-source-dirs:   example
    main-is:          Alone.hs
    default-language: Haskell2010
    -- With the -threaded option, only foreign calls with the unsafe
    -- attribute will block all other threads.
    -- TODO [breaking] [severe] [u:3] senza threaded non compila sin windows
    -- required on win before ghc 8.4?
    ghc-options:      -threaded