cabal-version: 1.24
Name: reflex-dom
Version: 0.6.3.2
x-revision: 1
Synopsis: Functional Reactive Web Apps with Reflex
Description:
  Web applications without callbacks or side-effects.
  Reflex-DOM brings the power of functional reactive programming (FRP) to the web.
  Build HTML and other Document Object Model (DOM) data with a pure functional interface.
  .
  Reflex-DOM is a Functional Reactive web framework based on the Reflex FRP engine: <https://reflex-frp.org/>.
  .
  The @reflex-dom@ package is a small wrapper around the @reflex-dom-core@ package. It pulls in the
  correct set of dependencies for each target platform (GHCJS, WebKitGTK, WASM, mobile, etc.).
  Libraries should depend on @reflex-dom-core@ and executables will usually depend on @reflex-dom@.
  All of @reflex-dom-core@'s modules are re-exported by @reflex-dom@.
  .
  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
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

flag wasm32
  description: Build for wasm32 architecture
  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 >= 1.4 && < 2.3,
      android-activity == 0.2.*,
      data-default >= 0.7 && < 0.9,
      jsaddle >= 0.9.6 && < 0.10
    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.21,
    bytestring >= 0.10 && < 0.13,
    reflex >= 0.8 && < 1,
    reflex-dom-core >= 0.8.1.0 && <0.9,
    text >= 1.2 && < 2.2
  if !impl(ghcjs)
    if flag(use-warp)
      build-depends:
        jsaddle >= 0.9.6 && < 0.10,
        jsaddle-warp >= 0.9.6 && < 0.10
    else
      if os(osx) || os(ios)
        build-depends:
          data-default >= 0.7 && < 0.9,
          jsaddle >= 0.9.6 && < 0.10,
          jsaddle-wkwebview >= 0.9.6 && < 0.10
      else
        if flag(wasm32)
          build-depends:
            jsaddle >= 0.9.6 && < 0.10,
            jsaddle-wasm >= 0.1 && < 0.2
        else
          if flag(webkit2gtk) && !os(android)
            build-depends:
              jsaddle-webkit2gtk >= 0.9.6 && < 0.10

  exposed-modules:
    Reflex.Dom
    Reflex.Dom.Internal
    Reflex.Dom.Location.Platform
  reexported-modules:
      Foreign.JavaScript.Orphans
    , Foreign.JavaScript.TH
    , Foreign.JavaScript.Utils
    , Reflex.Dom.Builder.Class
    , Reflex.Dom.Builder.Class.Events
    , Reflex.Dom.Builder.Hydratable
    , 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.Modals.Class
    , Reflex.Dom.Old
    , Reflex.Dom.Prerender
    , Reflex.Dom.Time
    , Reflex.Dom.WebSocket
    , Reflex.Dom.WebSocket.Query
    , Reflex.Dom.Widget
    , Reflex.Dom.Widget.Basic
    , Reflex.Dom.Widget.Input
    , Reflex.Dom.Widget.Lazy
    , Reflex.Dom.Widget.Resize
    , Reflex.Dom.Xhr
    , Reflex.Dom.Xhr.FormData
  ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -O2 -ferror-spans -fPIC
  cc-options: -fPIC
  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
               , containers
               , dependent-map
               , dependent-sum
               , ghc-prim
               , ghcjs-dom
               , mtl
               , prim-uniq
               , random
               , reflex
               , reflex-dom
               , text
               , transformers
  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
               , containers
               , dependent-map
               , dependent-sum
               , ghc-prim
               , ghcjs-dom
               , mtl
               , prim-uniq
               , random
               , reflex
               , reflex-dom
               , text
               , transformers
               , 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