cabal-version:   2.4
name:            identicon
version:         0.2.3
license:         BSD-3-Clause
license-file:    LICENSE.md
maintainer:      Mark Karpov <markkarpov92@gmail.com>
author:          Mark Karpov <markkarpov92@gmail.com>
tested-with:     ghc ==9.4.7 ghc ==9.6.3 ghc ==9.8.1
homepage:        https://github.com/mrkkrp/identicon
bug-reports:     https://github.com/mrkkrp/identicon/issues
synopsis:        Flexible generation of identicons
description:     Flexible generation of identicons.
category:        Graphics, Image
build-type:      Simple
data-files:      data-examples/*.png
extra-doc-files:
    CHANGELOG.md
    README.md

source-repository head
    type:     git
    location: https://github.com/mrkkrp/identicon.git

flag dev
    description: Turn on development settings.
    default:     False
    manual:      True

library
    exposed-modules:
        Graphics.Identicon
        Graphics.Identicon.Primitive

    default-language: GHC2021
    build-depends:
        base >=4.15 && <5,
        JuicyPixels >=3.2.6.5 && <4,
        bytestring >=0.10.6 && <0.13

    if flag(dev)
        ghc-options:
            -Wall -Werror -Wredundant-constraints -Wpartial-fields
            -Wunused-packages

    else
        ghc-options: -O2 -Wall

test-suite tests
    type:             exitcode-stdio-1.0
    main-is:          Spec.hs
    hs-source-dirs:   tests
    default-language: GHC2021
    build-depends:
        JuicyPixels >=3.2.6.5 && <4,
        QuickCheck >=2.7 && <3,
        base >=4.15 && <5,
        bytestring >=0.10.6 && <0.13,
        hspec >=2 && <3,
        identicon

    if flag(dev)
        ghc-options:
            -Wall -Werror -Wredundant-constraints -Wpartial-fields
            -Wunused-packages

    else
        ghc-options: -O2 -Wall

benchmark bench
    type:             exitcode-stdio-1.0
    main-is:          Main.hs
    hs-source-dirs:   bench
    default-language: GHC2021
    build-depends:
        base >=4.15 && <5,
        JuicyPixels >=3.2.6.5 && <4,
        bytestring >=0.10.6 && <0.13,
        criterion >=0.6.2.1 && <1.7,
        identicon,
        random >=1.1 && <1.3,
        tf-random >=0.4 && <0.6

    if flag(dev)
        ghc-options:
            -Wall -Werror -Wredundant-constraints -Wpartial-fields
            -Wunused-packages

    else
        ghc-options: -O2 -Wall