swarm/swarm.cabal
Karl Ostmo da6ad0c874
combustion (#1432)
Closes #1355

# Demo

    scripts/play.sh -i data/scenarios/Testing/1355-combustion.yaml --autoplay

![image](https://github.com/swarm-game/swarm/assets/261693/eda5d1c7-35fa-4fce-865d-a87c83923c61)
2023-08-21 02:23:52 +00:00

378 lines
16 KiB
Plaintext

cabal-version: 2.4
name: swarm
version: 0.4
synopsis: 2D resource gathering game with programmable robots
description: Swarm is a 2D programming and resource gathering
game. Program your robots to explore the world and
collect resources, which in turn allows you to
build upgraded robots that can run more
interesting and complex programs. See the README
for more information and instructions on how to
play or contribute!
license: BSD-3-Clause
license-file: LICENSE
author: Brent Yorgey
maintainer: byorgey@gmail.com
bug-reports: https://github.com/swarm-game/swarm/issues
copyright: Brent Yorgey 2021
category: Game
tested-with: GHC ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.5 || ==9.6.2
extra-source-files: CHANGELOG.md
example/*.sw
editors/emacs/*.el
editors/vscode/syntaxes/*.json
data-dir: data/
data-files: *.yaml, worlds/*.world, scenarios/**/*.yaml, scenarios/**/*.txt, scenarios/**/*.sw, *.txt, test/language-snippets/**/*.sw
source-repository head
type: git
location: git://github.com/swarm-game/swarm.git
flag ci
description: Make warnings error
default: False
manual: True
common common
if flag(ci)
ghc-options: -Werror
ghc-options: -Wall
-Wcompat
-Widentities
-Wincomplete-uni-patterns
-Wincomplete-record-updates
-Wno-star-is-type
if impl(ghc >= 8.4)
ghc-options: -Wpartial-fields
default-language: Haskell2010
common stan-config
ghc-options: -fwrite-ide-info
-hiedir=.hie
-- Harmless extensions from GHC2021
common ghc2021-extensions
ghc-options: -Wprepositive-qualified-module
default-extensions:
BangPatterns
DeriveAnyClass
DeriveDataTypeable
DeriveFunctor
DeriveGeneric
DeriveTraversable
ExplicitForAll
FlexibleContexts
FlexibleInstances
GADTSyntax
MultiParamTypeClasses
NumericUnderscores
RankNTypes
ScopedTypeVariables
StandaloneDeriving
TupleSections
TypeApplications
TypeOperators
-- Note we warn on prequalified
ImportQualifiedPost
-- Not GHC2021, but until we get \cases we use \case a lot
LambdaCase
library
import: stan-config, common, ghc2021-extensions
exposed-modules: Control.Carrier.Accum.FixedStrict
Data.BoolExpr.Simplify
Swarm.App
Swarm.Constant
Swarm.Doc.Gen
Swarm.Doc.Pedagogy
Swarm.Game.Failure
Swarm.Game.Achievement.Attainment
Swarm.Game.Achievement.Definitions
Swarm.Game.Achievement.Description
Swarm.Game.Achievement.Persistence
Swarm.Game.CESK
Swarm.Game.Display
Swarm.Game.Entity
Swarm.Game.Exception
Swarm.Game.Location
Swarm.Game.Log
Swarm.Game.Recipe
Swarm.Game.ResourceLoading
Swarm.Game.Robot
Swarm.Game.Scenario
Swarm.Game.Scenario.Topography.Cell
Swarm.Game.Universe
Swarm.TUI.Launch.Controller
Swarm.TUI.Launch.Model
Swarm.TUI.Launch.Prep
Swarm.TUI.Launch.View
Swarm.Game.Scenario.Objective
Swarm.Game.Scenario.Objective.Graph
Swarm.Game.Scenario.Objective.Logic
Swarm.Game.Scenario.Objective.Validation
Swarm.Game.Scenario.Objective.WinCheck
Swarm.Game.Scenario.RobotLookup
Swarm.Game.Scenario.Scoring.Best
Swarm.Game.Scenario.Scoring.CodeSize
Swarm.Game.Scenario.Scoring.ConcreteMetrics
Swarm.Game.Scenario.Scoring.GenericMetrics
Swarm.Game.Scenario.Status
Swarm.Game.Scenario.Style
Swarm.Game.Scenario.Topography.EntityFacade
Swarm.Game.Scenario.Topography.Navigation.Portal
Swarm.Game.Scenario.Topography.Navigation.Waypoint
Swarm.Game.Scenario.Topography.Placement
Swarm.Game.Scenario.Topography.Structure
Swarm.Game.Scenario.Topography.WorldDescription
Swarm.Game.Scenario.Topography.WorldPalette
Swarm.Game.ScenarioInfo
Swarm.Game.State
Swarm.Game.Step
Swarm.Game.Step.Combustion
Swarm.Game.Step.Util
Swarm.Game.Terrain
Swarm.Game.Value
Swarm.Game.World
Swarm.Game.World.Abstract
Swarm.Game.World.Compile
Swarm.Game.World.Coords
Swarm.Game.World.Eval
Swarm.Game.World.Gen
Swarm.Game.World.Interpret
Swarm.Game.World.Load
Swarm.Game.World.Parse
Swarm.Game.World.Syntax
Swarm.Game.World.Typecheck
Swarm.Language.Capability
Swarm.Language.Context
Swarm.Language.Direction
Swarm.Language.Elaborate
Swarm.Language.Key
Swarm.Language.LSP
Swarm.Language.LSP.Hover
Swarm.Language.LSP.VarUsage
Swarm.Language.Module
Swarm.Language.Parse
Swarm.Language.Parse.QQ
Swarm.Language.Pipeline
Swarm.Language.Pipeline.QQ
Swarm.Language.Pretty
Swarm.Language.Requirement
Swarm.Language.Syntax
Swarm.Language.Text.Markdown
Swarm.Language.Typecheck
Swarm.Language.Typecheck.Unify
Swarm.Language.Typed
Swarm.Language.Types
Swarm.Language.Value
Swarm.ReadableIORef
Swarm.TUI.Attr
Swarm.TUI.Border
Swarm.Game.Scenario.Topography.Area
Swarm.TUI.Editor.Controller
Swarm.TUI.Editor.Json
Swarm.TUI.Editor.Masking
Swarm.TUI.Editor.Model
Swarm.TUI.Editor.Palette
Swarm.TUI.Editor.Util
Swarm.TUI.Editor.View
Swarm.TUI.Controller
Swarm.TUI.Controller.Util
Swarm.TUI.Inventory.Sorting
Swarm.TUI.List
Swarm.TUI.Model
Swarm.TUI.Model.Goal
Swarm.TUI.Model.Menu
Swarm.TUI.Model.Name
Swarm.TUI.Model.Repl
Swarm.TUI.Model.StateUpdate
Swarm.TUI.Model.UI
Swarm.TUI.Panel
Swarm.TUI.View
Swarm.TUI.View.Achievement
Swarm.TUI.View.CellDisplay
Swarm.TUI.View.CustomStyling
Swarm.TUI.View.Objective
Swarm.TUI.View.Util
Swarm.Util
Swarm.Util.Effect
Swarm.Util.Erasable
Swarm.Util.Lens
Swarm.Util.Parse
Swarm.Util.Yaml
Swarm.Version
Swarm.Web
other-modules: Paths_swarm
autogen-modules: Paths_swarm
build-depends: base >= 4.14 && < 4.19,
brick-list-skip >= 0.1.1.2 && < 0.2,
aeson >= 2 && < 2.2,
array >= 0.5.4 && < 0.6,
blaze-html >= 0.9.1 && < 0.9.2,
boolexpr >= 0.2 && < 0.3,
brick >= 1.5 && < 1.10,
bytestring >= 0.10 && < 0.12,
clock >= 0.8.2 && < 0.9,
colour >= 2.3.6 && < 2.4,
commonmark >= 0.2 && < 0.3,
commonmark-extensions >= 0.2 && < 0.3,
containers >= 0.6.2 && < 0.7,
directory >= 1.3 && < 1.4,
dotgen >= 0.4 && < 0.5,
either >= 5.0 && < 5.1,
extra >= 1.7 && < 1.8,
filepath >= 1.4 && < 1.5,
fused-effects >= 1.1.1.1 && < 1.2,
fused-effects-lens >= 1.2.0.1 && < 1.3,
fuzzy >= 0.1 && < 0.2,
githash >= 0.1.6 && < 0.2,
hashable >= 1.3.4 && < 1.5,
hsnoise >= 0.0.3 && < 0.1,
http-client >= 0.7 && < 0.8,
http-client-tls >= 0.3 && < 0.4,
http-types >= 0.12 && < 0.13,
lens >= 4.19 && < 5.3,
linear >= 1.21.6 && < 1.23,
lsp >= 1.6 && < 1.7,
megaparsec >= 9.0 && < 9.5,
minimorph >= 0.3 && < 0.4,
transformers >= 0.5 && < 0.7,
mtl >= 2.2.2 && < 2.4,
murmur3 >= 1.0.4 && < 1.1,
natural-sort >= 0.1.2 && < 0.2,
parser-combinators >= 1.2 && < 1.4,
prettyprinter >= 1.7.0 && < 1.8,
random >= 1.2.0 && < 1.3,
servant >= 0.19 && < 0.21,
servant-docs >= 0.12 && < 0.14,
servant-server >= 0.19 && < 0.21,
SHA >= 1.6.4 && < 1.6.5,
simple-enumeration >= 0.2 && < 0.3,
split >= 0.2.3 && < 0.3,
stm >= 2.5.0 && < 2.6,
syb >= 0.7 && < 0.8,
tagged >= 0.8 && < 0.9,
template-haskell >= 2.16 && < 2.21,
text >= 1.2.4 && < 2.1,
text-rope >= 0.2 && < 0.3,
text-zipper >= 0.10 && < 0.14,
time >= 1.9 && < 1.14,
transformers >= 0.5.6.2 && < 0.6.2.0,
unification-fd >= 0.11 && < 0.12,
unordered-containers >= 0.2.14 && < 0.3,
vector >= 0.12 && < 0.14,
vty >= 5.33 && < 5.39,
wai >= 3.2 && < 3.3,
warp >= 3.2 && < 3.4,
witch >= 1.1.1.0 && < 1.3,
witherable >= 0.4 && < 0.5,
word-wrap >= 0.5 && < 0.6,
yaml >= 0.11 && < 0.11.12.0,
hs-source-dirs: src
default-language: Haskell2010
default-extensions:
-- Avoid unexpected unevaluated thunk buildup
-- See discussion in #415
StrictData
executable swarm
import: stan-config, common
main-is: Main.hs
build-depends: optparse-applicative >= 0.16 && < 0.19,
githash >= 0.1.6 && < 0.2,
-- Imports shared with the library don't need bounds
base,
text,
swarm
hs-source-dirs: app
default-language: Haskell2010
ghc-options: -threaded
default-extensions: ImportQualifiedPost
test-suite swarm-unit
import: stan-config, common, ghc2021-extensions
main-is: Main.hs
type: exitcode-stdio-1.0
other-modules: TestEval
TestInventory
TestModel
TestPedagogy
TestNotification
TestLanguagePipeline
TestPretty
TestBoolExpr
TestCommand
TestLSP
TestScoring
TestUtil
build-depends: tasty >= 0.10 && < 1.5,
tasty-hunit >= 0.10 && < 0.11,
tasty-quickcheck >= 0.10 && < 0.11,
QuickCheck >= 2.14 && < 2.15,
-- Imports shared with the library don't need bounds
aeson,
base,
boolexpr,
containers,
filepath,
hashable,
lens,
linear,
mtl,
swarm,
text,
time,
witch,
vty
hs-source-dirs: test/unit
default-language: Haskell2010
ghc-options: -threaded
test-suite swarm-integration
import: stan-config, common, ghc2021-extensions
main-is: Main.hs
type: exitcode-stdio-1.0
build-depends: tasty >= 0.10 && < 1.5,
tasty-hunit >= 0.10 && < 0.11,
tasty-expected-failure >= 0.12 && < 0.13,
-- Imports shared with the library don't need bounds
base,
containers,
directory,
filepath,
fused-effects,
lens,
linear,
mtl,
swarm,
text,
transformers,
witch,
yaml
hs-source-dirs: test/integration
default-language: Haskell2010
ghc-options: -threaded
benchmark benchmark
import: stan-config, common, ghc2021-extensions
main-is: Benchmark.hs
hs-source-dirs: bench
type: exitcode-stdio-1.0
build-depends: criterion >= 1.6.0.0 && < 1.7,
-- Import shared with the library don't need bounds
base,
lens,
linear,
mtl,
random,
swarm,
text,
containers
default-language: Haskell2010
ghc-options: -threaded