packages feed

Allure-0.9.3.3: Allure.cabal

cabal-version: 2.2
name:           Allure
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary:+-+------- breaking API changes
--             | | +----- minor or non-breaking API additions
--             | | | +--- code changes with no API change
version:       0.9.3.3
synopsis:      Near-future Sci-Fi roguelike and tactical squad combat game
description:   Allure of the Stars is a near-future Sci-Fi roguelike
               and tactical squad combat game. Binaries and the game manual
               are available at the homepage, where you can also
               try the game out in the browser:
               <http://allureofthestars.com/play>.
               (It runs fastest on Chrome. Keyboard commands and savefiles
               are supported only on recent enough versions of browsers.
               Mouse should work everywhere.)
               .
               Not a single picture in this game. You have to imagine everything
               yourself, like with a book (a grown-up book, without pictures).
               Once you learn to imagine things, though, you can keep exploring
               and mastering the world and making up stories for a long time.
               .
               The game is written in Haskell using the LambdaHack roguelike
               game engine <http://hackage.haskell.org/package/LambdaHack>.
               Please see the changelog file for recent improvements
               and the issue tracker for short-term plans. Long term goals
               are high replayability and auto-balancing through procedural
               content generation and persistent content modification
               based on player behaviour. Contributions are welcome.
               .
               This is a workaround .cabal file, flattened to eliminated
               internal libraries until generating haddocks for them
               is fixed. The original .cabal file is stored in the github repo.
homepage:      http://allureofthestars.com
bug-reports:   http://github.com/AllureOfTheStars/Allure/issues
license:       AGPL-3.0-or-later
license-file:  COPYLEFT
tested-with:   GHC==8.2.2, GHC==8.4.4, GHC==8.6.5
data-files:    GameDefinition/config.ui.default,
               GameDefinition/fonts/16x16xw.woff,
               GameDefinition/fonts/16x16xw.bdf,
               GameDefinition/fonts/16x16x.fnt,
               GameDefinition/fonts/8x8xb.fnt,
               GameDefinition/fonts/8x8x.fnt,
               GameDefinition/fonts/LICENSE.16x16x,
               GameDefinition/fonts/Fix15Mono-Bold.woff,
               GameDefinition/fonts/LICENSE.Fix15Mono-Bold,
               GameDefinition/InGameHelp.txt,
               README.md,
               CHANGELOG.md,
               LICENSE,
               COPYLEFT,
               CREDITS
extra-source-files: GameDefinition/MainMenu.ascii,
                    GameDefinition/MoveKeys.txt,
                    GameDefinition/PLAYING.md,
                    Makefile
author:        Andres Loeh, Mikolaj Konarski and others
maintainer:    Mikolaj Konarski <mikolaj.konarski@funktory.com>
category:      Game
build-type:    Simple

source-repository head
  type:               git
  location:           git://github.com/AllureOfTheStars/Allure.git

flag supportNodeJS
  description:        compile so that the JS blob works in terminal with NodeJS
  default:            True
  manual:             True

common options
  default-language:   Haskell2010
  default-extensions: MonoLocalBinds, ScopedTypeVariables, OverloadedStrings
                      BangPatterns, RecordWildCards, NamedFieldPuns, MultiWayIf,
                      LambdaCase, DefaultSignatures, InstanceSigs,
                      MonadFailDesugaring, StrictData, CPP
  other-extensions:   TemplateHaskell, MultiParamTypeClasses, RankNTypes,
                      TypeFamilies, FlexibleContexts, FlexibleInstances,
                      DeriveFunctor, FunctionalDependencies,
                      GeneralizedNewtypeDeriving, TupleSections,
                      DeriveFoldable, DeriveTraversable,
                      ExistentialQuantification, GADTs, StandaloneDeriving,
                      DataKinds, KindSignatures, DeriveGeneric
  ghc-options:        -Wall -Wcompat -Worphans -Wincomplete-uni-patterns -Wincomplete-record-updates -Wimplicit-prelude -Wmissing-home-modules -Widentities -Wredundant-constraints -Wmissing-export-lists -Wpartial-fields
  ghc-options:        -Wall-missed-specialisations
  ghc-options:        -fno-ignore-asserts -fexpose-all-unfoldings -fspecialise-aggressively -fsimpl-tick-factor=200

  cpp-options:        -DEXPOSE_INTERNAL

  ghcjs-options:      -DUSE_JSFILE

common exe-options
  ghc-options:        -threaded -rtsopts
-- (Ignored by GHCJS) Minimize median lag at the cost of occasional bigger
-- GC lag, which fortunately sometimes fits into idle time between turns):
-- (Ignored by GHCJS) Avoid frequent GCs. Only idle-GC during a break in
-- gameplay (5s), not between slow keystrokes.
  ghc-options:        "-with-rtsopts=-A99m -I5"

-- Haskell GC in GHCJS every 10s.
  ghcjs-options:      -DGHCJS_GC_INTERVAL=10000
-- This is the largest GHCJS_BUSY_YIELD value that does not cause dropped frames
-- on my machine with default --maxFps.
  ghcjs-options:      -DGHCJS_BUSY_YIELD=50
  ghcjs-options:      -dedupe

  if !flag(supportNodeJS)
    ghcjs-options:    -DGHCJS_BROWSER

library
  import: options
  hs-source-dirs:     GameDefinition, GameDefinition/game-src
  exposed-modules:    Content.CaveKind
                      Content.ItemKind
                      Content.ItemKindEmbed
                      Content.ItemKindActor
                      Content.ItemKindOrgan
                      Content.ItemKindBlast
                      Content.ItemKindTemporary
                      Content.ModeKind
                      Content.ModeKindPlayer
                      Content.PlaceKind
                      Content.RuleKind
                      Content.TileKind
                      TieKnot
                      Client.UI.Content.Input
                      Client.UI.Content.Screen
                      Implementation.MonadClientImplementation
                      Implementation.MonadServerImplementation
  other-modules:      Paths_Allure
  autogen-modules:    Paths_Allure
  build-depends:      ,LambdaHack >= 0.9.3.1 && < 0.9.4.0
                      ,async
                      ,base >= 4.10 && < 99
                      ,enummapset
                      ,filepath
                      ,ghc-compact
                      ,optparse-applicative
                      ,primitive
                      ,random
                      ,template-haskell >= 2.6
                      ,text
                      ,transformers

executable Allure
  import: options, exe-options
  main-is:            GameDefinition/Main.hs
  build-depends:      ,LambdaHack
                      ,Allure
                      ,async
                      ,base
                      ,filepath
                      ,optparse-applicative

test-suite test
  import: options, exe-options
  type:               exitcode-stdio-1.0
  main-is:            test/test.hs
  build-depends:      ,LambdaHack
                      ,Allure
                      ,async
                      ,base
                      ,filepath
                      ,optparse-applicative