cabal-version: 2.4
name:          aztecs
version:       0.11.1
license:       BSD-3-Clause
license-file:  LICENSE
maintainer:    matt@hunzinger.me
author:        Matt Hunzinger
homepage:      https://github.com/aztecs-hs/aztecs
synopsis:
    A modular game engine and Entity-Component-System (ECS) for Haskell.

description:
    A modular game engine and Entity-Component-System (ECS) for Haskell.
    An ECS is a modern approach to organizing your application state as a database,
    providing patterns for data-oriented design and parallel processing.
    Aztecs provides side-effect free components and systems,
    as well as backends for rendering and input (such as `aztecs-sdl`),
    allowing you to structure your game as simple function of `Input -> World -> World`.

category:      Game Engine

source-repository head
    type:     git
    location: https://github.com/aztecs-hs/aztecs.git

library
    exposed-modules:
        Aztecs.ECS
        Aztecs.ECS.Access
        Aztecs.ECS.Component
        Aztecs.ECS.Entity
        Aztecs.ECS.Query
        Aztecs.ECS.Query.Dynamic
        Aztecs.ECS.System
        Aztecs.ECS.View
        Aztecs.ECS.World
        Aztecs.ECS.World.Archetype
        Aztecs.ECS.World.Archetypes
        Aztecs.ECS.World.Bundle
        Aztecs.ECS.World.Bundle.Dynamic
        Aztecs.ECS.World.Components
        Aztecs.ECS.World.Entities
        Aztecs.ECS.World.Storage
        Aztecs.ECS.World.Storage.Dynamic

    hs-source-dirs:   src
    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base >=4.2 && <5,
        containers >=0.6,
        deepseq >=1,
        mtl >=2,
        stm >=2

executable ecs
    main-is:          examples/ECS.hs
    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base,
        aztecs,
        deepseq >=1

test-suite aztecs-test
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    hs-source-dirs:   test
    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base >=4.2 && <5,
        aztecs,
        containers >=0.6,
        deepseq >=1,
        hspec >=2,
        QuickCheck >=2

benchmark aztecs-bench
    type:             exitcode-stdio-1.0
    main-is:          Bench.hs
    hs-source-dirs:   bench
    default-language: Haskell2010
    ghc-options:      -Wall
    build-depends:
        base >=4.2 && <5,
        aztecs,
        criterion >=1,
        deepseq >=1