packages feed

nano-svg-0.1.0.0: nano-svg.cabal

cabal-version:      3.0
name:               nano-svg
version:            0.1.0.0
synopsis:           An SVG parser for icons

description:
    Parse static SVG icons and vector artwork for geometry renderers,
    rasterizers and UI toolkits.

    Reads UTF-8 @ByteString@ input using @hexml@ for XML and @flatparse@
    for attribute values. Returns a flat array of shapes in paint order,
    each with absolute path segments, a transform and a resolved style.

    Path, transform, color, length and coordinate-list parsers can also be
    used independently. Rendering and viewport mapping are left to the caller.

    Gradients, patterns, text, masks, clipping paths, filters and CSS
    stylesheets are not supported. See "Graphics.NanoSvg" for supported
    features and limitations.

license:            MIT
license-file:       LICENSE
author:             goolord
maintainer:         zacharyachurchill@gmail.com
category:           Graphics
build-type:         Simple
tested-with:        GHC ==9.14.1
extra-doc-files:
    CHANGELOG.md
    README.md

common extensions
    default-language: GHC2021
    default-extensions:
        BlockArguments
        LambdaCase
        OverloadedStrings

common ghc-options
    ghc-options:
        -Wall
        -Widentities
        -Wcompat
        -Wincomplete-record-updates
        -Wincomplete-uni-patterns
        -Wmissing-export-lists
        -Wmissing-home-modules
        -Wpartial-fields
        -Wredundant-constraints

common rts-options
    ghc-options: -rtsopts -threaded "-with-rtsopts=-N"

library
    import:           extensions
    import:           ghc-options
    exposed-modules:
        Graphics.NanoSvg
        Graphics.NanoSvg.Color
        Graphics.NanoSvg.Internal.Parser
        Graphics.NanoSvg.Number
        Graphics.NanoSvg.Path
        Graphics.NanoSvg.Types
        Graphics.NanoSvg.Xml

    hs-source-dirs:   lib

    -- Inline the small attribute-parser combinators.
    ghc-options:      -O2
    build-depends:
        base       >=4.17  && <4.23,
        bytestring >=0.11  && <0.13,
        containers >=0.6   && <0.9,
        flatparse  >=0.5    && <0.6,
        hexml      >=0.3.5 && <0.4,
        primitive  >=0.9   && <0.10

test-suite nano-svg-test
    import:           extensions
    import:           ghc-options
    import:           rts-options
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          Main.hs
    ghc-options:      -Wno-missing-export-lists
    build-depends:
        base,
        bytestring,
        nano-svg,
        primitive,
        QuickCheck       >=2.14 && <2.19,
        tasty            >=1.4  && <1.6,
        tasty-hunit      >=0.10 && <0.11,
        tasty-quickcheck >=0.10 && <0.12