packages feed

brush-stroking-0.1.0.0: brush-stroking.cabal

cabal-version:  3.0
name:           brush-stroking
version:        0.1.0.0
synopsis:       Brush strokes document model and renderer
category:       Calligraphy, Font, Geometry, Graphics
license:        BSD-3-Clause
homepage:       https://https://gitlab.com/sheaf/metabrush/-/tree/master/brush-stroking
author:         Sam Derbyshire
maintainer:     Sam Derbyshire
build-type:     Simple
description:

  Document model and renderer, companion to the
  <https://hackage.haskell.org/package/brush-strokes brush-strokes> library.

  This library deals with documents that are made up of many brush strokes,
  in a hierarchical layer structure, and supports serialisation and rendering
  of such documents.

extra-doc-files:
  readme.md
  changelog.md

source-repository head
  type:     git
  location: https://gitlab.com/sheaf/MetaBrush

common common

    default-extensions:
        BangPatterns
        BlockArguments
        ConstraintKinds
        DataKinds
        DeriveAnyClass
        DeriveTraversable
        DeriveGeneric
        DerivingVia
        FlexibleContexts
        FlexibleInstances
        FunctionalDependencies
        GADTs
        GeneralisedNewtypeDeriving
        InstanceSigs
        LambdaCase
        LexicalNegation
        MagicHash
        MultiWayIf
        NamedFieldPuns
        NoStarIsType
        PatternSynonyms
        RankNTypes
        RecordWildCards
        RoleAnnotations
        StandaloneDeriving
        StandaloneKindSignatures
        TupleSections
        TypeApplications
        TypeFamilyDependencies
        TypeOperators
        UnboxedTuples
        ViewPatterns

    if impl(ghc >= 9.8)
      default-extensions:
        TypeAbstractions

    ghc-options:
        -Wall
        -Wcompat
        -fwarn-missing-local-signatures
        -fwarn-incomplete-patterns
        -fwarn-incomplete-uni-patterns
        -fwarn-missing-deriving-strategies
        -fno-warn-unticked-promoted-constructors

    autogen-modules:
        Paths_brush_stroking

    other-modules:
        Paths_brush_stroking

library

    import:
        common

    hs-source-dirs:
        src

    default-language:
        Haskell2010

    exposed-modules:
        BrushStroking.Asset.Brushes
      , BrushStroking.Brush
      , BrushStroking.Document
      , BrushStroking.Document.Serialise
      , BrushStroking.Hover
      , BrushStroking.Layer
      , BrushStroking.Records
      , BrushStroking.Render.Stroke
      , BrushStroking.Serialisable
      , BrushStroking.Stroke
      , BrushStroking.Unique

    build-depends:
        brush-strokes
           ^>= 0.1.0.0

      , base
           >= 4.17       && < 5

        -- cairo dependencies, for rendering
      , gi-cairo-render
           >= 0.1.0      && < 0.2
      , gi-cairo-connector
           >= 0.1.0      && < 0.2

      -- ... all other dependencies
      , acts
          ^>= 0.3.1.0
      , aeson
           >= 2.2        && < 2.3
      , aeson-pretty
           >= 0.8        && < 0.9
      , atomic-file-ops
          ^>= 0.3.0.0
      , bytestring
           >= 0.10.10.0  && < 0.13
      , containers
           >= 0.6.0.1    && < 0.9
      , deepseq
           >= 1.4.4.0    && < 1.6
      , directory
           >= 1.3.4.0    && < 1.4
      , filepath
           >= 1.4.2.1    && < 1.6
      , generic-lens
           >= 2.2        && < 2.5
      , groups
          ^>= 0.5.3
      , hashable
           >= 1.3.0.0    && < 1.6
      , hermes-json
           >= 0.7.0.0    && < 0.9
      , lens
           >= 4.19.2     && < 6
      , mtl
           >= 2.2.2      && < 2.4
      , scientific
           >= 0.3.6.2    && < 0.4
      , stm
          ^>= 2.5.0.0
      , text
           >= 2.0        && < 3
      , transformers
           >= 0.5.6.2    && < 0.7
      , unordered-containers
           >= 0.2.11     && < 0.3