mirror of
https://github.com/swarm-game/swarm.git
synced 2024-10-27 01:49:15 +03:00
e5e8ea5dac
Closes #1316 .
376 lines
16 KiB
Plaintext
376 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.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
|