packages feed

lgtk-0.8: lgtk.cabal

name:               lgtk
version:            0.8
category:           GUI
synopsis:           Lens GUI Toolkit
description:
    LGtk is a GUI Toolkit.
    .
    Main goals of LGtk:
    .
    -Provide a Haskell EDSL for declarative description of interactive graphical applications
    .
    -Provide an API for custom widget design
    .
    -Provide a playground for high-level declarative features like
    derived state-save and undo-redo operations and
    type-driven GUI generation
    .
    For more information visit the following links:
    .
    -<http://www.haskell.org/haskellwiki/LGtk haskell.org wiki page>
    .
    -<http://lgtk.wordpress.com/ Wordpress blog>
    .
    -<https://github.com/divipp/lgtk GitHub repository>
    .
    -<http://hackage.haskell.org/package/lgtk Haddock documentation (this page)>
stability:          experimental
license:            BSD3
license-file:       LICENSE
author:             Péter Diviánszky
homepage:           http://www.haskell.org/haskellwiki/LGtk
bug-reports:        https://github.com/divipp/lgtk/issues
maintainer:         divipp@gmail.com
cabal-version:      >= 1.8
build-type:         Simple
extra-source-files: changelog

source-repository head
  type:             git
  location:         https://github.com/divipp/lgtk.git

Flag Gtk
  Description:      Build the Gtk backend
  Default:          False

library

  hs-source-dirs:
                    src
  build-depends:
                    base < 5

                  , groups == 0.4.*
                  , semigroups >= 0.13 && < 0.15
                  , transformers >= 0.3 && < 0.5
                  , mtl >= 2 && < 2.3
                  , monad-control == 0.3.*
                  , operational == 0.2.*
                  , lens == 4.1.*

                  , vector == 0.10.*
                  , containers == 0.5.*
                  , directory == 1.2.*
                  , filepath == 1.3.*
                  , system-filepath == 0.4.*
                  , fsnotify == 0.0.*

                  , colour == 2.3.*
                  , JuicyPixels == 3.1.*
                  , diagrams-lib == 1.1.*
                  , diagrams-cairo == 1.1.*
                  , cairo == 0.12.*
--                  , SVGFonts == 1.4.*
                  , OpenGLRaw == 1.4.*
                  , GLFW-b == 1.4.*
--                  , threepenny-gui == 0.4.1.*

                  , lensref == 0.1.*

  exposed-modules:
                    -- lgtk
                    LGtk
  other-modules:
                    -- lgtk
                    LGtk.Effects
                    LGtk.Key
                    LGtk.Widgets
                    LGtk.Render

                    -- lgtk-glfw
                    LGtk.Backend.GLFW
  if flag(Gtk)
    build-depends:
                    gtk == 0.12.*
    other-modules:
                    LGtk.Backend.Gtk
    cpp-options:
                    -D__GTK__

  ghc-options: 
                    -threaded
                    -Wall 
                    -fno-warn-incomplete-patterns 
                    -fno-warn-name-shadowing 
                    -fno-warn-missing-signatures 
                    -fno-warn-orphans
                    -fno-warn-type-defaults


executable lgtkdemo
  build-depends:
                    base < 5

                  , mtl >= 2 && < 2.3
                  , lens == 4.1.*

                  , containers == 0.5.*
                  , vector == 0.10.*
                  , array == 0.5.*
                  , random == 1.0.*
                  , random-shuffle == 0.0.*

                  , diagrams-lib == 1.1.*

                  , lgtk
  main-is:
                    Main.hs
  other-modules:
                    Data.Equivalence.Persistent

                    LGtk.ADTEditor
                    LGtk.Demos.Main
                    LGtk.Demos.Tri
                    LGtk.Demos.IntListEditor
                    LGtk.Demos.TEditor
                    LGtk.Demos.Maze.Types
                    LGtk.Demos.Maze.Maze
                    LGtk.Demos.MazeGen
                    LGtk.Demos.Maze

  hs-source-dirs:
                    lgtkdemo
  ghc-options:
                    -threaded
                    -Wall 
                    -fno-warn-incomplete-patterns 
                    -fno-warn-name-shadowing 
                    -fno-warn-missing-signatures 
                    -fno-warn-orphans
                    -fno-warn-type-defaults