Cabal revisions of LambdaHack-0.9.5.0
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-cabal-version: 2.2-name: LambdaHack--- 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.5.0-synopsis: A game engine library for tactical squad ASCII roguelike dungeon crawlers-description: LambdaHack is a Haskell game engine library for ASCII roguelike- games of arbitrary theme, size and complexity, with optional- tactical squad combat. It's packaged together with a sample- dungeon crawler in fantasy setting that can be tried out- in the browser at <http://lambdahack.github.io>.- (It runs fastest on Chrome. Keyboard commands and savefiles- are supported only on recent enough versions of browsers.- Mouse should work everywhere.)- .- Please see the changelog file for recent improvements- and the issue tracker for short-term plans. Long term goals- include multiplayer tactical squad combat, in-game content- creation, auto-balancing and persistent content modification- based on player behaviour. Contributions are welcome.- .- Games known to use the LambdaHack library:- .- * Allure of the Stars, a near-future Sci-Fi game,- <http://hackage.haskell.org/package/Allure>- .- * Space Privateers, an adventure game set in far future,- <http://hackage.haskell.org/package/SpacePrivateers>- .- Note: All modules in this library are kept visible,- to let games override and reuse them.- OTOH, to reflect that some modules are implementation details- relative to others, the source code adheres to the following- convention. If a module has the same name as a directory,- the module is the exclusive interface to the directory.- No references to the modules in the directory are allowed- except from the interface module. This policy is only binding- when developing the library --- library users are free- to access any modules, since the library authors are in- no position to guess their particular needs.- .- 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: https://lambdahack.github.io-bug-reports: http://github.com/LambdaHack/LambdaHack/issues-license: BSD-3-Clause-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,- GameDefinition/PLAYING.md,- README.md,- CHANGELOG.md,- LICENSE,- COPYLEFT,- CREDITS-extra-source-files: GameDefinition/config.ui.default,- 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 Engine, Game-build-type: Simple--source-repository head- type: git- location: git://github.com/LambdaHack/LambdaHack.git--flag vty- description: switch to the vty frontend (screen reader friendly)- default: False- manual: True--flag curses- description: switch to the curses frontend (not fully supported)- default: False- manual: True--flag gtk- description: switch to the GTK frontend (not fully supported)- default: False- manual: True--flag sdl- description: switch to the SDL2 frontend- default: False- manual: True--flag jsaddle- description: switch to the JSaddle frontend (may be bit-rotted)- default: False- manual: True--flag with_expensive_assertions- description: turn on expensive assertions of well-tested code- default: False- manual: True--flag release- description: prepare for a release (expose internal functions and types, etc.)- default: True- manual: True--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-- if flag(with_expensive_assertions)- cpp-options: -DWITH_EXPENSIVE_ASSERTIONS-- if flag(release)- cpp-options: -DEXPOSE_INTERNAL-- ghcjs-options: -DUSE_JSFILE-- if !flag(supportNodeJS)- ghcjs-options: -DREMOVE_TELETYPE--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: definition-src,- engine-src,- GameDefinition/game-src,- GameDefinition- exposed-modules: Game.LambdaHack.Core.Dice- Game.LambdaHack.Core.Frequency- Game.LambdaHack.Core.Prelude- Game.LambdaHack.Core.Random- Game.LambdaHack.Definition.Ability- Game.LambdaHack.Definition.Color- Game.LambdaHack.Definition.ContentData- Game.LambdaHack.Definition.Defs- Game.LambdaHack.Definition.Flavour- Game.LambdaHack.Content.CaveKind- Game.LambdaHack.Content.ItemKind- Game.LambdaHack.Content.ModeKind- Game.LambdaHack.Content.PlaceKind- Game.LambdaHack.Content.RuleKind- Game.LambdaHack.Content.TileKind- Game.LambdaHack.Atomic- Game.LambdaHack.Atomic.CmdAtomic- Game.LambdaHack.Atomic.HandleAtomicWrite- Game.LambdaHack.Atomic.MonadStateWrite- Game.LambdaHack.Atomic.PosAtomicRead- Game.LambdaHack.Client- Game.LambdaHack.Client.AI- Game.LambdaHack.Client.AI.ConditionM- Game.LambdaHack.Client.AI.PickActionM- Game.LambdaHack.Client.AI.PickActorM- Game.LambdaHack.Client.AI.PickTargetM- Game.LambdaHack.Client.AI.Strategy- Game.LambdaHack.Client.Bfs- Game.LambdaHack.Client.BfsM- Game.LambdaHack.Client.ClientOptions- Game.LambdaHack.Client.CommonM- Game.LambdaHack.Client.HandleAtomicM- Game.LambdaHack.Client.HandleResponseM- Game.LambdaHack.Client.LoopM- Game.LambdaHack.Client.MonadClient- Game.LambdaHack.Client.Preferences- Game.LambdaHack.Client.Request- Game.LambdaHack.Client.Response- Game.LambdaHack.Client.State- Game.LambdaHack.Client.UI- Game.LambdaHack.Client.UI.ActorUI- Game.LambdaHack.Client.UI.Animation- Game.LambdaHack.Client.UI.Content.Input- Game.LambdaHack.Client.UI.Content.Screen- Game.LambdaHack.Client.UI.ContentClientUI- Game.LambdaHack.Client.UI.DrawM- Game.LambdaHack.Client.UI.DisplayAtomicM- Game.LambdaHack.Client.UI.EffectDescription- Game.LambdaHack.Client.UI.Frame- Game.LambdaHack.Client.UI.FrameM- Game.LambdaHack.Client.UI.Frontend- Game.LambdaHack.Client.UI.Frontend.Chosen- Game.LambdaHack.Client.UI.Frontend.Common- Game.LambdaHack.Client.UI.Frontend.Teletype- Game.LambdaHack.Client.UI.HandleHelperM- Game.LambdaHack.Client.UI.HandleHumanGlobalM- Game.LambdaHack.Client.UI.HandleHumanLocalM- Game.LambdaHack.Client.UI.HandleHumanM- Game.LambdaHack.Client.UI.HumanCmd- Game.LambdaHack.Client.UI.InventoryM- Game.LambdaHack.Client.UI.ItemDescription- Game.LambdaHack.Client.UI.ItemSlot- Game.LambdaHack.Client.UI.Key- Game.LambdaHack.Client.UI.KeyBindings- Game.LambdaHack.Client.UI.MonadClientUI- Game.LambdaHack.Client.UI.Msg- Game.LambdaHack.Client.UI.MsgM- Game.LambdaHack.Client.UI.Overlay- Game.LambdaHack.Client.UI.RunM- Game.LambdaHack.Client.UI.SessionUI- Game.LambdaHack.Client.UI.Slideshow- Game.LambdaHack.Client.UI.SlideshowM- Game.LambdaHack.Client.UI.UIOptions- Game.LambdaHack.Client.UI.UIOptionsParse- Game.LambdaHack.Common.Analytics- Game.LambdaHack.Common.Area- Game.LambdaHack.Common.Actor- Game.LambdaHack.Common.ActorState- Game.LambdaHack.Common.Faction- Game.LambdaHack.Common.File- Game.LambdaHack.Common.HighScore- Game.LambdaHack.Common.Item- Game.LambdaHack.Common.ItemAspect- Game.LambdaHack.Common.Kind- Game.LambdaHack.Common.Level- Game.LambdaHack.Common.Misc- Game.LambdaHack.Common.MonadStateRead- Game.LambdaHack.Common.Perception- Game.LambdaHack.Common.PointArray- Game.LambdaHack.Common.Point- Game.LambdaHack.Common.ReqFailure- Game.LambdaHack.Common.RingBuffer- Game.LambdaHack.Common.Save- Game.LambdaHack.Common.State- Game.LambdaHack.Common.Thread- Game.LambdaHack.Common.Tile- Game.LambdaHack.Common.Time- Game.LambdaHack.Common.Types- Game.LambdaHack.Common.Vector- Game.LambdaHack.Server- Game.LambdaHack.Server.BroadcastAtomic- Game.LambdaHack.Server.Commandline- Game.LambdaHack.Server.CommonM- Game.LambdaHack.Server.DebugM- Game.LambdaHack.Server.DungeonGen- Game.LambdaHack.Server.DungeonGen.AreaRnd- Game.LambdaHack.Server.DungeonGen.Cave- Game.LambdaHack.Server.DungeonGen.Place- Game.LambdaHack.Server.EndM- Game.LambdaHack.Server.Fov- Game.LambdaHack.Server.FovDigital- Game.LambdaHack.Server.HandleAtomicM- Game.LambdaHack.Server.HandleEffectM- Game.LambdaHack.Server.HandleRequestM- Game.LambdaHack.Server.ItemRev- Game.LambdaHack.Server.ItemM- Game.LambdaHack.Server.LoopM- Game.LambdaHack.Server.MonadServer- Game.LambdaHack.Server.PeriodicM- Game.LambdaHack.Server.ProtocolM- Game.LambdaHack.Server.ServerOptions- Game.LambdaHack.Server.StartM- Game.LambdaHack.Server.State- 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_LambdaHack- autogen-modules: Paths_LambdaHack- build-depends: assert-failure >= 0.1.2 && < 0.2,- async >= 2,- base >= 4.10 && < 99,- base-compat >= 0.8.0,- binary >= 0.8,- bytestring >= 0.9.2 ,- containers >= 0.5.3.0,- deepseq >= 1.3,- directory >= 1.1.0.1,- enummapset >= 0.5.2.2,- filepath >= 1.2.0.1,- ghc-prim,- hashable >= 1.1.2.5,- hsini >= 0.2,- keys >= 3,- miniutter >= 0.5.0.0,- optparse-applicative >= 0.13,- pretty-show >= 1.6,- primitive >= 0.6.1.0,- random >= 1.1,- stm >= 2.4,- time >= 1.4,- text >= 0.11.2.3,- transformers >= 0.4,- unordered-containers >= 0.2.3,- vector >= 0.11,- vector-binary-instances >= 0.2.3.1,- template-haskell >= 2.6,- ghc-compact-- if impl(ghcjs) || flag(jsaddle) {- exposed-modules: Game.LambdaHack.Client.UI.Frontend.Dom- build-depends: ghcjs-dom >= 0.9.1.1- cpp-options: -DUSE_BROWSER- } else { if flag(vty) {- exposed-modules: Game.LambdaHack.Client.UI.Frontend.Vty- build-depends: vty >= 5- cpp-options: -DUSE_VTY- } else { if flag(curses) {- exposed-modules: Game.LambdaHack.Client.UI.Frontend.Curses- build-depends: hscurses >= 1.4.1- cpp-options: -DUSE_CURSES- } else { if flag(gtk) {- exposed-modules: Game.LambdaHack.Client.UI.Frontend.Gtk- build-depends: gtk3 >= 0.12.1- cpp-options: -DUSE_GTK- } else {- exposed-modules: Game.LambdaHack.Client.UI.Frontend.Sdl- build-depends: sdl2 >= 2, sdl2-ttf >= 2- cpp-options: -DUSE_SDL- } } } }-- if impl(ghcjs) {- other-modules: Game.LambdaHack.Common.JSFile- } else {- other-modules: Game.LambdaHack.Common.HSFile- build-depends: zlib >= 0.5.3.1- }--executable LambdaHack- import: options, exe-options- main-is: GameDefinition/Main.hs- build-depends: ,LambdaHack- ,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- ,async- ,base- ,filepath- ,optparse-applicative+cabal-version: 2.2 +name: LambdaHack +-- 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.5.0 +x-revision: 1 +synopsis: A game engine library for tactical squad ASCII roguelike dungeon crawlers +description: LambdaHack is a Haskell game engine library for ASCII roguelike + games of arbitrary theme, size and complexity, with optional + tactical squad combat. It's packaged together with a sample + dungeon crawler in fantasy setting that can be tried out + in the browser at <http://lambdahack.github.io>. + (It runs fastest on Chrome. Keyboard commands and savefiles + are supported only on recent enough versions of browsers. + Mouse should work everywhere.) + . + Please see the changelog file for recent improvements + and the issue tracker for short-term plans. Long term goals + include multiplayer tactical squad combat, in-game content + creation, auto-balancing and persistent content modification + based on player behaviour. Contributions are welcome. + . + Games known to use the LambdaHack library: + . + * Allure of the Stars, a near-future Sci-Fi game, + <http://hackage.haskell.org/package/Allure> + . + * Space Privateers, an adventure game set in far future, + <http://hackage.haskell.org/package/SpacePrivateers> + . + Note: All modules in this library are kept visible, + to let games override and reuse them. + OTOH, to reflect that some modules are implementation details + relative to others, the source code adheres to the following + convention. If a module has the same name as a directory, + the module is the exclusive interface to the directory. + No references to the modules in the directory are allowed + except from the interface module. This policy is only binding + when developing the library --- library users are free + to access any modules, since the library authors are in + no position to guess their particular needs. + . + 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: https://lambdahack.github.io +bug-reports: http://github.com/LambdaHack/LambdaHack/issues +license: BSD-3-Clause +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, + GameDefinition/PLAYING.md, + README.md, + CHANGELOG.md, + LICENSE, + COPYLEFT, + CREDITS +extra-source-files: GameDefinition/config.ui.default, + 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 Engine, Game +build-type: Simple + +source-repository head + type: git + location: git://github.com/LambdaHack/LambdaHack.git + +flag vty + description: switch to the vty frontend (screen reader friendly) + default: False + manual: True + +flag curses + description: switch to the curses frontend (not fully supported) + default: False + manual: True + +flag gtk + description: switch to the GTK frontend (not fully supported) + default: False + manual: True + +flag sdl + description: switch to the SDL2 frontend + default: False + manual: True + +flag jsaddle + description: switch to the JSaddle frontend (may be bit-rotted) + default: False + manual: True + +flag with_expensive_assertions + description: turn on expensive assertions of well-tested code + default: False + manual: True + +flag release + description: prepare for a release (expose internal functions and types, etc.) + default: True + manual: True + +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 + + if flag(with_expensive_assertions) + cpp-options: -DWITH_EXPENSIVE_ASSERTIONS + + if flag(release) + cpp-options: -DEXPOSE_INTERNAL + + ghcjs-options: -DUSE_JSFILE + + if !flag(supportNodeJS) + ghcjs-options: -DREMOVE_TELETYPE + +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: definition-src, + engine-src, + GameDefinition/game-src, + GameDefinition + exposed-modules: Game.LambdaHack.Core.Dice + Game.LambdaHack.Core.Frequency + Game.LambdaHack.Core.Prelude + Game.LambdaHack.Core.Random + Game.LambdaHack.Definition.Ability + Game.LambdaHack.Definition.Color + Game.LambdaHack.Definition.ContentData + Game.LambdaHack.Definition.Defs + Game.LambdaHack.Definition.Flavour + Game.LambdaHack.Content.CaveKind + Game.LambdaHack.Content.ItemKind + Game.LambdaHack.Content.ModeKind + Game.LambdaHack.Content.PlaceKind + Game.LambdaHack.Content.RuleKind + Game.LambdaHack.Content.TileKind + Game.LambdaHack.Atomic + Game.LambdaHack.Atomic.CmdAtomic + Game.LambdaHack.Atomic.HandleAtomicWrite + Game.LambdaHack.Atomic.MonadStateWrite + Game.LambdaHack.Atomic.PosAtomicRead + Game.LambdaHack.Client + Game.LambdaHack.Client.AI + Game.LambdaHack.Client.AI.ConditionM + Game.LambdaHack.Client.AI.PickActionM + Game.LambdaHack.Client.AI.PickActorM + Game.LambdaHack.Client.AI.PickTargetM + Game.LambdaHack.Client.AI.Strategy + Game.LambdaHack.Client.Bfs + Game.LambdaHack.Client.BfsM + Game.LambdaHack.Client.ClientOptions + Game.LambdaHack.Client.CommonM + Game.LambdaHack.Client.HandleAtomicM + Game.LambdaHack.Client.HandleResponseM + Game.LambdaHack.Client.LoopM + Game.LambdaHack.Client.MonadClient + Game.LambdaHack.Client.Preferences + Game.LambdaHack.Client.Request + Game.LambdaHack.Client.Response + Game.LambdaHack.Client.State + Game.LambdaHack.Client.UI + Game.LambdaHack.Client.UI.ActorUI + Game.LambdaHack.Client.UI.Animation + Game.LambdaHack.Client.UI.Content.Input + Game.LambdaHack.Client.UI.Content.Screen + Game.LambdaHack.Client.UI.ContentClientUI + Game.LambdaHack.Client.UI.DrawM + Game.LambdaHack.Client.UI.DisplayAtomicM + Game.LambdaHack.Client.UI.EffectDescription + Game.LambdaHack.Client.UI.Frame + Game.LambdaHack.Client.UI.FrameM + Game.LambdaHack.Client.UI.Frontend + Game.LambdaHack.Client.UI.Frontend.Chosen + Game.LambdaHack.Client.UI.Frontend.Common + Game.LambdaHack.Client.UI.Frontend.Teletype + Game.LambdaHack.Client.UI.HandleHelperM + Game.LambdaHack.Client.UI.HandleHumanGlobalM + Game.LambdaHack.Client.UI.HandleHumanLocalM + Game.LambdaHack.Client.UI.HandleHumanM + Game.LambdaHack.Client.UI.HumanCmd + Game.LambdaHack.Client.UI.InventoryM + Game.LambdaHack.Client.UI.ItemDescription + Game.LambdaHack.Client.UI.ItemSlot + Game.LambdaHack.Client.UI.Key + Game.LambdaHack.Client.UI.KeyBindings + Game.LambdaHack.Client.UI.MonadClientUI + Game.LambdaHack.Client.UI.Msg + Game.LambdaHack.Client.UI.MsgM + Game.LambdaHack.Client.UI.Overlay + Game.LambdaHack.Client.UI.RunM + Game.LambdaHack.Client.UI.SessionUI + Game.LambdaHack.Client.UI.Slideshow + Game.LambdaHack.Client.UI.SlideshowM + Game.LambdaHack.Client.UI.UIOptions + Game.LambdaHack.Client.UI.UIOptionsParse + Game.LambdaHack.Common.Analytics + Game.LambdaHack.Common.Area + Game.LambdaHack.Common.Actor + Game.LambdaHack.Common.ActorState + Game.LambdaHack.Common.Faction + Game.LambdaHack.Common.File + Game.LambdaHack.Common.HighScore + Game.LambdaHack.Common.Item + Game.LambdaHack.Common.ItemAspect + Game.LambdaHack.Common.Kind + Game.LambdaHack.Common.Level + Game.LambdaHack.Common.Misc + Game.LambdaHack.Common.MonadStateRead + Game.LambdaHack.Common.Perception + Game.LambdaHack.Common.PointArray + Game.LambdaHack.Common.Point + Game.LambdaHack.Common.ReqFailure + Game.LambdaHack.Common.RingBuffer + Game.LambdaHack.Common.Save + Game.LambdaHack.Common.State + Game.LambdaHack.Common.Thread + Game.LambdaHack.Common.Tile + Game.LambdaHack.Common.Time + Game.LambdaHack.Common.Types + Game.LambdaHack.Common.Vector + Game.LambdaHack.Server + Game.LambdaHack.Server.BroadcastAtomic + Game.LambdaHack.Server.Commandline + Game.LambdaHack.Server.CommonM + Game.LambdaHack.Server.DebugM + Game.LambdaHack.Server.DungeonGen + Game.LambdaHack.Server.DungeonGen.AreaRnd + Game.LambdaHack.Server.DungeonGen.Cave + Game.LambdaHack.Server.DungeonGen.Place + Game.LambdaHack.Server.EndM + Game.LambdaHack.Server.Fov + Game.LambdaHack.Server.FovDigital + Game.LambdaHack.Server.HandleAtomicM + Game.LambdaHack.Server.HandleEffectM + Game.LambdaHack.Server.HandleRequestM + Game.LambdaHack.Server.ItemRev + Game.LambdaHack.Server.ItemM + Game.LambdaHack.Server.LoopM + Game.LambdaHack.Server.MonadServer + Game.LambdaHack.Server.PeriodicM + Game.LambdaHack.Server.ProtocolM + Game.LambdaHack.Server.ServerOptions + Game.LambdaHack.Server.StartM + Game.LambdaHack.Server.State + 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_LambdaHack + autogen-modules: Paths_LambdaHack + build-depends: assert-failure >= 0.1.2 && < 0.2, + async >= 2, + base >= 4.10 && < 99, + base-compat >= 0.8.0, + binary >= 0.8, + bytestring >= 0.9.2 , + containers >= 0.5.3.0, + deepseq >= 1.3, + directory >= 1.1.0.1, + enummapset >= 0.5.2.2, + filepath >= 1.2.0.1, + ghc-prim, + hashable >= 1.1.2.5, + hsini >= 0.2, + keys >= 3, + miniutter >= 0.5.0.0, + optparse-applicative >= 0.13, + pretty-show >= 1.6, + primitive >= 0.6.1.0, + random == 1.1, + stm >= 2.4, + time >= 1.4, + text >= 0.11.2.3, + transformers >= 0.4, + unordered-containers >= 0.2.3, + vector >= 0.11, + vector-binary-instances >= 0.2.3.1, + template-haskell >= 2.6, + ghc-compact + + if impl(ghcjs) || flag(jsaddle) { + exposed-modules: Game.LambdaHack.Client.UI.Frontend.Dom + build-depends: ghcjs-dom >= 0.9.1.1 + cpp-options: -DUSE_BROWSER + } else { if flag(vty) { + exposed-modules: Game.LambdaHack.Client.UI.Frontend.Vty + build-depends: vty >= 5 + cpp-options: -DUSE_VTY + } else { if flag(curses) { + exposed-modules: Game.LambdaHack.Client.UI.Frontend.Curses + build-depends: hscurses >= 1.4.1 + cpp-options: -DUSE_CURSES + } else { if flag(gtk) { + exposed-modules: Game.LambdaHack.Client.UI.Frontend.Gtk + build-depends: gtk3 >= 0.12.1 + cpp-options: -DUSE_GTK + } else { + exposed-modules: Game.LambdaHack.Client.UI.Frontend.Sdl + build-depends: sdl2 >= 2, sdl2-ttf >= 2 + cpp-options: -DUSE_SDL + } } } } + + if impl(ghcjs) { + other-modules: Game.LambdaHack.Common.JSFile + } else { + other-modules: Game.LambdaHack.Common.HSFile + build-depends: zlib >= 0.5.3.1 + } + +executable LambdaHack + import: options, exe-options + main-is: GameDefinition/Main.hs + build-depends: ,LambdaHack + ,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 + ,async + ,base + ,filepath + ,optparse-applicative