name:                 gi-gtk-declarative
version:              0.5.0
synopsis:             Declarative GTK+ programming in Haskell
description:          A declarative programming model for GTK+ user
                      interfaces, implementing support for various widgets
                      and generalized patching. This library aims to extend the
                      gi-gtk library as transparently as possible, and to be
                      a reusable library for multiple application architectures
                      and styles.

                      See [the project website](https://owickstrom.github.io/gi-gtk-declarative/)
                      for user guides and more information.
license:              MPL-2.0
license-file:         LICENSE
author:               Oskar Wickström
maintainer:           oskar.wickstrom@gmail.com
copyright:            Oskar Wickström
homepage:             https://owickstrom.github.io/gi-gtk-declarative/
bug-reports:          https://github.com/owickstrom/gi-gtk-declarative/issues
category:             Graphics
build-type:           Simple
cabal-version:        >=1.10
extra-source-files:   CHANGELOG.md
tested-with:          GHC == 8.6.3

source-repository head
  type:     git
  location: https://github.com/owickstrom/gi-gtk-declarative


library
  exposed-modules:      GI.Gtk.Declarative
                      , GI.Gtk.Declarative.Attributes
                      , GI.Gtk.Declarative.Attributes.Collected
                      , GI.Gtk.Declarative.Attributes.Internal
                      , GI.Gtk.Declarative.Attributes.Internal.EventHandler
                      , GI.Gtk.Declarative.Attributes.Internal.Conversions
                      , GI.Gtk.Declarative.Bin
                      , GI.Gtk.Declarative.CustomWidget
                      , GI.Gtk.Declarative.Container
                      , GI.Gtk.Declarative.Container.Box
                      , GI.Gtk.Declarative.Container.Class
                      , GI.Gtk.Declarative.Container.ListBox
                      , GI.Gtk.Declarative.Container.MenuItem
                      , GI.Gtk.Declarative.Container.Paned
                      , GI.Gtk.Declarative.Container.Patch
                      , GI.Gtk.Declarative.EventSource
                      , GI.Gtk.Declarative.Patch
                      , GI.Gtk.Declarative.SingleWidget
                      , GI.Gtk.Declarative.State
                      , GI.Gtk.Declarative.Widget
                      , GI.Gtk.Declarative.Widget.Conversions
  build-depends:        base >=4.10 && <5
                      , data-default-class     >= 0.1  && <0.2
                      , gi-gobject             >= 2    && <3
                      , gi-glib                >= 2    && <3
                      , gi-gtk                 >= 3    && <4
                      , haskell-gi             >= 0.21 && <0.23
                      , haskell-gi-base        >= 0.21 && <0.23
                      , haskell-gi-overloading == 1.0
                      , mtl
                      , text
                      , unordered-containers >= 0.2 && < 0.3
                      , vector
  hs-source-dirs:       src
  default-language:     Haskell2010
  ghc-options:          -Wall

test-suite gi-gtk-declarative-tests
  type:              exitcode-stdio-1.0
  hs-source-dirs:    test
  main-is:           Main.hs
  build-depends:     base                 >= 4        && < 5
                   , async
                   , gi-glib
                   , gi-gdk
                   , gi-gobject
                   , gi-gtk
                   , gi-gtk-declarative
                   , hedgehog >= 1 && < 2
                   , safe-exceptions
                   , stm
                   , text
                   , vector
                   , unordered-containers
  ghc-options:       -Wall -O2 -rtsopts -with-rtsopts=-N -threaded
  default-language:  Haskell2010