Name: reflex-dom
Version: 0.5.3
Synopsis: Functional Reactive Web Apps with Reflex
Description:
  Reflex-DOM is a Functional Reactive web framework based on the Reflex FRP engine.
  .
  For hackage documentation, please see: <https://hackage.haskell.org/package/reflex-dom-core>.
License: BSD3
License-file: LICENSE
Author: Ryan Trinkle
Maintainer: ryan.trinkle@gmail.com
Stability: Experimental
Category: FRP, Web, GUI, HTML, Javascript, Reactive, Reactivity, User Interfaces, User-interface
Build-type: Simple
cabal-version: >=1.24
extra-source-files:
  java/org/reflexfrp/reflexdom/MainWidget.java
  ChangeLog.md

flag use-warp
  description: Use jsaddle-warp server
  default: False
  manual: True

flag webkit2gtk
  description: Use WebKit2 version of WebKitGTK.
  default: True

flag use-reflex-optimizer
  description: Use the GHC plugin Reflex.Optimizer on some of the modules in the package.  This is still experimental.
  default: False
  manual: True

flag expose-all-unfoldings
  description: Build the library with -fexpose-all-unfoldings which can help client code specialize better
  default: False
  manual: True

flag build-examples
  description: Build the executables in ./examples
  default: False
  manual: True

library
  hs-source-dirs: src
  if os(android)
    hs-source-dirs: src-android
    other-modules: Reflex.Dom.Android.MainWidget
    build-depends:
      aeson,
      android-activity == 0.1.*,
      data-default == 0.7.*,
      jsaddle
    c-sources: cbits/MainWidget.c
    include-dirs: cbits/include
    install-includes: MainWidget.h
    cpp-options: -DANDROID
    build-tools: hsc2hs
  build-depends:
    base >= 4.7 && < 4.13,
    bytestring == 0.10.*,
    reflex >= 0.6.2 && < 0.7,
    reflex-dom-core >=0.5.2 && < 0.6,
    text == 1.2.*
  if !impl(ghcjs)
    if flag(use-warp) && (os(linux) || os(osx))
      build-depends:
        jsaddle,
        jsaddle-warp
    else
      if os(osx) || os(ios)
        build-depends:
          data-default == 0.7.*,
          jsaddle,
          jsaddle-wkwebview
      else
        if flag(webkit2gtk)
          build-depends:
            jsaddle-webkit2gtk
        else
          if !os(android)
            build-depends:
              jsaddle-webkit2gtk

  exposed-modules:
    Reflex.Dom
    Reflex.Dom.Internal
  reexported-modules:
      Foreign.JavaScript.TH
    , Foreign.JavaScript.Orphans
    , Reflex.Dom.Builder.Class
    , Reflex.Dom.Builder.Class.Events
    , Reflex.Dom.Builder.Immediate
    , Reflex.Dom.Builder.InputDisabled
    , Reflex.Dom.Builder.Static
    , Reflex.Dom.Class
    , Reflex.Dom.Core
    , Reflex.Dom.Location
    , Reflex.Dom.Main
    , Reflex.Dom.Old
    , Reflex.Dom.WebSocket
    , Reflex.Dom.Widget
    , Reflex.Dom.Widget.Basic
    , Reflex.Dom.Widget.Input
    , Reflex.Dom.Widget.Lazy
    , Reflex.Dom.Widget.Resize
    , Reflex.Dom.Xhr
  ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -ferror-spans
  if flag(expose-all-unfoldings)
    ghc-options: -fexpose-all-unfoldings
  if flag(use-reflex-optimizer)
    ghc-options: -fplugin=Reflex.Optimizer
  default-language: Haskell2010

executable sortableList
  build-depends: base
               , containers
               , dependent-map
               , lens
               , mtl
               , random
               , reflex
               , reflex-dom
               , text
               , time
               , transformers
  hs-source-dirs: examples
  main-is: sortableList.hs
  ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -ferror-spans -fspecialise-aggressively
  if !flag(build-examples)
    buildable: False
  if flag(expose-all-unfoldings)
    ghc-options: -fexpose-all-unfoldings
  if flag(use-reflex-optimizer)
    ghc-options: -fplugin=Reflex.Optimizer
  default-language: Haskell2010

executable benchmark
  build-depends: base, reflex, reflex-dom, text, prim-uniq, dependent-map, containers, transformers, mtl, ghcjs-dom, ghc-prim, random, dependent-sum
  hs-source-dirs: .
  main-is: benchmark.hs
  ghc-options: -O2 -fspecialise-aggressively
  if !impl(ghcjs)
    buildable: False
  default-language: Haskell2010

executable krausest
  build-depends: base, reflex, reflex-dom, text, prim-uniq, dependent-map, containers, transformers, mtl, ghcjs-dom, ghc-prim, random, dependent-sum, vector
  hs-source-dirs: benchmarks
  main-is: krausest.hs
  ghc-options: -O2 -fspecialise-aggressively
  if impl(ghcjs)
    ghcjs-options: -dedupe
    cpp-options: -DGHCJS_BROWSER -DGHCJS_GC_INTERVAL=60000
  else
    buildable: False
  default-language: Haskell2010

source-repository head
  type: git
  location: https://github.com/reflex-frp/reflex-dom
  subdir: reflex-dom